这两天有个可视化项目需要与前端对接,但是数据却处理不成想要的List类型数据(初学没什么功底)
在网上找了许多寻找特定字段的方法,相信大家看到最多的就是以下这个(在这里我引用一下):
<!-- Book全部字段 -->
<resultMap id="BaseResultMap" type="com.lgsc.cjbd.book.model.Book">
<id column="book_id" property="bookId" jdbcType="BIGINT" />
<result column="book_name" property="bookName" jdbcType="VARCHAR" />
<result column="press" property="press" jdbcType="VARCHAR" />
<result column="author" property="author" jdbcType="VARCHAR" />
<result column="translator" property="translator" jdbcType="VARCHAR" />
<result column="isbn" property="isbn" jdbcType="CHAR" />
</resultMap>
<!-- 定义resultMap,type为HashMap -->
<resultMap id="PartBookMap" type="java.util.HashMap">
<id column="book_id" property="bookId" jdbcType="BIGINT" />
<result column="book_name" property="bookName" jdbcType="VARCHAR" />
<result column="author" property="author" jdbcType="VARCHAR" />
</resultMap>
<!-- 查询语句 -->
<select id="selectPartBook" resultMap="PartBookMap">
select book_id, book_name, author from book
</select>
首先,<!-- Book全部字段 -->下面这个resultMap完全可以不要,我们可以看到它的查询语句select标签这里,完全没有引用到 <!-- Book全部字段 -->那个resultMap的任何东西,所以说没必要存在。
重点是<!-- 定义resultMap,type为HashMap -->这里,我们先了解一下type为什么要为HashMap:因为它用的是List<Map<String, Object>>类型来定义的抽象方法“selectPartBook”的,这个类型返回一个Map类型的列表(大概就是这样子:[{"name":"张三"},{"age":20},]),而type这个属性,就是返回值的类名(我们可以让它为String、Integer.......),所以它想返回一个Map类型的数据,这里就填一个HashMap的类名(Map在HashMap类里面)。
那么接下来的id(黄色字体)就简单了,它就是一个相当于我们姓名的存在,纯粹是为了知道这个resultMap它是谁,随便取都可以。
而resultMap里面的
id(红色字体):用于设置主键字段与领域模型属性的映射关系,里面需要填写数据库中某个表的主键信息
result:用于设置普通字段与领域模型属性的映射关系,里面填写数据库中某个表的其他键信息
column:是数据库的某个表中的列名
property:填写与column中对应的代码内的属性名
例如有Student类,里面有id,name两个属性;数据库中有一个student表,里面有ID(主键),NAME两个列名。
那么就这样填<id column="ID" property="id" />;<result column="NAME" property="name">
jdbcType:就是数据库中数据的类型(推荐不写,写了不但繁琐而且还可能报错,起码我这报错了~.~)
所以推荐这样写就完事了:
<resultMap id="PartBookMap" type="java.util.HashMap">
<id column="book_id" property="bookId" />
<result column="book_name" property="bookName" />
<result column="author" property="author" />
<!-- 要查询什么字段,这里面就写什么字段的信息,上面的type想返回上面类型就返回上面类型 -->
</resultMap>
<!-- 查询语句 -->
<select id="selectPartBook" resultMap="PartBookMap">
select book_id, book_name, author from book
</select>
参考网址:https://www.cnblogs.com/qcxdoit/p/7089418.html
参考网址:https://blog.csdn.net/menghuannvxia/article/details/82906341