dede网站源码打包下载,建筑公司排名前十强,做期货的一般看什么网站,长沙app开发制作公司目录 一、MyBatisPlus介绍
润物无声
效率至上
丰富功能
二、Spring集成MyBatisPlus
三、SpringBoot集成MyBatisPlus 一、MyBatisPlus介绍
MyBatis-Plus#xff08;简称 MP#xff09;是一个MyBatis的增强工具#xff0c;在MyBatis的基础上只做增强不做改变#xff0c…目录 一、MyBatisPlus介绍
润物无声
效率至上
丰富功能
二、Spring集成MyBatisPlus
三、SpringBoot集成MyBatisPlus 一、MyBatisPlus介绍
MyBatis-Plus简称 MP是一个MyBatis的增强工具在MyBatis的基础上只做增强不做改变为简化开发、提高效率而生。MyBatisPlus的愿景是成为MyBatis最好的搭档。 官方网址https://baomidou.com/
下面就是官网的三大小点的介绍了
润物无声
只做增强不做改变引入它不会对现有工程产生影响如丝般顺滑。
效率至上
只需简单配置即可快速进行单表 CRUD 操作从而节省大量时间。
丰富功能
代码生成、自动分页、逻辑删除、自动填充等功能一应俱全。
以及一些其他的
苞米豆生态圈
MybatisX (opens new window)- 一款全免费且强大的 IDEA 插件支持跳转自动补全生成 SQL代码生成。Mybatis-Mate (opens new window)- 为 MyBatis-Plus 企业级模块支持分库分表、数据审计、字段加密、数据绑定、数据权限、表结构自动生成 SQL 维护等高级特性。Dynamic-Datasource (opens new window)- 基于 SpringBoot 的多数据源组件功能强悍支持 Seata 分布式事务。Shuan (opens new window)- 基于 Pac4J-JWT 的 WEB 安全组件, 快速集成。Kisso (opens new window)- 基于 Cookie 的单点登录组件。Lock4j (opens new window)- 基于 SpringBoot 同时支持 RedisTemplate、Redission、Zookeeper 的分布式锁组件。Kaptcha (opens new window)- 基于 SpringBoot 和 Google Kaptcha 的简单验证码组件简单验证码就选它。Aizuda 爱组搭 (opens new window)- 低代码开发平台组件库。
二、Spring集成MyBatisPlus
MyBatisPlus官方推荐在SpringBoot工程中使用Spring工程也可以使用MyBatisPlus首先我们在Spring中使用MyBatisPlus。 1. 在Mysql中准备数据
DROP DATABASE IF EXISTS school;CREATE DATABASE school;USE school;
DROP TABLE IF EXISTS student;
CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) DEFAULT NULL,email varchar(255) DEFAULT NULL,
gender varchar(255) DEFAULT NULL,age int(11) DEFAULT NULL,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8mb4;
创建Maven项目引入依赖
dependencies!-- mybatis-plus --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus/artifactIdversion3.4.2/version/dependency!-- mysql --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.27/version/dependency!-- junit --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependency!-- druid --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.6/version/dependency!-- spring --dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.9/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion5.3.9/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.3.9/version/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.22/version/dependency/dependencies
创建实体类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;Data
NoArgsConstructor
AllArgsConstructor
public class Student {private Integer id;private String name;private String email;private String gender;private Integer age;
}创建Mapper接口。 使用MyBatis时在编写Mapper接口后需要手动编写CRUD方法并需要在Mapper映射文件中手动编写每个方法对应的SQL语句。而在MyBatisPlus中只需要创建Mapper接口并继承 BaseMapper此时该接口获得常用增删改查功能不需要自己手动编写Mapper配置文件
public interface StudentMapper extends
BaseMapperStudent {
}
创建Spring配置文件applicationContext.xml
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:contexthttp://www.springframework.org/schema/contextxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:phttp://www.springframework.org/schema/pxsi:schemaLocationhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd!-- 数据源 --bean iddataSource classcom.alibaba.druid.pool.DruidDataSourceproperty nameusername valueroot/property namepassword value666666/property nameurl valuejdbc:mysql:///school/property namedriverClassName valuecom.mysql.cj.jdbc.Driver//bean!-- Mybatis-Plus提供SqlSessionFactory对象 --bean idsqlSessionFactory classcom.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBeanproperty namedataSource refdataSource//bean!-- 自动扫描所有mapper接口将mapper接口生成代理注入spring --bean classorg.mybatis.spring.mapper.MapperScannerConfigurerp:basePackagecom.example.mpdemo1.mapperp:sqlSessionFactoryBeanNamesqlSessionFactory//beans测试Mapper方法
import com.example.mpdemo1.pojo.Student;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;RunWith(SpringJUnit4ClassRunner.class)
ContextConfiguration(locations classpath:applicationContext.xml)
public class MpTest {Autowiredprivate StudentMapper studentMapper;Testpublic void testFindAll(){Student students studentMapper.selectById(3);System.out.println(students);}
}
测试结果 OK和数据库一模一样。
三、SpringBoot集成MyBatisPlus
接下来我们在SpringBoot项目中使用MyBatisPlus
创建SpringBoot项目添加MyBatisPlus起步依赖 dependenciesdependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependency!-- mybatis-plus --dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.0/version/dependency!-- lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency/dependencies
在SpringBoot配置文件中配置数据源
# 配置数据源
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql:///school?serverTimezoneUTCusername: rootpassword: 666666 创建实体类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;Data
NoArgsConstructor
AllArgsConstructor
public class Student {private Integer id;private String name;private String email;private String gender;private Integer age;
}创建Mapper接口。 同样使用MyBatisPlus时在编写Mapper接口后不需要手动编写CRUD方法并不需要在Mapper映射文件中手动编写每个方法对应的SQL语句。因此MyBatisPlus中只需要创建Mapper接口并继承BaseMapper此时该接口获得常用增删改查功能不需要自己手动编写Mapper配置文件
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mpdemo2.pojo.Student;public interface StudentMapper extends BaseMapperStudent {
}
在 SpringBoot启动类中添加 MapperScan 注解扫描Mapper文件夹
MapperScan(com.example.mpdemo2.mapper)
测试Mapper方法
SpringBootTest
class Mpdemo2ApplicationTests {Autowiredprivate StudentMapper studentMapper;Testpublic void testFind() {Student student studentMapper.selectById(1);System.out.println(student);}
}
看运行结果已经非常明了。