POJO中属性名和数据库中的列名不一致问题

1 列别名

? 查询时,可以通过列别名的方式将列名和属性名保持一致,继续使用自动映射,但是较为麻烦。

2 使用

? 是属于自定义的映射关系,由程序员自己制定列名和属性名的映射关系,一旦使用resultMap,表示不再使用自动映射机制,属性不再其中的,可以自动映射,但POJO属性名必须和数据库列名一致:

POJO ---> Dept2.java:

private int id;
private String deptName;
private String loc; //只有loc与数据库一致
getter/setter/toString()

DeptMapper.xml:

<!-- 自定义映射关系-->
<!-- 1.id与select中的resultMap一致即可-->
<!-- 2.type就是之前的resultType-->
<!-- 3.<id>标签表示唯一,也可以用<result>标签,
		property是POJO中的名字,column是数据库中的名字-->
<resultMap id="aa" type="Dept2">
    <id property="id" column="deptno"></id>
    <result property="deptName" columu="dname"></result>
</resultMap>
<select id="getBy2" resultMap="aa">
	select * from dept where deptno = #{param1}
</select>

接口文件:

//POJO与数据库列名不一致时,根据id查数据
public List<Dept2> getBy2(int id);

main.java:

//POJO和数据库列名不一致时查数据
public void getBy3(){
    List<Dept2> dept2List = deptMapper.getBy2(10);
    System.out.println(dept2List);
    //--->[Dept2{id=10, deptName=‘ACCOUNTING‘, loc=‘NEW YORK‘}]
}

POJO中属性名和数据库中的列名不一致问题

上一篇:数据库 - 连接配置引起的OOM


下一篇:Navicat for MySQL 连接数据库