Fluent|Fluent Mybatis让你摆脱Xml文件的技巧
目录
- 一、啥是Fluent-Mybatis
- 二、SpringBoot + Fluent-Mybatis
- 三、官方链接
一、啥是Fluent-Mybatis 与Mybatis-Plus类似,是对Mybaits进一步的封装,使之语法简洁明了,更重要的是不需要在自主创建Xml文件,可以只用一个实体类对象,通过代码生成器,在编译的过程中生成所需要的各类文件,简化了项目的基础构建,提高开发效率。
文章图片
二、SpringBoot + Fluent-Mybatis 1、创建数据库测试表
DROP TABLE IF EXISTS `t_user`; create table `t_user`(id bigint auto_increment comment '主键ID' primary key,name varchar(30) charset utf8 null comment '姓名',age int null comment '年龄',email varchar(50) charset utf8 null comment '邮箱',gmt_create datetime null comment '记录创建时间',gmt_modified datetime null comment '记录最后修改时间',is_deleted tinyint(2) default 0 null comment '逻辑删除标识');
2、创建一个Springboot项目,pom文件如下
4.0.0 org.springframework.boot spring-boot-starter-parent2.3.1.RELEASE com.mybatis.fluent fluent_mybatis0.0.1-SNAPSHOT fluent_mybatis Demo project for Spring Boot 1.8 1.5.6 org.springframework.boot spring-boot-startermysql mysql-connector-javaruntimeorg.mybatis.spring.boot mybatis-spring-boot-starter2.0.1 com.github.atool fluent-mybatis${fluent.mybatis.version} com.github.atool fluent-mybatis-processor${fluent.mybatis.version} providedorg.projectlombok lomboktrue org.springframework.boot spring-boot-starter-testtestorg.junit.vintage junit-vintage-engineorg.springframework.boot spring-boot-maven-pluginorg.projectlombok lombok
3、代码生成器
import cn.org.atool.generator.FileGenerator; import cn.org.atool.generator.annotation.Table; import cn.org.atool.generator.annotation.Tables; public class AppEntityGenerator {public static void main(String[] args) {FileGenerator.build(Abc.class); }@Tables(/** 数据库连接信息 **/url = "jdbc:mysql://IP:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai", username = "XXXXXX",password = "XXXXXX",/** Entity类parent package路径 **/basePack = "com.mybatis.fluent.fluent_mybatis",/** Entity代码源目录 **/srcDir = "/src/main/java",/** Dao代码源目录 **/daoDir = "/src/main/java",/** 如果表定义记录创建,记录修改,逻辑删除字段 **/gmtCreated = "gmt_create", gmtModified = "gmt_modified", logicDeleted = "is_deleted",/** 需要生成文件的表 **/tables = @Table(value = https://www.it610.com/article/{"t_user"}))static class Abc {}}
需要注意,默认的是MySQL数据库,如果需要其他数据库,需要手动配置dbType和driver,其他选项按照需要修改。例如oralce
import cn.org.atool.generator.FileGenerator; import cn.org.atool.generator.annotation.Table; import cn.org.atool.generator.annotation.Tables; import cn.org.atool.generator.database.DbType; public class AppEntityGenerator {public static void main(String[] args) {FileGenerator.build(Abc.class); }@Tables(/** 数据库连接信息 **/dbType= DbType.ORACLE,driver= "oracle.jdbc.OracleDriver",url = "jdbc:oracle:thin:@IP:1521:orcl",username = "XXXXXX",password = "XXXXXX",/** Entity类parent package路径 **/basePack = "com.mybatis.fluent.fluent_mybatis",/** Entity代码源目录 **/srcDir = "/src/main/java",/** Dao代码源目录 **/daoDir = "/src/main/java",/** 如果表定义记录创建,记录修改,逻辑删除字段 **/gmtCreated = "INSERT_DATE_TIME",/** 需要生成文件的表 **/tables = @Table(value = https://www.it610.com/article/{"table_name"}))static class Abc {}}
main方法启动执行,生成的项目结构,如果在执行是出现异常
文章图片
需要暂时注释
文章图片
当生成好对应文件,项目目录如下
文章图片
此时TUserDaoImpl会有错误
文章图片
此时将需要将之前注释的provided打开,在执行
文章图片
执行过后,异常消除。此时你就拥有的对数据库此表的强大操作能力。
4、测试CURD
import cn.org.atool.fluent.mybatis.model.IPagedList; import cn.org.atool.fluent.mybatis.model.StdPagedList; import com.mybatis.fluent.fluent_mybatis.dao.impl.HospitalinfoDaoImpl; import com.mybatis.fluent.fluent_mybatis.dao.impl.TUserDaoImpl; import com.mybatis.fluent.fluent_mybatis.entity.HospitalinfoEntity; import com.mybatis.fluent.fluent_mybatis.entity.TUserEntity; import com.mybatis.fluent.fluent_mybatis.helper.TUserWrapperHelper; import com.mybatis.fluent.fluent_mybatis.wrapper.HospitalinfoQuery; import com.mybatis.fluent.fluent_mybatis.wrapper.TUserQuery; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import javax.annotation.Resource; import java.io.Serializable; import java.util.List; @SpringBootTestclass FluentMybatisApplicationTests {@Resourceprivate TUserDaoImpl dao; @Testvoid add() {TUserEntity entity = new TUserEntity().setAge(20).setEmail("122@163.com").setName("lisi").setIsDeleted(false); Serializable id = dao.save(entity); System.out.println("插入后返回的主键ID为:" + id); }@Testvoid select(){/*** 分页查询构造条件*/TUserQuery query = TUserQuery.query().limit(0,1); Listlist = dao.listEntity(query); System.out.println(list); }@Testvoid upData(){TUserEntity entity = dao.selectById(1L); System.out.println(entity); entity.setAge(2000).setEmail("120098922@qq.com").setName("lisi111").setIsDeleted(true); System.out.println(entity); boolean b = dao.updateById(entity); System.out.println(b); }@Testvoid delete(){boolean b = dao.deleteById(1L); System.out.println(b); TUserQuery query = TUserQuery.query(); List list = dao.listEntity(query); System.out.println(list); }}
三、官方链接 官方文档
官方网站提供了完整切详细的构建和使用的文档,本文的内容仅为学习练习的Demo
到此这篇关于Fluent Mybatis让你摆脱Xml文件的技巧的文章就介绍到这了,更多相关Fluent Mybatis Xml文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper
- mybatisplus|mybatisplus where QueryWrapper加括号嵌套查询方式
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 句子分享
- 同理心,让你教育孩子事半功倍
- 第十六天(请介绍一件让你非常自豪的事情,(不能是职业类的),什么原因感到自豪。)
- 一味地刷手机让你的效率越来越低下
- 三招让你提升幸福感