介绍一下两个知识点:
1.逆向工程:因为数据库的类与xml文件与dao类实现都比较麻烦,当数据库的表较多的时候不可能一个一个实现,而且这个重复性操作比较多,因此mybaits提供了逆向工程帮忙生成这些文件
2.通用mapper:用于单表操作比较好用,因为自带了一些简单的增删查改单表操作,可以不需要通过写sql语句就可以实现
废话不多说,show code
新建springboot项目,在resources新建mybatis-generator文件夹,新建两个两个文件:init.properties与tk-generatorConfig.xml,如图
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>
<!--加载配置文件,为下面读取数据库信息准备-->
<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默认false,当数据库表名区分大小写时,可以将该属性设置为true-->
<property name="caseSensitive" value="true"/>
</plugin>
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<!-- 阻止生成自动注释 -->
<commentGenerator>
<property name="javaFileEncoding" value="UTF-8"/>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接地址账号密码-->
<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文件和独立的Mapper接口
-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.test.demotest.mapper"
targetProject="${projectMapper}">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--xxx是数据库的表名,yyy是生成的java的类的名字-->
<table tableName="xxx" domainObjectName="yyy"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
接着在pom.xml增加依赖与插件,要增加的依赖
<!-- 数据库连接池 -->
<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标签里增加以下代码,用于插件
<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>
运行图中的插件
就可以了,当然这个是使用插件完成的,有时候逆向工程,直接生成代码复制粘贴的效果会更好,因此可以使用这个来生成逆向工程的代码,再复制粘贴到需要的文件中
github地址:https://github.com/qiubochen/mybatis-generator
最后要使用通用mapper需要扫描到你的mapper类,否则无法注入,可以在启动类上加@MapperScan("com.example.test.demotest.mapper")