序号类型地址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)服务器安装MySQL15MyBatisMyBatis从入门到多表关联16MyBatisMyBatis常用方法17MyBatisMybatis逆向工程的使用(附文件地址)18MyBatisspring boot连接Mybatis数据库的配置文件(MySql、SQLserver、Oracle)19MyBatis-PlusMybatis-Plus使用案例(包括初始化以及常用插件)20MyBatis-Plusmybatis-plus代码生成器21MyBatis-Plus自定义SQL
文章目录
一、原生MyBatis执行
importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.mybatis.spring.SqlSessionTemplate;importorg.springframework.beans.factory.annotation.Autowired;importjava.sql.SQLException;publicclassTestMySql{@AutowiredprivateSqlSessionTemplate sqlSessionTemplate;// 自定义执行SQLpublicvoidmySql()throwsSQLException{String sql ="select * from User";SqlSession sqlSession =openSession();
sqlSession.getConnection().prepareStatement(sql);closeSession(sqlSession);}// 开启链接privateSqlSessionopenSession(){SqlSessionFactory sqlSessionFactory = sqlSessionTemplate.getSqlSessionFactory();return sqlSessionFactory.openSession();}// 关闭链接privatevoidcloseSession(SqlSession sqlSession){
sqlSession.close();}}
二、MyBatis 执行
2.1、调用dao
String sql ="Select * From User";
sqlMapper.explainQuery(sql);
2.2、dao层接口配置
@SqlParser(filter =true)voidexplainQuery(String sql);
2.3、dao中
xml
配置
<update id="explainQuery">
${templateName,jdbcType=VARCHAR}</update>
三、MyBatis-plus中Sql注入器
3.1、编写MyBaseMapper(要添加方法)
importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importjava.util.List;publicinterfaceMyBaseMapper<T>extendsBaseMapper<T>{List<T>findAll();}
3.2、编写FindAll(方法具体实现)
importcom.baomidou.mybatisplus.core.enums.SqlMethod;importcom.baomidou.mybatisplus.core.injector.AbstractMethod;importcom.baomidou.mybatisplus.core.metadata.TableInfo;importorg.apache.ibatis.mapping.MappedStatement;importorg.apache.ibatis.mapping.SqlSource;publicclassFindAllextendsAbstractMethod{@OverridepublicMappedStatementinjectMappedStatement(Class<?> mapperClass,Class<?> modelClass,TableInfo tableInfo){String sqlMethod ="findAll";String sql ="select * from "+ tableInfo.getTableName();SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);returnthis.addSelectMappedStatement(mapperClass, sqlMethod, sqlSource, modelClass, tableInfo);}}
3.3、编写MySqlInjector(注册到MyBatis-plus中)
importcom.baomidou.mybatisplus.core.injector.AbstractMethod;importcom.baomidou.mybatisplus.core.injector.DefaultSqlInjector;importjava.util.List;publicclassMySqlInjectorextendsDefaultSqlInjector{@OverridepublicList<AbstractMethod>getMethodList(){List<AbstractMethod> methodList =super.getMethodList();
methodList.add(newFindAll());// 再扩充自定义的方法
list.add(newFindAll());return methodList;}}
3.4、编写MySqlInjector(注册到MyBatis-plus中)
importcom.baomidou.mybatisplus.core.injector.AbstractMethod;importcom.baomidou.mybatisplus.core.injector.DefaultSqlInjector;importjava.util.List;publicclassMySqlInjectorextendsDefaultSqlInjector{@OverridepublicList<AbstractMethod>getMethodList(){List<AbstractMethod> methodList =super.getMethodList();
methodList.add(newFindAll());// 再扩充自定义的方法
list.add(newFindAll());return methodList;}}
### 2.4、注册到Spring容器
```java
/*** 自定义SQL注入器 */@BeanpublicMySqlInjectormySqlInjector(){returnnewMySqlInjector();}
3.5、测试
@TestpublicvoidtestFindAll(){List<User> users =this.userMapper.findAll();for(User user : users){System.out.println(user);}}
本文转载自: https://blog.csdn.net/weixin_44624117/article/details/124936692
版权归原作者 ha_lydms 所有, 如有侵权,请联系我们删除。
版权归原作者 ha_lydms 所有, 如有侵权,请联系我们删除。