1. 程式人生 > >mybatis的使用-Mapper檔案各種語法

mybatis的使用-Mapper檔案各種語法

一、查詢

mybatis自定義查詢條件,queryString、queryMap、limit,Mapper檔案寫法如下:

	<select id="getByQueryParam" parameterType="com.systom.base.BaseDaoQueryParam" resultMap="BaseResultMap">
        SELECT
            *
        FROM
            user
        WHERE  1 = 1
			<if test="paramString != null">
				and ${paramString}
			</if>
			<foreach collection="paramMap.keys" item="k" separator="">   
			    <if test="null != paramMap[k]">    
			        and ${k} = #{paramMap.${k}}  
			    </if>  
			</foreach>
            <if test="paramInt1 != null and paramInt1 > 0 and paramInt2 != null and paramInt2 > 0">
				limit #{paramInt1,jdbcType=INTEGER}, #{paramInt2,jdbcType=INTEGER}
			</if>
    </select>

以及傳入參入的bean類:
package com.systom.base;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

public class BaseDaoQueryParam implements Serializable {

	private static final long serialVersionUID = -8917191044499296040L;
	private String paramString;
	private Map<String, Object> paramMap = new HashMap<String, Object>();
	private int paramInt1;
	private int paramInt2;
	private String orderBy;
	private String orderType;

	public BaseDaoQueryParam(String paramString, Map<String, Object> paramMap, int paramInt1,
			int paramInt2) {
		super();
		this.paramString = paramString;
		if(paramMap != null) this.paramMap = paramMap;
		this.paramInt1 = paramInt1;
		this.paramInt2 = paramInt2;
	}

	public BaseDaoQueryParam(String paramString, Map<String, Object> paramMap, int paramInt1,
			int paramInt2, String orderBy, String orderType) {
		super();
		this.paramString = paramString;
		if(paramMap != null) this.paramMap = paramMap;
		this.paramInt1 = paramInt1;
		this.paramInt2 = paramInt2;
		this.orderBy = orderBy;
		this.orderType = orderType;
	}

	public String getParamString() {
		return paramString;
	}

	public void setParamString(String paramString) {
		this.paramString = paramString;
	}

	public Map<String, Object> getParamMap() {
		return paramMap;
	}

	public void setParamMap(Map<String, Object> paramMap) {
		this.paramMap = paramMap;
	}

	public int getParamInt1() {
		return paramInt1;
	}

	public void setParamInt1(int paramInt1) {
		this.paramInt1 = paramInt1;
	}

	public int getParamInt2() {
		return paramInt2;
	}

	public void setParamInt2(int paramInt2) {
		this.paramInt2 = paramInt2;
	}

	public String getOrderBy() {
		return orderBy;
	}

	public void setOrderBy(String orderBy) {
		this.orderBy = orderBy;
	}

	public String getOrderType() {
		return orderType;
	}

	public void setOrderType(String orderType) {
		this.orderType = orderType;
	}

	
}


相關推薦

mybatis的使用-Mapper檔案各種語法

一、查詢 mybatis自定義查詢條件,queryString、queryMap、limit,Mapper檔案寫法如下: <select id="getByQueryParam" parameterType="com.systom.base.BaseDaoQuery

mybatis mapper檔案裡的<set><trim>

簡單介紹:翻看以前在學校寫的程式碼,發現那時候有一個sql寫的很有意思,用到了 <set>標籤,和我現在寫的雖然有點差別,但是效果一樣 程式碼: // mapper裡的sql <update id="updateEvent" parameterType="map">  

關於Mybatis的@Param註解 及 mybatis Mapper各種傳遞引數的方法

  原文:https://blog.csdn.net/mrqiang9001/article/details/79520436 關於Mybatis的@Param註解   Mybatis 作為一個輕量級的資料持久化框架,目前(2018)的應用非常廣泛,基本可以取代Hiberna

Mybatis Mapper檔案筆記

1.If條件語句 2.sql語句塊定義和引用 3.Mapper檔案中,如果sql中有一些特殊字元,如>=、<=等符號,會因為不被轉義而報錯。其解決方法有兩種:轉義字元和標記CDATA塊 轉義字元表如下:     &nbs

mybatis mapper檔案 使用心得

mybatis 使用心得 1. resultMap 中 id 和 result 的區別 id和result都是對映單列值到一個屬性或欄位的簡單資料型別。 唯一不同是。id是作為唯一標識的,當和其他物件例項對比的時候,這個id可以應用到快取和內嵌的結果對映。 2. r

mybatis mapper檔案在編譯後丟失

前言 在進行spring mvc, Mybatis工程開發時,mapper檔案由逆向工程自動生成,此時在編譯時mapper檔案會丟失。 解決 在pom檔案中新增如下配置,就可以將mapper檔案也一併編譯打包。 <!-- 如果不新增此節點mybatis的mapper.

MyBatis Mapper.xml各種判斷

1.判斷String是否為空 <if test="stringParam != null and stringParam != ''"></if> 2.判斷Integer是否大於0 <if test="idParam !=null a

使用mybatis-generator-core生成MyBatis Mapper檔案

1 下載 mybatis-generator-core-1.3.5 2 解壓到 d:\ 3 配置 generatorConfig.xml,檔案內容參考如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE

自己挖的坑自己填--Mybatis mapper檔案if標籤中number型別及String型別的坑

  1.現象描述   (1)使用 Mybatis 在進行資料更新時,大部分時候update語句都需要通過動態SQL進行拼接。在其中,if標籤中經常會有 xxx !='' 這種判斷,若 number 型別的欄位上傳遞的值為 0, 執行更新時會發現資料庫中的資料並沒有被更新成 0,這種異常現象不會報錯,所以容易被

Mybatis原始碼分析(1)—— Mapper檔案解析

感覺CSDN對markdown的支援不夠友好,總是伴隨各種問題,很惱火! xxMapper.xml的解析主要由XMLMapperBuilder類完成,parse方法來完成解析: public void parse() { if (!configuration.isRes

mybatismapper檔案注意事項

xml中某些特殊符號作為內容資訊時需要做轉義,否則會對檔案的合法性和使用造成影響 Html程式碼   &lt; <    &gt;&n

MyBatis逆向工程,自動生成dao、實體類、mapper檔案

利用mybatis generator 自動生成生成dao、實體類、mapper檔案 這裡介紹兩種方法: 1、獨立的資料夾的方式,脫離開發工具 2、基於開發工具的方式(Eclipse) 1、獨立的資料夾的方式,脫離開發工具

mybatis配置檔案mapper.xml中trim標籤的用法

在mapper.xml中對statement的定義,可以用<trim>來填充和隱藏sql語句。 <!--修改user的statement--><update id="updateUser" parameterType="user">update user <

Mybatismapper檔案中trim標籤詳解

0、背景 parameterType引數型別student是別名,裡面的欄位有id,name,age,sex被封裝成bean物件,跟資料庫中student表中欄位一一對應,以下案例只為一個SQL語句。(初入SSM坑,請多多指教) update student set name='

MyBatis Generator (MBG),如何實現生成的程式碼,對應的類和 mapper 檔案保持與對應的表名大小寫不變

本文對應的示例程式碼,已託管到 github:mybatis-generator 需求場景 首先,我專案的 Java 程式碼規範是變數命名應用駝峰式命名法(Camel-Case)。資料庫表名及欄位名,則用下劃線命名法(即用下劃線分隔不同單詞)。 我用 MBG 生成的程式

Mybatismapper檔案中${ }和#{ }的區別

dao層實體: User user = new User(); user.setName("小明"); mapper檔案sql語句: 1、使用#{}示例: SELECT * FROM user WHERE name=#{name}; 編譯後的sql為:SELECT

mybatis Mapper XML 對映檔案

傳送門:mybatis官方文件 Mapper XML 檔案詳解 1. select <select id="selectPerson" parameterType="int" parameterMap="deprecated" resultType="hashmap"

mybatis---mapper.xml檔案

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" > <mapper na

Mybatis 自動生成mapper檔案

  在pom.xml下的<build>內加入: <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId&g

mybatis(plus) 繼承子模組的 Mapper檔案

問題的起因是因為在搭建 spring-booot、mybatis-plus、的 maven 多模組專案時,丟擲了異常 Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):