標籤:style class blog code java http
resultMap:適合使用返回值是自訂實體類的情況
resultType:適合使用返回值得資料類型是非自訂的,即jdk的提供的類型
resultMap :
type:映射實體類的資料類型
id:resultMap的唯一標識
column:庫表的欄位名
property:實體類裡的屬性名稱
配置對應檔:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//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(*) fromperson</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();}}}