ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

5.MyBatisPlus学习

5.MyBatisPlus学习 特性无侵入只做增强不做改变引入它不会对现有工程产生影响如丝般顺滑损耗小启动即会自动注入基本 CURD性能基本无损耗直接面向对象操作强大的 CRUD 操作内置通用 Mapper、通用 Service仅仅通过少量配置即可实现单表大部分 CRUD 操作更有强大的条件构造器满足各类使用需求支持 Lambda 形式调用通过 Lambda 表达式方便的编写各类查询条件无需再担心字段写错支持主键自动生成支持多达 4 种主键策略内含分布式唯一 ID 生成器 - Sequence可自由配置完美解决主键问题支持 ActiveRecord 模式支持 ActiveRecord 形式调用实体类只需继承 Model 类即可进行强大的 CRUD 操作支持自定义全局通用操作支持全局通用方法注入 Write once, use anywhere 内置代码生成器采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码支持模板引擎更有超多自定义配置等您来使用内置分页插件基于 MyBatis 物理分页开发者无需关心具体操作配置好插件之后写分页等同于普通 List 查询分页插件支持多种 数据库支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库内置性能分析插件可输出 SQL 语句以及其执行时间建议开发测试时启用该功能能快速揪出慢查询内置全局拦截插件提供全表 delete 、 update 操作智能分析阻断也可自定义拦截规则预防误操作支持数据库架构数据库表CREATEDATABASEjava-test/*140100 DEFAULT CHARACTER SET utf8mb4 */;usejava-test;CREATETABLEstudent(idbigint(20)NOTNULLCOMMENT主键IDnamevarchar(30)DEFAULTNULLCOMMENT姓名ageint(11)DEFAULTNULLCOMMENT年龄emailvarchar(50)DEFAULTNULLCOMMENT邮箱PRIMARYKEY(id))ENGINEInnoDBDEFAULTCHARSETutf8;导包dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version/dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency配置server:port:9999spring:# mysql数据源配置datasource:driver-class-name:com.mysql.cj.jdbc.Drivertype:com.zaxxer.hikari.HikariDataSourceurl:jdbc:mysql://localhost:3306/java-testusername:rootpassword:123456# 整合mybatis注意事项驱动类driver-class-namespringboot 2.0(内置jdbc5驱动)驱动类使用:driver-class-name: com.mysql.jdbc.Driverspring boot 2.1及以上(内置jdbc8驱动),驱动类使用:driver-class-name: com.mysql.cj.jdbc.Driver否则运行测试用例的时候会有WARN信息连接地址urlMySQL5.7版本的url:jdbc:mysql://localhost:3306/mybatis_plus?characterEncodingutf-8useSSLfalseMySQL8.0版本的url:jdbc:mysql://localhost:3306/mybatis_plus?serverTimezoneGMT%2B8characterEncodingutf8useSSLfalse否则运行测试用例报告如下错误:java.sql.SQLException: The server time zone value...实体类mybatisplus要求实体类类名和数据库表名一致要求更严格。packagecom.light.mybatisplus.pojo;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;AllArgsConstructorNoArgsConstructorDatapublicclassStudent{privateLongid;privateStringname;privateIntegerage;privateStringemail;}创建Mapper文件StudentMapper.javapackagecom.light.mybatisplus.mapper;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;importcom.light.mybatisplus.pojo.Student;publicinterfaceStudentMapperextendsBaseMapperStudent{}自动扫描mapper包packagecom.light.mybatisplus;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.mybatis.spring.annotation.MapperScan;SpringBootApplication// ComponentScan(com.light.mybatisplus.mapper) //扫描带 Component/Service/Repository 的类MapperScan(com.light.mybatisplus.mapper)// 扫描指定包下的接口生成 MyBatis 的动态代理并注册为 Spring BeanpublicclassMybatisPlusApplication{publicstaticvoidmain(String[]args){SpringApplication.run(MybatisPlusApplication.class,args);}}测试packagecom.light.mybatisplus;importcom.light.mybatisplus.mapper.StudentMapper;importcom.light.mybatisplus.pojo.Student;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.List;SpringBootTestpublicclassMybatisPlusTest{Autowired//依赖注入privateStudentMapperstudentMapper;TestpublicvoidgetStudentList(){ListStudentstudentsstudentMapper.selectList(null);System.out.println(students);}}
返回列表