1. 程式人生 > >java的orm框架 mybatis 一些學習和注意的地方

java的orm框架 mybatis 一些學習和注意的地方

typeAliases,mapper中使用, 簡化xml中配置型別,select中的resultType,resultMap中的type,collection中的ofType

<typeAliases>
  <typeAlias alias="userctrl" type="org.ccc.dsdf.sdfsfs.sd.fsfs.UserController"/>
</typeAliases>

java內建型別,mybatis已經內建了相應的typeAliases,如果你還使用java.lang.String等等,就說明沒好好看文件,對mybatis不是很瞭解

Alias Mapped Type
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator

resultMap,type為型別,自定義返回的型別與表column對應,select裡使用resultMap(而不是resultType),值為resultMap的id,適用於關聯查詢時自定義返回,【注意resultMap標籤內的result可以對應sql查詢結果的【欄位名】與【物件屬性】 】

<resultMap type="org.ccc.dsdf.sdfsfs.sd.fsfs.UserController" id="usermap">
        <id column="id" property="id"/>
        <result column="name" property="user.name"/>
        <result column="funkyNumber" property="funkyNumber"/>
        <result column="roundingMode" property="roundingMode"/>
    </resultMap>

【定義公共sql片段】

<sql id="columns">  欄位名 </sql>

【引用sql片段】

<include refid="columns"/>

【條件判斷,值不為空時,需要的sql片段】

<if test="id!=null"> and id=#{id}</if>

【where 常與if搭配使用】where 標籤是sql,語句中的where,如果where標籤中內容為空,是不會有where的

<where> <if test="id!=null">and id=#{id}</if></where>

【resultMap標籤中的collection】適用於一對多查詢

mybatis配置中指定mapper檔案位置

<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
  <mapper class="org.mybatis.builder.AuthorMapper"/>  【mapper.xml與mapper介面類同目錄】
  <package name="org.mybatis.builder"/>   包下的所有mapper
</mappers>

mybatis輸出sql日誌

<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>

相關推薦

java的orm框架 mybatis 一些學習注意地方

typeAliases,mapper中使用, 簡化xml中配置型別,select中的resultType,resultMap中的type,collection中的ofType <typeAliases> <typeAlias alia

C++的一些不錯開源框架,可以學習借鑑

下次造輪子前先看看現有的輪子吧 值得學習的C語言開源專案 - 1. Webbench Webbench是一個在linux下使用的非常簡單的網站壓測工具。它使用fork()模擬多個客戶端同時訪問我們設定的URL,測試網站在壓力下工作的效能,最多可以模擬3萬個併發連線去測試網

箭頭性函式的一些特徵注意事項

1、typeof運算子和普通的函式一樣 let commFunc = () => {}; console.log(typeof commFunc); 輸出為function。 let arrowFunc = () => {}; console.log(typeof arro

ios 常用的一些方法注意點 componentsSeparatedByString componentsJoinedByString以及NSURlNSURLComponents

將string字串轉換為array陣列  NSArray  *array = [Str componentsSeparatedByString:@","]; 注意://componentsSeparatedByString 這個方法有一個bug 當被切割的字串是 @“”

圖片快取框架Picasso的學習使用

搞Android的都知道對圖片的下載和快取處理非常的麻煩至極,動不動就發生OOM之類的情況。特別是在Listview,GridView,ViewPage等控制元件裡面。至此介紹Picasso圖片快取框架使用。相對ImageLoad等框架更為方便快速開發者使用。介紹下Picasso; Pica

NSThread 執行緒相關簡單說明(一些使用注意點)

一 說明 本文涉及程式碼可以從https://github.com/HanGangAndHanMeimei/Code地址獲得。 二 NSThread的基本使用和建立   1)基本用法(主執行緒|當前執行緒) 1 //1.獲得執行該方法的當前執行緒

golang中gin框架的基礎學習運用

1.安裝 go get gopkg.in/gin-gonic/gin.v1 2.基本的架構     2.1  直接呼叫方案 package main import ( "github.com/gin-gonic/gin" "net/http" )

python的學習注意點初學的幾個例子

第一天學習的總結: 1.瞭解了python的簡史,通俗的講python對於一個沒有開發經驗的小白來講是最容易上手的。 python在linux、windows、mac下的安裝,以及對於python2和python3的抉擇,(建議小白入手3)。 2.字元的編碼和解碼,可見# -*- coding:utf -8

nginx配置ws一些配置需要注意地方

nginx配置ws協議 注意配置的程式碼是在http下面。具體配置的檔案是nginx-1.12.1\conf\nginx.conf,標紅的是ws協議必須要有的綠色的是本地的服務地址和埠藍色的是相互對應 引用的配置好的地址是 localhost:80/後面的還是和你以前的地址

pthreads v3下一些需要注意地方

一、子執行緒無法訪問父執行緒的全域性變數,但父執行緒可以訪問子執行緒的變數 <?php class Task extends Thread { public $data; public function run() { global $n

解碼庫區別 一些應該學習的開源框架與庫用途差別

vlc/ffmepg/mplayer/gstreamer/openmax/mpc/ffdshow/directshow 修bug修得頭疼,看看自己的部落格,坑挖了一堆,出來混,遲早是要還的,這裡先補一個。 剛開始看多媒體這塊時,總是發現有新框架,新平臺,新名詞弄得

Mysql分割槽表使用的一些限制需要注意地方

mysql分割槽策略都基於兩個非常重要的假設:查詢都能夠過濾(prunning)掉很多額外的分割槽、分割槽本身並不會帶來很多額外的代價。而事實證明,這兩個假設在某些場景下會有問題。下面介紹一些可能會遇到的問題。 NULL位會使分割槽過濾無效   關於分割槽表一個容易讓人

Spring+SpringMVC+MyBatis深入學習及搭建(十四)——SpringMVCMyBatis整合

文件拷貝 conf lips glib ide doc from ive body 轉載請註明出處:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面講到:Spring+SpringMVC+MyBatis深入學習及搭建(

Spring+SpringMVC+MyBatis深入學習及搭建(二)——MyBatis原始Dao開發mapper代理開發

oid 方法註入 內部 需要 com 配置文件信息 lec lang auth 前面有寫到Spring+SpringMVC+MyBatis深入學習及搭建(一)——MyBatis的基礎知識。MybatisFirst中存在大量重復的代碼。這次簡化下代碼: 使用MyBatis開發

Compass學習的筆記一些關鍵點難點

cot nbsp after hit scss onf 實現 utf-8 制作 1.當你在compass中編輯xx.scss時,[email protected]/* */ "utf-8";此時註意這段語句中的utf-8一定要加雙引號。 2.在DOM的befor

mybatis基礎學習5-一對多多對多(簡寫)

分享 技術分享 mage http ati bat SQ TP nbsp 1:建實體類 建mysql表 mybatis基礎學習5-一對多和多對多(簡寫)

一些學習的網址資料

著名 ogg soci http權威指南 tps 網站開發 mongo 解決 nginx 一、網站 1、http://msdn.microsoft.com/zh-CN/ 微軟的官方網站,C#程序員必去的地方。那裏有API開發文檔,還有各種代碼、資源下載。 2、http:/

關於動態樹LCT的一些學習感受(持續更新)

實現 劃分 沒有 學習 clas 找到 acf 樹操作 全部 什麽是動態樹? 動態樹(Dynamic Tree)問題是指在樹上動態維護相關信息的問題。 一般的動態樹問題中,會要求我們維護一個由若幹棵子結點無序的有根樹組成的森林。並且要求這個數據結構支持對樹的分割(刪邊),合

Java框架-mybatis延遲載入、快取註解開發

1. 延遲載入 1.1 概念 在需要用到資料時才進行載入,不需要用到資料時就不載入資料。也稱作懶載入 好處:先從單表查詢,需要時再從關聯表去關聯查詢,大大提高資料庫效能 缺點:在大批量資料查詢時,由於查詢會耗時,可能導致使用者等待時間變長,影響使用者體驗

Java框架-mybatis連線池、動態sql多表查詢

1. mybatis連線池 通過SqlMapConfig.xml設定dataSource type實現連線池的配置 1.1 dataSource標籤type屬性值含義 type=”POOLED”: MyBatis 會建立 PooledDataSource 例項