日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MyBatis-plus执行自定义SQL

發布時間:2024/1/8 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis-plus执行自定义SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
序號類型地址
1MySQLMySQL操作之概念、SQL約束(一)
2MySQLMySQL操作之數據定義語言(DDL)(二)
3MySQLMySQL操作之數據操作語言(DML)(三)
4MySQLMySQL操作之數據查詢語言:(DQL)(四-1)(單表操作)
5MySQLMySQL操作之數據查詢語言:(DQL)(四-2)(多表查詢)
6MySQLMySQL操作之數據控制語言:(DC)(五)
7MySQLMySQL操作之數據庫函數
8MySQLMySQL管理之數據類型
9MySQLMySQL管理之索引
10MySQLMySQL管理之事務管理
11MySQLMySQL管理之存儲過程
12MySQLMySQL管理之視圖
13MySQLMySQL管理之數據備份與還原
14MySQLLinux(centos 7.5)服務器安裝MySQL
15MyBatisMyBatis從入門到多表關聯
16MyBatisMyBatis常用方法
17MyBatisMybatis逆向工程的使用(附文件地址)
18MyBatisspring boot連接Mybatis數據庫的配置文件(MySql、SQLserver、Oracle)
19MyBatis-PlusMybatis-Plus使用案例(包括初始化以及常用插件)
20MyBatis-PlusMybatis-Plus(Service CRUD 接口)
21MyBatis-PlusMybatis-plus 4種條件構造器方式
22MyBatis-PlusMybatis-Plus 執行自定義SQL
23MyBatis-PlusMyBatis-plus配置自定義SQL(執行用戶傳入SQL)
24MyBatis-PlusMybatis-Plus(連接Hive)
25MyBatis-PlusMybatis-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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。