如果下方文本有不懂的,可以看一下上面对应的视频讲解
Java代码生成器
1. 点击右侧按钮下载这个生成器,压缩包里面除了生成器外,还有生成器生成的项目的对应的数据脚本, 这个数据脚本是手工导 入的,注: 生成器只能生成相应的代码,并不能生成数据脚本
2. 生成器安装完成后,目录结构如下图, 双击 SpringMVC代码生成器.exe 即可运行

3. 下拉选择工资管理, 本文以 【工资管理】 为例进行讲解

4. 实例中三张表 Department(部门表), Employee(员工表), Salary(薪水表)
由于采用hibernate进行编程, Employee含有Department信息(多对一), Salary含有Emplyee信息(多对一), 见下图


5. 根据上面三张表的结构关系,建立自己的sql库表(MySql5及以上), 下载的压缩包含有相应的sql建表语句
6. 如果三张表仍不满足我们的需求,可以在菜单【项目操作】->【添加类】中添加新表,添加类就是添加新表
目前处在【工资管理】项目中, 如果需要创建另一个项目,则可以【新建项目】, 项目创建完就可以创建类(表),
类创建完即可以添加成员

7. 创建java项目时需要一个包名, 点击菜单进行设置

包名设置完成, 点击菜单【自动生成代码】

项目生成后,对应的文件在projects中

8 使用myeclipe将项目导入到工程中, JDK使用 JDK1.6,JDK1.7
9 将数据脚本导致到mysql中,并根据下图配置数据库名,用户名与密码

10. 生成的项目使用二层架构, controller与dao层,事务在dao层进行处理
11. 项目正常启动后,访问链接 http://localhost:8080/JavaWebProject/login 根据admin中的信息进行登录

12 登录成功,进入后台管理页面,页面有点不太和谐, 如果你会css,html, 你可以进行定制化开发
因为本文的重点是后台,所以前台不会太过关注

下面进入后台应用讲解
13. 生成的项目中都会有一个默认的Admin, 对应有Admin.java, Admin.hbm.xml, 这个类对应的功能暂时省略
主要讲解我们生成的三张表对应的功能
14. Department表
Department对应的Bean , @NotEmpty是springmvc对数据的验证
public class Department {
/*部门编号*/
private Integer departmentId;
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
}
/*部门名称*/
@NotEmpty(message="部门名称不能为空")
private String departmentName;
public String getDepartmentName() {
return departmentName;
}
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
}Department Bean对应数据库表映射关系
<generator class="native"/>表明departmentId为表的主键,并且自增长, 所以插入值时,这个字段不能赋值
<hibernate-mapping package="com.shuangyulin.domain"> <class name="Department" table="t_Department"> <!-- 主键部门编号 --> <id name="departmentId" column="departmentId"> <generator class="native"/> </id> <!-- 简单字符串属性: 部门名称 --> <property name="departmentName" column="departmentName" type="string" length="20" /> </class> </hibernate-mapping>
使用Post方法,url接口如下可以添加部门信息,注意不要有departmentId字段

15 Employee表
Employee对应的Bean , @NotEmpty是springmvc对数据的验证
public class Employee {
/*员工编号*/
@NotEmpty(message="员工编号不能为空")
private String empoyeeNo;
public String getEmpoyeeNo() {
return empoyeeNo;
}
public void setEmpoyeeNo(String empoyeeNo) {
this.empoyeeNo = empoyeeNo;
}
/*员工姓名*/
@NotEmpty(message="员工姓名不能为空")
private String employeeName;
public String getEmployeeName() {
return employeeName;
}
public void setEmployeeName(String employeeName) {
this.employeeName = employeeName;
}
/*员工部门*/
private Department employeeDepart;
public Department getEmployeeDepart() {
return employeeDepart;
}
public void setEmployeeDepart(Department employeeDepart) {
this.employeeDepart = employeeDepart;
}
/*员工生日*/
@NotEmpty(message="必须输入员工生日")
private String birthday;
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
/*入职年份*/
@NotNull(message="必须输入入职年份")
private Integer inYear;
public Integer getInYear() {
return inYear;
}
public void setInYear(Integer inYear) {
this.inYear = inYear;
}
/*员工头像*/
private String employeePhoto;
public String getEmployeePhoto() {
return employeePhoto;
}
public void setEmployeePhoto(String employeePhoto) {
this.employeePhoto = employeePhoto;
}
}employeeDepart为Employee的外键
private Department employeeDepart; 此属性原本应该是整型,但由于是外键,使用herbinate 多对一属性,故在此声明为
相应的对象
<hibernate-mapping package="com.shuangyulin.domain"> <class name="Employee" table="t_Employee"> <!-- 主键员工编号 --> <id name="empoyeeNo" type="string" length="20"> <generator class="assigned"/> </id> <!-- 简单字符串属性: 员工姓名 --> <property name="employeeName" column="employeeName" type="string" length="10" /> <!-- 多对一属性: 员工部门 --> <many-to-one name="employeeDepart" column="employeeDepart" class="Department" lazy="false" outer-join="true" cascade="save-update" /> <!-- 简单日期型属性: 员工生日 --> <property name="birthday" column="birthday" type="string" length="10" /> <!-- 简单整型属性: 入职年份 --> <property name="inYear" column="inYear" type="java.lang.Integer" /> <!-- 简单图片属性: 员工头像 --> <property name="employeePhoto" column="employeePhoto" type="string" length="50" /> </class> </hibernate-mapping>
插入员工数据url, url中携带员工数据, 并且指定部门departmentId, 指定方式为employeeDepart.departmentId=2
注意: empoyeeNo必须指定(原因:<generator class="assigned"/>)
下载Demo