1. 程式人生 > >[MyBatis]resultMap自定義封裝規則

[MyBatis]resultMap自定義封裝規則

首先不管如何記得在配置檔案裡寫入對映檔案(<mapper>標籤)

實體類參考

public class Person {

 private Integer pId;
 private String pName;//當和表裡的列名不一致的時候,查詢語句應該起別名
 //p_Name(原表裡的列名) pname別名
 private String email;
 public Person() {
 }

介面

package com.yiki.Dao;

import com.yiki.Entity.Person;
import org.apache.ibatis.annotations.Param;

public interface PersonMapperPlus {

 public Person getPersonById(Integer id);

}

mapper

<?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">

<mapper namespace="com.yiki.Dao.PersonMapperPlus">

    <!--對某個bean自定義對映規則
    【type】寫全類名和別名都可以(前提是寫了別名)
    【id】這個規則的唯一標識-->
    <resultMap id="myRule" type="com.yiki.Entity.Person">
        <!--指定主鍵列,使得框架優化規則
        【column】指定列
        【property】制定對應bean的屬性值-->
        <id column="pId" property="pId"/>
        <!--指定普通列-->
        <result column="pName" property="p_Name"/>
        <result column="email" property="email"/>
        <!--其他列名不指定也可以自動封裝,但是還是最好都寫上-->
    </resultMap>

    <!--【resultMap】自定義結果集對映規則(不能和resultType混用-->
    <select id="getPersonById" resultMap="myRule">
        select * from Person where pid=#{pId}
    </select>

</mapper>



測試類

package com.yiki.Test;

import com.yiki.Dao.PersonMapper;
import com.yiki.Dao.PersonMapperAnno;
import com.yiki.Dao.PersonMapperPlus;
import com.yiki.Entity.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.log4j.Logger;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

public class TestPlus {
 private String resource;
 private InputStream inputStream;
 private SqlSessionFactory sqlSessionFactory;
 private SqlSession sqlSession;
 private PersonMapperPlus mapper;
 private Logger log;

 public void start() throws IOException {
  resource = "mybatis.xml";//根據全域性配置檔案
  inputStream = Resources.getResourceAsStream(resource);
  sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
  sqlSession = sqlSessionFactory.openSession(true);
  mapper = sqlSession.getMapper(PersonMapperPlus.class);
  log = Logger.getLogger(this.getClass());
 }

 @Test
 public void test1() throws IOException {
  start();
  Person person = mapper.getPersonById(1);
  System.out.println(person);


  sqlSession.close();
 }


}

相關推薦

[MyBatis]resultMap定義封裝規則

首先不管如何記得在配置檔案裡寫入對映檔案(<mapper>標籤)實體類參考public class Person { private Integer pId; private Stri

MyBatis定義對映規則(連線查詢,需要修改對應對映時使用)

自定義對映規則:即自己定義資料庫與Bean物件的對映規則,不再使用預設Bean物件與記錄同名規則,即每個資料庫                             的屬性都可以決定它對映到哪個類的哪個屬性, 所以操作標籤(如<select>)的resultT

resultMap定義某個javaBean的封裝規則源碼

encoding 寫上 ati 定義 pre int where rom 規則 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Ma

Jquery Validate 默認校驗規則及常用的定義驗證規則

字符 eth ber exp string amp 手機 zip 子郵件 Jquery Validate 相關參數及常用的自定義驗證規則 一、官網地址:http://bassistance.de/jquery-plugins/jquery-plugin-validatio

定義封裝ajax,復制即可用

for thead open char app gif ava message gen 支持get、post請求 1 <!DOCTYPE html> 2 <html> 3 4 <head> 5

Python之定義封裝一個簡單的Log類

實例對象 級別 port detail 問題 文件夾 相對 alt 腳本 參考:http://www.jb51.net/article/42626.htm 參考:http://blog.csdn.net/u011541946/article/details/70198676

python定義封裝logging模塊

err process 文件中 elf 模式 works 日誌 pan 就是 #coding:utf-8 import logging class TestLog(object): ‘‘‘ 封裝後的logging ‘‘‘ d

Django 【第十篇】定義驗證規則和中間件

表達式 主動 mixin tex choice direct request lock test 一、Form基本使用 類 字段 is_valid() cleaned_data errors 字段參數: m

jQuery框架-3.jQuery定義封裝插件和第三方插件

method jquery 全局 clas .cn complete spa fff city 一、jQuery的封裝擴展 1、jQuery中extend方法使用 (掛在到jQuery和jQuery.fn兩對象身上的使用) 1.1、官方文檔定義: jQuery.e

resultMap定義映射---8.3.1. 解決列名(表中的字段名稱)和實體類中的屬性名不一致

lec per 編寫 動態代理 參數類型 ID res HERE 用戶 1.1.1.1. 步驟一:將駝峰匹配註釋掉 --------------測試完成後仍然 回來開啟 其他地方可能用到 一旦註釋掉駝峰匹配,那麽再通過queryUserById查詢的結果中,用戶

Xilinx Vivado的使用詳細介紹(5):調用用戶定義封裝的IP核

cond 5.4 vba adding 計算機 property with 我們 class Zedboard OLED Display Controller IP v1 介紹

spark定義排序規則

package cn.edu360.day5 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /** * Created by zx on 2017/10/10. */ o

Jquery Validate 相關參數及常用的定義驗證規則

手機號碼驗證 cti dea 復制 接收 least join cep mat 一、官網地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 二、默認校驗規則 1

MyBatis使用定義TypeHandler轉換型別

MyBatis雖然有很好的SQL執行效能,但畢竟不是完整的ORM框架,不同的資料庫之間SQL執行還是有差異。 筆者最近在升級 Oracle 驅動至 ojdbc 7 ,就發現了處理DATE型別存在問題。還好MyBatis提供了使用自定義TypeHandler轉換型別的功能。 本文介紹如

SpringBoot Mybatis 執行定義SQL

1.XML中執行自定義SQL、 https://blog.csdn.net/u012427355/article/details/80654806 2.註解執行自定義SQL @Select("${_parameter}") @Results({ @Result(co

mybatis-generator定義註釋生成

    最近做的專案發現沒有中文註釋,故查詢資料,特此記錄。 本文所用的是基於mybatis-generator 1.3.2版本來完成的。 mybatis-generator 自動生成的程式碼註釋是很反人類的,通常我們在使用的時候都是按照如下設定關閉註釋: &

BJUI怎樣對input新增定義驗證規則

場景 在使用BJUI框架實現新增以及編輯功能時,要對輸入的內容進行驗證。 對於簡單的非空驗證以及是否為數字驗證,BJUI有自帶的驗證語法。 參照: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/82418214

MyBatis定義typeHandler

  Mybatis中的TypeHandler是什麼?   無論是 MyBatis 在預處理語句(PreparedStatement)中設定一個引數時,還是從結果集中取出一個值時,都會用型別處理器將獲取的值以合適的方式轉換成 Java 型別。Mybatis預設為我們實現了許多Type

在ubuntu16.04中安裝apache2+modsecurity以及定義WAF規則詳解

一、Modsecurity規則語法示例 SecRule是ModSecurity主要的指令,用於建立安全規則。其基本語法如下: SecRule VARIABLES OPERATOR [ACTIONS] VARIABLES 代表HTTP包中的標識項,規定了安全規則針對的物件。常見的

validatebox定義驗證規則以及使用

效果: //===============jsp======state==== //開啟驗證 <script  type="text/javascript"> ​​​​​​​yZ();//自定義驗證方法   state $(function () {