Mybatis 入門之resultMap與resultType講解例項
阿新 • • 發佈:2019-02-04
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();
}
}
}