保存部门后台

TestDeptService

@Test
public void test03(){
//模拟表单
Dept dept = new Dept();
dept.setCompanyId("1");
dept.setDeptName("最牛13java部门");
dept.setState(1);

Dept parent = new Dept();
parent.setDeptId("100101101");

dept.setParent(parent);
//保存到数据库
iDeptService.saveDept(dept);
}

IDeptService

//新建一个部门
void saveDept(Dept dept);

DeptServiceImpl

@Override
public void saveDept(Dept dept) {
//表的id都不是自动生成的
String id = UUID.randomUUID().toString();
dept.setDeptId(id);

//调用dao进行保存
iDeptDao.save(dept);
}

IDeptDao

void save(Dept dept);

IDeptDao.xml

<insert id="save" parameterType="dept">
insert into pe_dept
(
dept_id ,
dept_name ,
parent_id ,
state ,
company_id ,
company_name
)
values
(
#{deptId },
#{deptName },
#{parent.deptId },
#{state },
#{companyId },
#{companyName}
)
</insert>

​不能直接获取上级部门的id,必须获取上级部门,再获取它的deptId​

Day33项目saas-export项目-部门管理-添加部门_ide

保存部门前台

dept-add.jsp

​action="${path}/system/dept/add.do"​

DeptController

@RequestMapping(path="/add",method ={  RequestMethod.POST})
public String add(Dept dept,String parentId){
l.info("add dept="+dept);
l.info("add parentId="+parentId);
//现在默认公司id是1,后面再修改
dept.setCompanyId("1");

Dept parent = new Dept();
parent.setDeptId(parentId);

dept.setParent(parent);
//保存到数据库
iDeptService.saveDept(dept);
return "redirect:/system/dept/toList.do";

}
  • ​String parentId​​ 有什么用?
  • 因为实体类中没有parentId的变量,所以页面提交的parentId不能被接收
  • 所以单独定义一个参数来接收