1. 程式人生 > >Spring Boot中Mybatis實戰經驗

Spring Boot中Mybatis實戰經驗

【分表處理】

mybatis-generator-core.jar自動生成的dao裡面只有針對原表的操作,若要處理分表,需特殊處理,以下總結二種方案。
1. 使用Map方式
1)xml中的parameterType="map" statementType="STATEMENT"
2)呼叫方傳入的map中包括分表名,xml中使用${分表名},例如:
map.put("subTable","USER_INFO")
xml中使用 INSERT INTO ${subTable}
3)動態SQL使用:
<if test="_parameter.containsKey('userName')">  
    AND msgType = ${userName})
</if>

2. 使用javaBean方式
1)model層自動生成的javaBean類中需定義分表名屬性,例如: subTable,並提供setter,getter方法
2)xml中的parameterType="javaBean類",表名使用${subTable}
3)針對selectByPrimaryKey等入參只有1個Integer或String的簡單資料型別,無法通過javaBean傳入分表名,此時通過@param繫結變數,例如:
UserInfoMapper.java中
UserInfo selectByPrimaryKey(@Param("subTable") String subTable,@Param("userId") Integer userId);

UserInfoMapper.xml中
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
  <!--
    WARNING - @mbggenerated
    This element is automatically generated by MyBatis Generator, do not modify.
  -->
  select 
  <include refid="Base_Column_List" />
  from ${subTable}
  where USER_ID = #{userId,jdbcType=INTEGER}
</select>

【特殊符號處理】


由於在xml中不能有>或<等符號,需特殊處理:
方法一
使用轉義符替換,例如:
<if test="beginTime != null" >
  AND CREATE_TIME &gt;= DATE_FORMAT('${beginTime}','%Y-%m-%d %H:%i:%S')
</if>
附:XML轉義字元
&lt;    <    小於號                                           
&gt;    >    大於號
&amp;   &    和
&apos;  ’    單引號
&quot;  "    雙引號

方法二
使用<![CDATA[ ]]>,例如:
<if test="beginTime != null" >
  <![CDATA[ AND CREATE_TIME >= DATE_FORMAT('${beginTime}','%Y-%m-%d %H:%i:%S') ]]>
</if>

相關推薦

Spring BootMybatis實戰經驗

【分表處理】 mybatis-generator-core.jar自動生成的dao裡面只有針對原表的操作,若要處理分表,需特殊處理,以下總結二種方案。 1. 使用Map方式 1)xml中的parameterType="map" statementType="STATEMEN

spring bootmybatis使用註解進行模糊查詢

cat 遇到 google 使用註解 ring list bat prop ber 小白一枚,spring boot 2.0.5在使用mybatis進行註解模糊查詢時遇到一些低級的錯誤,現記錄下來錯誤示例:“select * from user where name lik

Spring Boot整合MyBatis實戰

一 新建pom <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g

Spring BootMyBatis整合Druid

Spring Boot中MyBatis整合Druid MyBatis整合Druid 1. 引入依賴 2. 配置application.properties 3. DruidConfiguration 4. DruidStatFil

spring boot mybatis 直接寫 sql 增刪改查一套

思路: 1.配置每一層內容 2.在yml中配置mysql資訊 3.在mapper中配置內容sql 返回內容設定成 java.util.HashMap,輸入內容設定成string 4.在配置dao介面 5.可直接執行查詢和修改都ok   java控制

EVCache快取在 Spring Boot實戰

文章共 727字,閱讀大約需要 2分鐘 ! 概 述 EVCache 是 Netflix開源的分散式快取系統,基於 Memcached快取和 Spymemcached客戶端實現,其用在了大名鼎鼎的 AWS亞馬遜雲上,並且為雲端計算做了優化,提供高效的快取服務。 本文利用 Memcached作為後端快取例

spring boot MyBatis整合

application.properties增加spring配置資料庫連結地址 spring.datasource.url=jdbc:mysql://localhost:3306/***?useUnicode=true&characterEncoding=utf

spring-boot實戰【07】【轉】:Spring BootWeb應用的統一異常處理

http integer private fin ima lex clas 友好 ref 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個全

spring-boot實戰【06】【轉】:Spring Boot使用Swagger2

des values 產生 service sof div 解決 整合 data 由於Spring Boot能夠快速開發、便捷部署等特性,相信有很大一部分Spring Boot的用戶會用來構建RESTful API。而我們構建RESTful API的目的通常都是由於多終端的

spring-boot實戰【12】:Spring Boot使用JavaMailSender發送郵件

nts fun rop oci 單元測試 prop 快速入門 cat tid 相信使用過Spring的眾多開發者都知道Spring提供了非常好用的JavaMailSender接口實現郵件發送。在Spring Boot的Starter模塊中也為此提供了自動化配置。下面通過實例

企業分布式微服務雲SpringCloud SpringBoot mybatis (七)Spring Boot使用JdbcTemplate訪問數據庫

ger sele 應該 創建 測試環境 oid reg tis eat 本文介紹在Spring Boot基礎下配置數據源和通過JdbcTemplate編寫數據訪問的示例。 數據源配置 在我們訪問數據庫的時候,需要先配置一個數據源,下面分別介紹一下幾種不同的數據庫配置方式。

企業分布式微服務雲SpringCloud SpringBoot mybatis (六)Spring Boot使用Spring Security進行安全控制

spring ron public 控制 應用 app ebs cloud 來源 準備工作 首先,構建一個簡單的Web工程,以用於後續添加安全控制,也可以用之前Chapter3-1-2做為基礎工程。若對如何使用Spring Boot構建Web應用,可以先閱讀《Spring

企業分布式微服務雲SpringCloud SpringBoot mybatis (五)Spring BootWeb應用的統一異常處理

src one exception learn 微服務 public .net 可能 訪問 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個

企業分布式微服務雲SpringCloud SpringBoot mybatis (十六)Spring Boot使用LDAP來統一管理用戶信息

數據庫表 repo on() intellij attr ads get 可選 mail LDAP簡介 LDAP(輕量級目錄訪問協議,Lightweight Directory Access Protocol)是實現提供被稱為目錄服務的信息服務。目錄服務是一種特殊的數據庫系

Spring Boot使用MyBatis註解配置詳解(1)

sql type .org 實體 sch 整合 PE 匯總 同傳 之前在Spring Boot中整合MyBatis時,采用了註解的配置方式,相信很多人還是比較喜歡這種優雅的方式的,也收到不少讀者朋友的反饋和問題,主要集中於針對各種場景下註解如何使用,下面就對幾種常見的情況舉

Spring Boot使用MongoDB資料庫實戰

 一 MongoDB簡介 MongoDB是一個基於分散式檔案儲存的資料庫,它是一個介於關係資料庫和非關係資料庫之間的產品,其主要目標是在鍵/值儲存方式(提供了高效能和高度伸縮性)和傳統的RDBMS系統(具有豐富的功能)之間架起一座橋樑,它集兩者的優勢於一身。 MongoDB支援

Spring Boot使用Redis資料庫實戰

一 新增依賴 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>

Spring BootWeb應用的統一異常處理實戰

 一 建立全域性異常處理類 package com.didispace.exception; import com.didispace.dto.ErrorInfo; import org.springframework.web.bind.annotation.Contr

Spring Boot使用MyBatis註解配置開發詳解

Spring Boot中使用MyBatis註解配置詳解 原創   2018-04-03 宗野       Spring Boot 最近專案原因可能會繼續開始使用

第6課:Java Spring Boot 2.0實戰MyBatis與優化(Java面試題)

《阿里巴巴Java Spring Boot 2.0開發實戰課程》06課本期分享專家:徐雷—阿里巴巴特邀Java講師,MongoDB講師 本期分享主題:Spring Boot2.0實戰MyBatis與優化 (Java面試題)Java Spring Boot 2.0是最新的開發平臺,Mybatis是高效能ORM