1. 程式人生 > >【MyBatis學習07】輸出型別resultType及輸出引數對映resultMap

【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 &gt;= #{minPrice} and price &lt;=#{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學習07SpringMVC與前臺的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學習11MyBatis中的延遲載入

1. 什麼是延遲載入   舉個例子:如果查詢訂單並且關聯查詢使用者資訊。如果先查詢訂單資訊即可滿足要求,當我們需要查詢使用者資訊時再查詢使用者資訊。把對使用者資訊的按需去查詢就是延遲載入。

MyBatis學習8MyBatis中的二級快取

1. 二級快取的原理   前面介紹了,mybatis中的二級快取是mapper級別的快取,值得注意的是,不同的mapper都有一個二級快取,也就是說,不同的mapper之間的二級快取是互不影響的。為了更加清楚的描述二級快取,先來看一個示意圖:     從圖中可以看出: sqlSession1去查詢使用

MyBatis學習12MyBatis中的一級快取

  快取的作用是減輕資料庫的壓力,提高資料庫的效能的。mybatis中提供了一級快取和二級快取,先來看一下兩個快取的示意圖:   從圖中可以看出: 一級快取是SqlSession

MyBatis學習05SqlMapConfig.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學習04mapper代理方法開發dao

  上一篇博文總結了mybatis使用 原始dao的方法存在的一些弊端,我們肯定不會去用它,那麼mybatis中該如何開發dao呢?如題所述,這篇博文主要來總結一下使用mapper代理的方法來開發d