如何一文快速了解Mybatis各返回值类型的封装
2020-04-21 20:22
671 查看
文章目录
1.2、实体类类型示例 2、resultMap 结果类型(属性名与数据表列名不一致) 3、配置实体类别名,替换全限定类名
1、resultType 配置结果类型
resultType 属性可以指定结果集的类型,它支持基本类型和实体类类型。
需要注意的是,它和 parameterType 一样,如果注册过类型别名的,可以直接使用别名。没有注册过的必须使用全限定类名。例如:我们的实体类此时必须是全限定类名(后面将讲解如何配置实体类的别名)
同时,当是实体类名称时,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法实现封装。
1.1、基本类型示例
1.1.1、编写Dao 接口
/** * 查询总记录条数 * @return */ int findTotal();
1.1.2、编写映射配置
<!-- 查询总记录条数 --> <select id="findTotal" resultType="int"> select count(*) from user; </select>
1.2、实体类类型示例
1.2.1、编写Dao 接口
/** * 查询所有用户 * @return */ List<User> findAll();
1.2.2、编写映射配置
<!-- 配置查询所有操作 --> <select id="findAll" resultType="com.itheima.domain.User"> select * from user </select>
2、resultMap 结果类型(属性名与数据表列名不一致)
resultMap 标签可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装。
在 select 标签中使用 resultMap 属性指定引用即可。同时 resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。
2.1、定义 resultMap
<!-- 建立 User 实体和数据库表的对应关系 type 属性:指定实体类的全限定类名 id 属性:给定一个唯一标识,是给查询 select 标签引用用的。 --> <resultMap type="per.cjh.domain.User" id="userMap"> <id column="id" property="userId"/> <result column="username" property="userName"/> <result column="sex" property="userSex"/> <result column="address" property="userAddress"/> <result column="birthday" property="userBirthday"/> </resultMap> <!-- id 标签:用于指定主键字段 result 标签:用于指定非主键字段 column 属性:用于指定数据库列名 property 属性:用于指定实体类属性名称 -->
2.2、编写映射配置
<!-- 配置查询所有操作 --> <select id="findAll" resultMap="userMap"> select * from user </select>
2.3、编写测试代码
@Test public void testFindAll() { List<User> users = userDao.findAll(); for(User user : users) { System.out.println(user); } }
3、配置实体类别名,替换全限定类名
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 如何一文快速了解 Mybatis 的注解开发
- 如何一文快速了解 Mybatis 的缓存机制
- 如何一文快速了解 Mybatis 的延迟加载策略
- 如何一文快速了解 Mybatis 的动态 SQL 语句编写
- 如何一文快速了解 Mybatis 的多表查询
- 如何一文快速了解Mybatis的主配置文件的类别名指定(不再写全限定类名)
- mybatis执行insert语句,如何返回主键给对象的问题(限主键为整数类型)
- 13、Mybatis把返回结果封装成map类型
- Mybatis——返回类型为 集合嵌套集合 应该如何处理
- 如何一文快速了解Mybatis连接池和事务
- MyBatis返回类型该如何选择?实体类 or Map。
- mybatis查询如何返回List<Map>类型数据
- 一文带你快速了解,python是如何解析XML文件
- 一文带你快速了解,python是如何解析XML文件
- mybatis查询如何返回List<Map>类型数据
- Mybatis表级联返回结果类型不唯一,如何使用HashMap完成表级联
- mybatis查询如何返回List<Map>类型数据
- Mybatis 如何 返回 List<String> 类型 或 List<Map<String,Object>>类型
- 一文带你了解人工智能最新进展:AI从业者如何选择技术路线?
- 如何把匿名类型.GetType()返回的对象传进泛型里面[转]