MyBatis-plus执行自定义SQL
生活随笔
收集整理的這篇文章主要介紹了
MyBatis-plus执行自定义SQL
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 1 | MySQL | MySQL操作之概念、SQL約束(一) |
| 2 | MySQL | MySQL操作之數據定義語言(DDL)(二) |
| 3 | MySQL | MySQL操作之數據操作語言(DML)(三) |
| 4 | MySQL | MySQL操作之數據查詢語言:(DQL)(四-1)(單表操作) |
| 5 | MySQL | MySQL操作之數據查詢語言:(DQL)(四-2)(多表查詢) |
| 6 | MySQL | MySQL操作之數據控制語言:(DC)(五) |
| 7 | MySQL | MySQL操作之數據庫函數 |
| 8 | MySQL | MySQL管理之數據類型 |
| 9 | MySQL | MySQL管理之索引 |
| 10 | MySQL | MySQL管理之事務管理 |
| 11 | MySQL | MySQL管理之存儲過程 |
| 12 | MySQL | MySQL管理之視圖 |
| 13 | MySQL | MySQL管理之數據備份與還原 |
| 14 | MySQL | Linux(centos 7.5)服務器安裝MySQL |
| 15 | MyBatis | MyBatis從入門到多表關聯 |
| 16 | MyBatis | MyBatis常用方法 |
| 17 | MyBatis | Mybatis逆向工程的使用(附文件地址) |
| 18 | MyBatis | spring boot連接Mybatis數據庫的配置文件(MySql、SQLserver、Oracle) |
| 19 | MyBatis-Plus | Mybatis-Plus使用案例(包括初始化以及常用插件) |
| 20 | MyBatis-Plus | Mybatis-Plus(Service CRUD 接口) |
| 21 | MyBatis-Plus | Mybatis-plus 4種條件構造器方式 |
| 22 | MyBatis-Plus | Mybatis-Plus 執行自定義SQL |
| 23 | MyBatis-Plus | MyBatis-plus配置自定義SQL(執行用戶傳入SQL) |
| 24 | MyBatis-Plus | Mybatis-Plus(連接Hive) |
| 25 | MyBatis-Plus | Mybatis-Plus 代碼生成器 |
文章目錄
- 一、原生MyBatis執行
- 二、MyBatis 執行
- 2.1、調用dao
- 2.2、dao層接口配置
- 2.3、dao中`xml`配置
- 三、MyBatis-plus中Sql注入器
- 3.1、編寫MyBaseMapper(要添加方法)
- 3.2、編寫FindAll(方法具體實現)
- 3.3、編寫MySqlInjector(注冊到MyBatis-plus中)
- 3.4、編寫MySqlInjector(注冊到MyBatis-plus中)
- 3.5、測試
一、原生MyBatis執行
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired;import java.sql.SQLException;public class TestMySql {@Autowiredprivate SqlSessionTemplate sqlSessionTemplate;// 自定義執行SQLpublic void mySql() throws SQLException {String sql = "select * from User";SqlSession sqlSession = openSession();sqlSession.getConnection().prepareStatement(sql);closeSession(sqlSession);}// 開啟鏈接private SqlSession openSession() {SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();return sqlSessionFactory.openSession();}// 關閉鏈接private void closeSession(SqlSession sqlSession) {sqlSession.close();} }二、MyBatis 執行
2.1、調用dao
String sql = "Select * From User"; sqlMapper.explainQuery(sql);2.2、dao層接口配置
@SqlParser(filter = true) void explainQuery(String sql);2.3、dao中xml配置
<update id="explainQuery">${templateName,jdbcType=VARCHAR} </update>三、MyBatis-plus中Sql注入器
3.1、編寫MyBaseMapper(要添加方法)
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import java.util.List; public interface MyBaseMapper<T> extends BaseMapper<T> {List<T> findAll(); }3.2、編寫FindAll(方法具體實現)
import com.baomidou.mybatisplus.core.enums.SqlMethod; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.metadata.TableInfo; import org.apache.ibatis.mapping.MappedStatement; import org.apache.ibatis.mapping.SqlSource;public class FindAll extends AbstractMethod {@Overridepublic MappedStatement injectMappedStatement(Class<?> mapperClass, Class<?> modelClass, TableInfo tableInfo) {String sqlMethod = "findAll";String sql = "select * from " + tableInfo.getTableName();SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);return this.addSelectMappedStatement(mapperClass, sqlMethod, sqlSource, modelClass, tableInfo);} }3.3、編寫MySqlInjector(注冊到MyBatis-plus中)
import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;import java.util.List;public class MySqlInjector extends DefaultSqlInjector {@Overridepublic List<AbstractMethod> getMethodList() {List<AbstractMethod> methodList = super.getMethodList();methodList.add(new FindAll()); // 再擴充自定義的方法list.add(new FindAll());return methodList;} }3.4、編寫MySqlInjector(注冊到MyBatis-plus中)
import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;import java.util.List;public class MySqlInjector extends DefaultSqlInjector {@Overridepublic List<AbstractMethod> getMethodList() {List<AbstractMethod> methodList = super.getMethodList();methodList.add(new FindAll()); // 再擴充自定義的方法list.add(new FindAll());return methodList;} }### 2.4、注冊到Spring容器```java /*** 自定義SQL注入器 */ @Bean public MySqlInjector mySqlInjector() {return new MySqlInjector(); }3.5、測試
@Test public void testFindAll() {List<User> users = this.userMapper.findAll();for (User user : users) {System.out.println(user);} }總結
以上是生活随笔為你收集整理的MyBatis-plus执行自定义SQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 无监督学习实用指南:1~5
- 下一篇: SQL常用函数及使用案例