spring集成mybatis-plus
2024-10-06 11:31:33
一、mybatis-plus
使用mybatis-plus可以轻松实现通用crue、通用service,不用再在xml、dao、service里写增删改查的代码(需要写特殊方法的时候可以按原先的来),通用的crue加入了多达17种方法
配合代码生成,只要建好表、实体类,1秒钟就可以生成各个层的类
二、官方例子
三、简单配置方法
1、pom.xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>仓库最高版本号</version>
</dependency>
2、spring-context-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <!-- 加载配置属性文件 -->
<context:property-placeholder location="classpath:library.properties" ignore-unresolvable="true" /> <!-- 配置SessionFactory -->
<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:org/sy/library/mapper/xml/**/*.xml"/>
<property name="typeAliasesPackage" value="org.sy.library.entity.*"/>
<property name="configLocation" value="classpath:conf/mybatis/mybatis-config.xml"/>
<property name="globalConfig" ref="globalConfig"/>
<property name="plugins">
<array>
<!-- 分页插件配置 -->
<bean id="paginationInterceptor" class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"></bean>
</array>
</property>
</bean> <!-- 配置mybatisConfig -->
<bean id="mybatisConfig" class="com.baomidou.mybatisplus.MybatisConfiguration">
<property name="mapUnderscoreToCamelCase" value="true"/>
</bean> <!-- 定义 MP 全局策略 -->
<bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
<!-- 全局ID类型: 0, "数据库ID自增", 1, "用户输入ID", 2, "全局唯一ID", 3, "全局唯一ID"-->
<property name="idType" value="2"/>
</bean> <!-- MyBatis 动态扫描 -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="org.sy.library.mapper"/>
</bean> <!-- 配置数据源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
.............
</bean>
</beans>
3、mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 下划线转驼峰 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>
三、代码生成
package org.sy.library.common.auto; import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; /**
* 实体生成器
*/
public class CustomGenerator { public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); //全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir("C://utopia-company//开发库//utopia//library//library-api//src//main//java");
gc.setFileOverride(false);
gc.setEnableCache(false);
gc.setActiveRecord(false);
gc.setAuthor("sy");
mpg.setGlobalConfig(gc); //数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setTypeConvert(new MySqlTypeConvert());
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("xxxxxxx");
dsc.setUrl("jdbc:mysql://xxx.xxx.xxx.xxx:3306/utopia?useUnicode=true&characterEncoding=utf-8&useSSL=false");
mpg.setDataSource(dsc); //策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setInclude(new String[] { "library_user_book" }); // 需要生成的表
strategy.setTablePrefix("library_");// 此处可以修改为您的表前缀
strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
mpg.setStrategy(strategy); //包配置
PackageConfig pc = new PackageConfig();
pc.setParent("org.sy.library");
//pc.setModuleName("test");
mpg.setPackageInfo(pc); //目录配置
TemplateConfig tc = new TemplateConfig();
tc.setController(null);
mpg.setTemplate(tc); //执行生成
mpg.execute();
}
}
最新文章
- [linux] is not in the sudoers file
- Java Maps的9个常见问题
- ActiveMQ;RabbitMQ;ZeroMQ
- 【云计算】K8S DaemonSet 每个node上都运行一个pod
- Maven概要[转]
- (剑指Offer)面试题14:调整数组顺序使奇数位于偶数前面
- ASP.NET网站中设置404自定义错误页面
- Scala-函数
- JavaScript中的原型继承原理
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(八)代码优化整理小记及个人吐槽
- img如果没有图片显示默认图片效果
- 【WebGL】《WebGL编程指南》读书笔记——第4章
- Oracle12c_安装2——安装篇
- react 实用的性能优化方式
- Linux新手随手笔记1.3
- [Swift]LeetCode763. 划分字母区间 | Partition Labels
- BZOJ2616PERIODNI
- [LeetCode] Cheapest Flights Within K Stops K次转机内的最便宜的航班
- Bootstrap之javascript组件
- 如何在Qt资源文件中包含和释放exe等各种类型文件?
热门文章
- 导入spark2.3.3源码至intellij idea
- Ubuntu18设置mysql的sql_mode
- Luogu P5490 扫描线
- @RequestBody 注意的问题
- count(*) count(1) count(column)的区别
- 学习js都学习什么?
- CSS3 translate导致字体模糊
- python入门(三)列表、元组、range()、字典
- JavaScript String 字符串方法
- Servlet,过滤器和监听器的配置和使用