Mybatis 入门之resultMap与resultType讲解实例

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;
	@Override
	public String toString() {
		return "Person [personId=" + personId + ", name=" + name + ", gender="
				+ gender + ", personAddr=" + personAddr + ", birthday="
				+ birthday + "]";
	}
}

 测试类 

public class PersonTest {
	SqlSessionFactory sqlSessionFactory;
	@Before
	public void setUp() throws Exception {
		// 读取资源流
		InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
		// 初始化session工厂
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
	}

	

	@Test
	public void selectPersonById() {
		// 创建一个sqlsession
		SqlSession session = sqlSessionFactory.openSession();
		try {
			Person p = session.selectOne(
					"com.hao947.sql.mapper.PersonMapper.selectPersonById", 1);
			System.out.println(p);
		} finally {
			session.close();
		}
	}
	@Test
	public void selectPersonCount() {
		// 创建一个sqlsession
		SqlSession session = sqlSessionFactory.openSession();
		try {
			Integer p = session.selectOne(
					"com.hao947.sql.mapper.PersonMapper.selectPersonCount");
			System.out.println(p);
		} finally {
			session.close();
		}
	}
	@Test
	public void selectPersonByIdWithMap() {
		// 创建一个sqlsession
		SqlSession session = sqlSessionFactory.openSession();
		try {
			Map<String ,Object> map = session.selectOne(
					"com.hao947.sql.mapper.PersonMapper.selectPersonByIdWithMap",1);
			System.out.println(map);
		} finally {
			session.close();
		}
	}
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值