介紹一下兩個(gè)知識(shí)點(diǎn):
1.逆向工程:因?yàn)閿?shù)據(jù)庫的類與xml文件與dao類實(shí)現(xiàn)都比較麻煩,當(dāng)數(shù)據(jù)庫的表較多的時(shí)候不可能一個(gè)一個(gè)實(shí)現(xiàn)旁仿,而且這個(gè)重復(fù)性操作比較多,因此mybaits提供了逆向工程幫忙生成這些文件
2.通用mapper:用于單表操作比較好用,因?yàn)樽詭Я艘恍┖唵蔚脑鰟h查改單表操作敌呈,可以不需要通過寫sql語句就可以實(shí)現(xiàn)
廢話不多說袍辞,show code
新建springboot項(xiàng)目鞋仍,在resources新建mybatis-generator文件夾,新建兩個(gè)兩個(gè)文件:init.properties與tk-generatorConfig.xml革屠,如圖
image.png
init.properties代碼:
projectModel=src/main/java
projectMapper=src/main/java
resources=src/main/resources
jdbc_driver =com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc_url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=xxx
jdbc_user=config
jdbc_password=123456
user凿试,password排宰,url需要填寫自己的sqlserver信息
tk-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ù)庫信息準(zhǔn)備-->
<properties resource="mybatis-generator/init.properties"/>
<context id="Oracle" targetRuntime="MyBatis3" defaultModelType="flat">
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper" />
<!--caseSensitive默認(rèn)false那婉,當(dāng)數(shù)據(jù)庫表名區(qū)分大小寫時(shí)板甘,可以將該屬性設(shè)置為true-->
<property name="caseSensitive" value="true"/>
</plugin>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<!-- 阻止生成自動(dòng)注釋 -->
<commentGenerator>
<property name="javaFileEncoding" value="UTF-8"/>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--數(shù)據(jù)庫鏈接地址賬號密碼-->
<jdbcConnection driverClass="${jdbc_driver}"
connectionURL="${jdbc_url}"
userId="${jdbc_user}"
password="${jdbc_password}" />
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--生成Model類存放位置-->
<javaModelGenerator targetPackage="com.example.test.demotest.model"
targetProject="${projectModel}">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--生成映射文件存放位置-->
<sqlMapGenerator targetPackage="database.mapping.config"
targetProject="${resources}">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!--生成Dao類存放位置-->
<!-- 客戶端代碼,生成易于使用的針對Model對象和XML配置文件 的代碼
type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper對象
type="XMLMAPPER",生成SQLMap XML文件和獨(dú)立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.test.demotest.mapper"
targetProject="${projectMapper}">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--xxx是數(shù)據(jù)庫的表名详炬,yyy是生成的java的類的名字-->
<table tableName="xxx" domainObjectName="yyy"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
接著在pom.xml增加依賴與插件,要增加的依賴
<!-- 數(shù)據(jù)庫連接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.1.3.jre8-preview</version>
</dependency>
<!--mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
接著在plugins標(biāo)簽里增加以下代碼,用于插件
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.6</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<phase>deploy</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- generator 工具配置文件的位置 -->
<configurationFile>src/main/resources/mybatis-generator/tk-generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!--<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId>
<version>1.0</version> </dependency> -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>7.1.3.jre8-preview</version>
</dependency>
<!--<dependency> -->
<!--<groupId>tk.mybatis</groupId> -->
<!--<artifactId>mapper</artifactId> -->
<!--<version>3.4.6</version> -->
<!--</dependency> -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.4</version>
</dependency>
</dependencies>
</plugin>
運(yùn)行圖中的插件
image.png
就可以了盐类,當(dāng)然這個(gè)是使用插件完成的,有時(shí)候逆向工程呛谜,直接生成代碼復(fù)制粘貼的效果會(huì)更好在跳,因此可以使用這個(gè)來生成逆向工程的代碼,再復(fù)制粘貼到需要的文件中
github地址:https://github.com/qiubochen/mybatis-generator
最后要使用通用mapper需要掃描到你的mapper類隐岛,否則無法注入猫妙,可以在啟動(dòng)類上加@MapperScan("com.example.test.demotest.mapper")
image.png