1.数据库列名与实体类的映射
ORM的映射主要分为两个过程:如将jdbcType和javaType按照不同db进行映射,然后将propertyName和columnName按照一定规则进行映射。对于前者来说,Mybatis主要是通过TypeHandlerRegistry里面的Map来完成映射的;对于后者来说,主要是通过ResultSetHandler来完成的。
2.名称问题
假如名称一致当然很多问题都迎刃而解,但是有很多特殊情况但你的实体类名称与数据库列名不一致但又无法更改的时候可以有很多解决方案。
1.通过修改sql语句起别名的方式
假如实体类的属性名是pass,数据库列名为password,执行下列sql语句pass=null
<select id="findAll" resultType="pojo.User">
select id,name,pass from ljqdb.user
</select>
修改sql语句起别名的方式为将sql语句修改为
<select id="findAll" resultType="pojo.User">
select id,name,pass as password from ljqdb.user
</select>
2.用ResultMap映射结果集
用ResultMap映射
<resultMap id="UserMap" type="pojo.User">
<result property="pass" column="password" />
</resultMap>
<select id="findAll" resultMap="UserMap">
select * from ljqdb.user
</select>