天天看点

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

很多时候我们有这样的需求,数据库的字段名与实体类的属性名不一致,这个时候我们需要怎么做呢?有两种解决方案,第一种:直接在查询的时候使用别名,将别名设置成与实体类的属性名一致。第二种:使用resultType,自己定义映射关系。

整个项目的目录如下:

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

首先,我们需要搭建数据库mysql环境(test.sql),id我们写成了sid,name我们写成了sname,age我们写成了sage:

Student.class实体类:

pom.xml:

主配置文件mybatis.xml:

数据库配置文件(jdbc_mysql.properties):

日志配置文件 log4j.prperties:

使用到的工具类(MyBatisUtils.java):

接口定义(IStudentDao.java):

接口实现类(StudentDaoImpl.class):

最主要的mapper文件:

可以直接使用别名:

或者可以自己定义映射:

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

需要注意的点:

有一个id属性,这个是在其他地方使用的时候的id Type - 实体类,可以写别名,要不就要写带全路径的类名 id - 标签是为了标记出作为 ID 的结果可以帮助提高整体性能 result – 注入到字段或 JavaBean 属性的普通结果 association – 一个复杂类型的关联;许多结果将包装成这种类型嵌套结果映射 – 关联可以指定为一个 resultMap 元素,或者引用一个 collection – 一个复杂类型的集合 嵌套结果映射 – 集合可以指定为一个 resultMap 元素,或者引用一个 discriminator – 使用结果值来决定使用哪个 resultMap case – 基于某些值的结果映射 嵌套结果映射 – 一个 case 也是一个映射它本身的结果,因此可以包含很多相 同的元素,或者它可以参照一个外部的 resultMap。 如果对象名与属性名一致,我们可以不把它写入

测试类MyTest.class:

【作者简介】:

秦怀,公众号【秦怀杂货店】作者,技术之路不在一时,山高水长,纵使缓慢,驰而不息。这个世界希望一切都很快,更快,但是我希望自己能走好每一步,写好每一篇文章,期待和你们一起交流。

此文章仅代表自己(本菜鸟)学习积累记录,或者学习笔记,如有侵权,请联系作者核实删除。人无完人,文章也一样,文笔稚嫩,在下不才,勿喷,如果有错误之处,还望指出,感激不尽~

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

继续阅读