您的位置:首页 > 其它

Mybatis 入门之resultMap与resultType解说实例

2017-05-15 21:29 429 查看
resultMap:适合使用返回值是自己定义实体类的情况resultType:适合使用返回值得数据类型是非自己定义的,即jdk的提供的类型resultMap :type:映射实体类的数据类型id:resultMap的唯一标识column:库表的字段名property:实体类里的属性名配置映射文件:
<?

xml version="1.0" encoding="UTF-8" ?

>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:当前库表映射文件的命名空间,唯一的不能反复 -->
<mapper namespace="com.hao947.sql.mapper.PersonMapper">
<!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->
<resultMap type="person" id="BaseResultMap">
<!-- column:库表的字段名 property:实体类里的属性名 -->
<id column="person_id" property="personId" />
<result column="name" property="name" />
<result column="gender" property="gender" />
<result column="person_addr" property="personAddr" />
<result column="birthday" property="birthday" />
</resultMap>
<!--id:当前sql的唯一标识
parameterType:输入參数的数据类型
resultType:返回值的数据类型
#{}:用来接受參数的。假设是传递一个參数#{id}内容随意,假设是多个參数就有一定的规则,採用的是预编译的形式select
* from person p where p.id = ? ,安全性非常高 -->

<!-- sql语句返回值类型使用resultMap -->
<select id="selectPersonById" parameterType="java.lang.Integer"
resultMap="BaseResultMap">
select * from person p where p.person_id = #{id}
</select>
<!-- resultMap:适合使用返回值是自己定义实体类的情况
resultType:适合使用返回值的数据类型是非自己定义的,即jdk的提供的类型 -->
<select id="selectPersonCount" resultType="java.lang.Integer">
select count(*) from
person
</select>

<select id="selectPersonByIdWithMap" parameterType="java.lang.Integer"
resultType="java.util.Map">
select * from person p where p.person_id= #{id}
</select>

</mapper>
实体类Person.java
<pre name="code" class="java">package com.hao947.model;import java.util.Date;public class Person {private Integer personId;private String name;private Integer gender;private String personAddr;private Date birthday;@Overridepublic String toString() {return "Person [personId=" + personId + ", name=" + name + ", gender="+ gender + ", personAddr=" + personAddr + ", birthday="+ birthday + "]";}}
測试类
public class PersonTest {SqlSessionFactory sqlSessionFactory;@Beforepublic void setUp() throws Exception {// 读取资源流InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");// 初始化session工厂sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);}@Testpublic void selectPersonById() {// 创建一个sqlsessionSqlSession session = sqlSessionFactory.openSession();try {Person p = session.selectOne("com.hao947.sql.mapper.PersonMapper.selectPersonById", 1);System.out.println(p);} finally {session.close();}}@Testpublic void selectPersonCount() {// 创建一个sqlsessionSqlSession session = sqlSessionFactory.openSession();try {Integer p = session.selectOne("com.hao947.sql.mapper.PersonMapper.selectPersonCount");System.out.println(p);} finally {session.close();}}@Testpublic void selectPersonByIdWithMap() {// 创建一个sqlsessionSqlSession session = sqlSessionFactory.openSession();try {Map<String ,Object> map = session.selectOne("com.hao947.sql.mapper.PersonMapper.selectPersonByIdWithMap",1);System.out.println(map);} finally {session.close();}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: