按正常的开发流程中,对类图进行开发的时候,所有的时序图都已经完成了。所以,类图中的方法是完全的。所以我们可以利用UML图表工作,将图转化为代码。
但本章中,我们每建一个action就开始进行对接开发,这使得,在给类补充方法后,无法使用工具直接进行代码的转换,这时候,就只能手动的补充了。
![https://box.kancloud.cn/422f9535e59bed28a05def71c1eb1d89_676x192.png](https://box.kancloud.cn/422f9535e59bed28a05def71c1eb1d89_676x192.png)
按上图,补充代码如下:
```
package com.mengyunzhi.javaee.server;
...
public class KlassServer {
...
/**
* 获取klass实体
* @param id 关键字
* @return Klass
*/
public static Klass getKlassById(Long id) {
KlassDao klassDao = new KlassDao();
Klass klass = (Klass) klassDao.get(id);
return klass;
}
...
```
# 单元测试
```
@Test
public void getKlassByIdTest() {
Klass klass = KlassServer.getKlassById(1L);
System.out.println(klass);
}
```
启动测试后,控制台信息如下:
```
Hibernate: select klass0_.klassId as klassId1_0_1_, klass0_.name as name2_0_1_, klass0_.teacherId as teacherI3_0_1_, teacher1_.teacherId as teacherI1_1_0_, teacher1_.email as email2_1_0_, teacher1_.name as name3_1_0_, teacher1_.password as password4_1_0_, teacher1_.sex as sex5_1_0_, teacher1_.username as username6_1_0_ from Klass klass0_ left outer join Teacher teacher1_ on klass0_.teacherId=teacher1_.teacherId where klass0_.klassId=?
com.mengyunzhi.javaee.entity.Klass@210ab13f
```
有人说,打印出来的klass呢?
这就是:com.mengyunzhi.javaee.entity.Klass@210ab13f
就是由于,在上节中,我们添加完teacher属性性,将klass实体中的toString方法删除掉造成的。为了更好的看到返回的具体值,我们在Klass中使用eclipse自带的方法,生成toString方法。
```
package com.mengyunzhi.javaee.entity;
public class Klass implements IdEntity {
...
@Override
public String toString() {
return "Klass [klassId=" + klassId + ", name=" + name + ", teacher="
+ teacher + "]";
}
...
```
然后保存后,再次进行单元测试
```
Klass [klassId=1, name=一一班, teacher=Teacher [teacherId=1, name=李四, username=lisi, email=lisi@yunzhiclub.com, sex=false, password=234]]
```
此时,我们看到,我们不但获取了klass的信息,而且与Klass相关联的Teacher实体信息,也被直接返回了。
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层