🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
有了实体层的支持,下面,我们开始写DAO层。有了前面TeacherDao的代码示例,再写KlassDao相对就简单些了。写代码之前,我们先画图。 ![https://box.kancloud.cn/6f72a773fd655ea106cc97a8bee19919_1196x986.png](https://box.kancloud.cn/6f72a773fd655ea106cc97a8bee19919_1196x986.png) 和TeacherDao一样,我们需要继承AbstractDao,然后实现DAO接口中的getFeatruedClass中的方法。 按类图,我们新建KlassDao, 并使用Astah生成以下JAVA代码。 ``` package com.mengyunzhi.javaee.dao; /** * 班级 */ public class KlassDao extends AbstractDao { private static final long serialVersionUID = 1L; /** * 传入实体类 */ @Override public Class<Klass> getFeaturedClass() { return null; } } ``` 然后,我们补充实体类. ``` package com.mengyunzhi.javaee.dao; import com.mengyunzhi.javaee.entity.Klass; /** * 班级 */ public class KlassDao extends AbstractDao { private static final long serialVersionUID = 1L; /** * 传入实体类 */ @Override public Class<Klass> getFeaturedClass() { return Klass.class; } } ``` # 测试 为了更清楚的展示我们的测试思路,在这,我们仍然给出时序图。 ![https://box.kancloud.cn/c0415890ea903d2bb430bd43f7ed71bf_978x392.png](https://box.kancloud.cn/c0415890ea903d2bb430bd43f7ed71bf_978x392.png) 然后按照时序图,进行代码的编写。 ``` package com.mengyunzhi.javaee.daoTest; import org.junit.Test; import com.mengyunzhi.javaee.dao.KlassDao; import com.mengyunzhi.javaee.entity.Klass; public class KlassTest { @Test public void create() { // 存数 Klass klass = new Klass("一四班", 1); KlassDao klassDao = new KlassDao(); Long klassId = (Long) klassDao.create(klass); System.out.println("存入的ID为:" + klassId); // 取数 Klass saveKlass = (Klass) klassDao.get(klassId); System.out.println(saveKlass); } } ``` 控制台将得到如下信息: ``` 存入的ID为:9 Hibernate: select klass0_.klassId as klassId1_0_0_, klass0_.name as name2_0_0_, klass0_.teacherId as teacherI3_0_0_ from Klass klass0_ where klass0_.klassId=? Klass [klassId=9, name=一四班, teacherId=1] ``` 然后我们使用navicat查看数据表,以确认数据的确已经被传入: ![https://box.kancloud.cn/d69c4707bff6923c81505d0247d4009e_590x78.png](https://box.kancloud.cn/d69c4707bff6923c81505d0247d4009e_590x78.png) 至此,以第二节的时序图为基础,在建立DAO层文件并测试完毕。