Springboot通用mapper和mybatis-generator代碼示例
實(shí)現(xiàn)功能:根據(jù)數(shù)據(jù)庫中的表,自動生成model、dao和對應(yīng)的xml文件。xml中實(shí)現(xiàn)通用mapper中CURD功能
1、引入依賴
<properties>
<mybatis.generator.version>1.3.7</mybatis.generator.version>
<tk.mybatis.version>4.1.5</tk.mybatis.version>
</properties>
<dependencies>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!--通用mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${tk.mybatis.version}</version>
</dependency>
<!--mybatis-generator-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>${mybatis.generator.version}</version>
</dependency>
<!--mysql數(shù)據(jù)庫-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--druid數(shù)據(jù)源-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependencies>
<build>
<plugins>
<!--配置Maven中 mybatis-generator 插件-->
<!--加入tk.mybatis的依賴-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>${mybatis.generator.version}</version>
<configuration>
<!--可移動-->
<verbose>true</verbose>
<!--可覆蓋-->
<overwrite>true</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${tk.mybatis.version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
2、配置通用mapper
方式1:配置要掃描的mapper
@SpringBootApplication
@MapperScan(basePackages = "com.liang.mapper")
public class MyappApplication {
public static void main(String[] args) {
SpringApplication.run(MyappApplication.class, args);
}
}
方式2:掃描的mapper
@Configuration
public class MybatisConfig {
@Bean(name = "mapperScannerConfigurer")
public MapperScannerConfigurer MapperScannerConfigurer1() {
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
mapperScannerConfigurer.setBasePackage("com.liang.mapper");
Properties properties = new Properties();
properties.setProperty("notEmpty", "false");
properties.setProperty("IDENTITY", "MYSQL");
properties.setProperty("mappers", Mapper.class.getName());
mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
mapperScannerConfigurer.setProperties(properties);
return mapperScannerConfigurer;
}
}
3、application.yaml中配置mybatis
#Mybatis(注意不是 mybatis.config-location 這個(gè)配置)
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.liang.pojo
configuration-properties: {
notEmpty: false,
IDENTITY: 'MYSQL',
mappers: "tk.mybatis.mapper.common.Mapper"
}
4、添加generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 數(shù)據(jù)庫驅(qū)動-->
<classPathEntry location="E:\ideaMaven\MavenRepository\mysql\mysql-connector-java\8.0.22\mysql-connector-java-8.0.22.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3Simple">
<!--beginningDelimiter和endingDelimiter:指明數(shù)據(jù)庫的用于標(biāo)記數(shù)據(jù)庫對象名的符號,比如ORACLE就是雙引號,MYSQL默認(rèn)是`反引號; -->
<property name="beginningDelimiter" value="`"></property>
<property name="endingDelimiter" value="`"></property>
<!-- 生成的Java文件的編碼 -->
<property name="javaFileEncoding" value="utf-8"/>
<!--添加Tk-mapper插件-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin" >
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
</plugin>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/temp_db?serverTimezone=Asia/Shanghai&characterEncoding=utf-8&useUnicode=true&useSSL=false"
userId="root"
password="123456">
</jdbcConnection>
<!-- java類型處理器 用于處理DB中的類型到Java中的類型,默認(rèn)使用JavaTypeResolverDefaultImpl; 注意一點(diǎn),默認(rèn)會先嘗試使用Integer,Long,Short等來對應(yīng)DECIMAL和 NUMERIC數(shù)據(jù)類型; -->
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--生成entity類存放位置-->
<javaModelGenerator targetPackage="com.liang.pojo" targetProject="src/main/java">
<property name="enableSubPackages" value="false" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成映射文件存放位置 -->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--生成Dao類存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.liang.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--要生成的Table,注意不同的數(shù)據(jù)庫,sqlStatement-->
<!--sqlStatement 不同的數(shù)據(jù)庫配置 http://mybatis.org/generator/configreference/generatedKey.html-->
<table domainObjectName="School2" tableName="t_school">
<!--<generatedKey column="id" sqlStatement="MySql" identity="true" />-->
<generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID() AS id" identity="true" />
</table>
</context>
</generatorConfiguration>
5、完成

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot+mybatis-plus+oracle實(shí)現(xiàn)邏輯刪除
最近在做一個(gè)前后端分離的小項(xiàng)目,需要刪除用戶表的用戶,本文主要實(shí)現(xiàn)了springboot+mybatis-plus+oracle邏輯刪除,具有一定的參考價(jià)值,感興趣的可以了解一下2021-08-08
詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例
這篇文章主要介紹了詳解SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12
json解析時(shí)遇到英文雙引號報(bào)錯的解決方法
下面小編就為大家分享一篇json解析時(shí)遇到英文雙引號報(bào)錯的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
Java中System.setProperty()用法與實(shí)際應(yīng)用場景
System.setProperty是Java中用于設(shè)置系統(tǒng)屬性的方法,它允許我們在運(yùn)行時(shí)為Java虛擬機(jī)(JVM)或應(yīng)用程序設(shè)置一些全局的系統(tǒng)屬性,下面這篇文章主要給大家介紹了關(guān)于Java中System.setProperty()用法與實(shí)際應(yīng)用場景的相關(guān)資料,需要的朋友可以參考下2024-04-04
Spring為singleton?bean注入prototype?bean
這篇文章主要介紹了Spring為singleton?bean注入prototype?bean,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
Java使用線程池實(shí)現(xiàn)socket編程的方法詳解
這篇文章主要為大家詳細(xì)介紹了Java使用線程池實(shí)現(xiàn)socket編程的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03

