【MyBatis學習07】輸出型別resultType及輸出引數對映resultMap
使用mybatis操作時,對於SQL語句返回結果的處理通常有兩種方式,一種是resultType,另一種是resultMap。
resultType:如果要填充的pojo屬性和資料庫列名完全一致,可採用resultType。如果出現不一致的情況下,系統並不會報錯,只是pojo的屬性會填充成null。
resultMap:如果出現不一致的情況下怎麼辦呢?就要用到reslutMap了。
pojo類如下:
public class Product {
Integer id;
String productname;
Float price2;
public Product (){}
public Product(Integer id, String productname, Float price, Integer cateid) {
super();
this.id = id;
this.productname = productname;
this.price2 = price;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this .id = id;
}
public String getProductname() {
return productname;
}
public void setProductname(String productname) {
this.productname = productname;
}
public Float getPrice2() {
return price2;
}
public void setPrice2(Float price) {
this.price2 = price;
}
@Override
public String toString() {
return "Product [id=" + id + ", productname=" + productname
+ ", price2=" + price2 + "]";
}
}
在SQL查詢中,我們將列名故意重新命名。
對映的xml檔案如下:
<select id="searchByPrice" parameterType="Map" resultType="Product">
select id p_id,productname p_name,price p_price from Product where price >= #{minPrice} and price <=#{maxPrice}
</select>
因為返回的列名和pojo屬性不一致,所以要增加resultMap標籤做一個關係轉換。
且查詢語句的返回要用resultMap指定。
最終XML如下:
相關推薦
【MyBatis學習07】輸出型別resultType及輸出引數對映resultMap
使用mybatis操作時,對於SQL語句返回結果的處理通常有兩種方式,一種是resultType,另一種是resultMap。 resultType:如果要填充的pojo屬性和資料庫列名完全一致,可採用resultType。如果出現不一致的情況下,系統並不
【MyBatis學習筆記】5:認識使用typeHandlers配置型別處理器
簡述 註冊了的型別處理器會用於處理下面兩種情形: 為PreparedStatement設定一個引數,將引數從Java型別轉為JDBC型別。 從ResultSet中取出一個值,將結果從JDBC型別轉為Java型別。 型別處理器可分為以下兩類: MyB
【MyBatis學習16】自定義型別處理器typeHandlers介紹
<update id="update" parameterType="twm.mybatisdemo.pojo.User"> update user set username=#{username},password=#{pa
【MyBatis學習17】用typeHandlers處理enum型別
如果想使用mybatis自帶的列舉類處理,有2種方式,一個是EnumTypeHandler,一個是EnumOrdinalTypeHandler。 區別如下: EnumTypeHandler直接儲存name值。它是mybatis預設的列舉型別轉換器。
【MyBatis學習15】使用MyBatis Generator自動建立程式碼
這兩天需要用到MyBatis的程式碼自動生成的功能,由於MyBatis屬於一種半自動的ORM框架,所以主要的工作就是配置Mapping對映檔案,但是由於手寫對映檔案很容易出錯,所以可利用MyBatis生成器自動生成實體類、DAO介面和Mapping對映檔案。這樣可以省去很多的功夫,將生成的程
【SpringMVC學習07】SpringMVC與前臺的json資料互動
json資料格式在介面呼叫中、html頁面中比較常用,json格式比較簡單,解析也比較方便,所以使用很普遍。在springmvc中,也支援對json資料的解析和轉換,這篇文章主要總結一下springmvc中如何和前臺互動json資料。 1. 兩種互動形式 springmvc和前臺互
【Mybatis學習筆記】01—Mybatis入門
什麼是Mybatis: Mybatis是一款持久層框架。用於程式與資料庫的之間的互動。 Mybatis和大名鼎鼎的全自動持久層框架Hibernate最大不同的地方在於,Mybatis是半自動的,由開發人員來定製sql語句。 並且相比較Hibernate而言Mybatis
【JavaSE學習筆記】IO流02_位元組輸出流OutputStream、位元組輸入流InputStream
IO流02 概述 1)IO流:裝置和裝置之間的傳輸(讀寫) 2)分類 按流的方向分為: 輸入流 --->讀取資料 輸出流 --->寫出資料 按資料
【MyBatis學習18】使用註解配置Mapper
MyBatis支援使用註解來配置對映的sql語句,這樣可以省掉對映器xml檔案。 一、對映語句 1、insert 比如入門例項中的: public int insert(User user) throws Exception;11<insert id="in
【Mybatis學習筆記】04 Mybatis分頁-多引數傳遞
2018.5.18需求:查詢分頁資料方法一:使用索引按照引數的順序,從0開始mapper:介面:引數名任意方法二:使用註解、mapper:介面:註解的value值要和mapper的佔位引數一致。方法三:使用map(常用)mapper中的引數佔位符要和測試中的map的key,v
【MyBatis學習10】高階對映之多對多查詢
本文來總結一下mybatis中的多對多對映,從第8節的文章中可以看出,使用者表和商品表示多對多關係,它們兩的多對多是通過訂單項和訂單明細這兩張表所關聯起來的,那麼這一節主要來總結一下使用者表和商
【MyBatis學習11】MyBatis中的延遲載入
1. 什麼是延遲載入 舉個例子:如果查詢訂單並且關聯查詢使用者資訊。如果先查詢訂單資訊即可滿足要求,當我們需要查詢使用者資訊時再查詢使用者資訊。把對使用者資訊的按需去查詢就是延遲載入。
【MyBatis學習8】MyBatis中的二級快取
1. 二級快取的原理 前面介紹了,mybatis中的二級快取是mapper級別的快取,值得注意的是,不同的mapper都有一個二級快取,也就是說,不同的mapper之間的二級快取是互不影響的。為了更加清楚的描述二級快取,先來看一個示意圖: 從圖中可以看出: sqlSession1去查詢使用
【MyBatis學習12】MyBatis中的一級快取
快取的作用是減輕資料庫的壓力,提高資料庫的效能的。mybatis中提供了一級快取和二級快取,先來看一下兩個快取的示意圖: 從圖中可以看出: 一級快取是SqlSession
【MyBatis學習05】SqlMapConfig.xml檔案中的配置總結
經過上兩篇博文的總結,對mybatis中的dao開發方法和流程基本掌握了,這一節主要來總結一下mybatis中的全域性配置檔案SqlMapConfig.xml在開發中的一些常用配置,首先看一下該全域性配置檔案中都有哪些可以配置的東西: 配置內容 作用 <
【MyBatis學習10】關聯關係association:1對1關聯的三種方法
本篇主要講關聯關係:一對一關係與一對多關係。 先建5個表: DROP TABLE IF EXISTS `category`; CREATE TABLE `category` ( `id` int(10) unsigned NOT NULL A
【MyBatis學習06】_parameter:解決There is no getter for property named in class java.lang.String
我們知道在mybatis的對映中傳引數,只能傳入一個。通過#{引數名} 即可獲取傳入的值。 Mapper介面檔案: public int delete(int id) throws Exception; MapperL配置檔案: <dele
【Mybatis學習筆記】01 配置搭建Mybatis
一、什麼是Mybatis mybatis是對jdbc的封裝 將sql語句放在對映檔案中(xml) 自動將輸入引數對映到sql語句的動態引數上自動將sql語句執行的結果對映成java物件。二、入門例項1、建立專案mybatis-01java專案maven2.匯入jar包![im
【MyBatis學習05】傳入引數parameterType
在前面的mapper.xml的select、insert、update、delete這些元素中,我們已接觸了傳入引數,並通過parameterType指定傳入引數的型別。注意不要和parameterMap混淆了。(parameterMap幾乎很少場景下用了)
【MyBatis學習04】mapper代理方法開發dao
上一篇博文總結了mybatis使用 原始dao的方法存在的一些弊端,我們肯定不會去用它,那麼mybatis中該如何開發dao呢?如題所述,這篇博文主要來總結一下使用mapper代理的方法來開發d