mybatis使用全注解的方式案例(包含一对多关系映射)
前面我寫過ssh:ssh(Spring+Spring mvc+hibernate)簡單增刪改查案例 和ssm:ssm(Spring+Spring mvc+mybatis)的案例,需要了解的可以去看看,今天我寫了一下ssm(spring+springmvc+mybatis)全注解的方式又重新寫了一遍兩表增刪改查的案例,其中別的地方都一樣,就是有幾個文件不一樣,
1.其中:
mybatis-config.xml中:
注意看, ,mapper后面是class,不是resource,一定要注意
2.還有:我們不需要EmpMapper.xml和DeptMapper.xml文件,直接刪掉就可以了
3.修改我們的IEmpMapper接口為:
4.修改我們的IDeptMapper接口為:
package org.dao;import java.util.List;import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Many; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import org.entity.Dept;public interface IDeptMapper {@Delete("delete from dept where id = #{id}")int deleteByPrimaryKey(Integer id);@Insert("insert into dept (id, name, loc )" +" values (#{id,jdbcType=INTEGER}, " +"#{name,jdbcType=VARCHAR}, " +"#{loc,jdbcType=VARCHAR})")int insert(Dept record);@Select("select * from dept where id = #{id}")@Results({@Result(id=true,property="id",column="id"),@Result(property="name",column="name"),@Result(property="loc",column="loc"),@Result(property="empList",column="id",javaType=List.class,many=@Many(select="org.dao.IEmpMapper.findEmpByDept"))})Dept selectByPrimaryKey(Integer id);@Update("update dept " +"set name = #{name,jdbcType=VARCHAR}, " +" loc = #{loc,jdbcType=VARCHAR} " +"where id = #{id,jdbcType=INTEGER}")int updateByPrimaryKey(Dept record);@Select("select * from dept")List<Dept> findDeptAll(); }然后就可以正常的主外鍵關聯,包括查詢顯示,如圖:
需要注意的是主外鍵映射,我總結了以下的方法,大家可以進行看一下:
一: @Select("select * from dept where id = #{id}")@Results({@Result(id=true,property="id",column="id"),@Result(property="name",column="name"),@Result(property="loc",column="loc"),@Result(property="實體類里面的屬性",column="id",javaType=List.class,many=@Many(select="多方的接口.根據一方的編號查詢多方的集合"))})Dept selectByPrimaryKey(Integer id);多://根據編號查詢@Select("select * from emp where eid = #{eid}")@Results({@Result(id=true,property="eid",column="eid"),@Result(property="ename",column="ename"),@Result(property="eage",column="eage"),@Result(property="實體中的對象",column="外鍵列",javaType=一方類.class,one=@One(select="一方接口.根據一方編號查詢信息"))})Emp selectByPrimaryKey(Integer eid);//查詢全部@Select("select * from emp")@Results({@Result(id=true,property="eid",column="eid"),@Result(property="ename",column="ename"),@Result(property="eage",column="eage"),@Result(property="實體中的對象",column="外鍵列",javaType=一方類.class,one=@One(select="一方接口.根據一方編號查詢信息"))})List<Emp> findEmpAll();//根據部門編號查詢員工信息@Select("select * from emp where did = #{dids}")@Results({@Result(id=true,property="eid",column="eid"),@Result(property="ename",column="ename"),@Result(property="eage",column="eage"),@Result(property="實體中的對象",column="外鍵列",javaType=一方類.class,one=@One(select="一方接口.根據一方編號查詢信息"))})List<Emp> findEmpByDept(int did);按照這個方法配置保證阿彌陀佛了!!!
下面就是源碼:
控制器:
DeptController
EmpController
Dao層:
IDeptMapper
IEmpMapper
DaoImpl層:
DeptMapperImpl
EmpMapperImpl
實體類層:
Dept
Emp
Service層:
IDeptService
IEmpService
ServiceImpl層:
DeptServiceImpl
EmpServiceImpl
配置文件:
applicationContext-servlet.xml
applicationContext.xml
mybatis-config.xml
web.xml
前臺頁面:
index.jsp
saveDept.jsp
saveEmp.jsp
showDept.jsp
showEmp.jsp
updateDept.jsp
updateEmp.jsp
總結
以上是生活随笔為你收集整理的mybatis使用全注解的方式案例(包含一对多关系映射)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝花呗使用不出去怎么回事
- 下一篇: ssm使用全注解实现增删改查案例——De