1. 程式人生 > >Mybatis 入門之resultMap與resultType講解例項

Mybatis 入門之resultMap與resultType講解例項

resultMap:適合使用返回值是自定義實體類的情況

resultType:適合使用返回值得資料型別是非自定義的,即jdk的提供的型別

resultMap : 

對映實體類的資料型別

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();
}
}
}