数据库表格和java类之间的对应关系
1自动处理映射关系
自动根据java类的属性名和数据库的字段名封装数据要求字段名和属性名相同
2手动处理映射关系
java中的实体类和数据库表格的字段名不同 怎么处理
1 字段使用别名 缺点SQL语句复用度低 无法处理多变关联查询问题
2 定义映射关系 映射关系可以在多处使用 可以处理数据库表格之间一对一 一对多 多对多的关系
定义接口
public interface EmpMapper{
Emp2 findEmpByEmpno(int empno);
}
处理映射文件
<mapper namespace="com.bjsxt.mapper.EmpMapper">
//手动定义映射关系
//1 java类属性名和数据库字段名不一致 需要制定映射关系
//2 java类属性名和数据库字段名一致 可以不用制定映射关系(单表)
//3 手动处理映射关系 推荐主字段使用id标签其他字段使用result标签
<resultMap id="emp2resultMap" type="emp2">
<id column="empno" property="id"></id>
<result column="ename" property="name"></result>
<result column="job" property="job"></result>
<result column="mgr" property="mgr"></result>
<result column="hiredate" property="hiredate"></result>
<result column="sal" property="sal"></result>
<result column="comm" property="comm"></result>
<result column="deptno" property="deptno"></result>
</resultMap>
<select id="findEmpByEmpno" resultMap="emp2resultMap" parameterType="int">
select*from emp where empno=7521
</select>
</mapper>
2一对一关系处理
接口
Emp findEmpJoinDept(int empno);
映射文件
//一对一映射关系处理
<resultMap id="empJoinDept" type="emp">
<id column="empno" property="empno"></id>
<result column="ename" property="ename"></result>
<result column="job" property="job"></result>
<result column="mgr" property="mgr"></result>
<result column="hiredate" property="hiredate"></result>
<result column="sal" property="sal"></result>
<result column="comm" property="comm"></result>
<result column="deptno" property="deptno"></result>
//处理组合的另一个实体类
<association property="dept" javaType="dept">
<id column="deptno" property="deptno"></id>
<result column="dname" property="dname"></result>
<result column="loc" property="loc"></result>
</association>
</resultMap>
<select id="findEmpJoinDept" resultMap="empJoinDept" parameterType="int">
select*from emp e LEFT JOIN dept d ON e.DEPTNO=d.DEPTNO WHERE e.empno=#{empno}
</select>
未完。。。。。下一篇 一对多 关系处理