Mybatis 入門之resultMap與resultType講解執行個體

來源:互聯網
上載者:User

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


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.