springboot+mysql+mybatis逆向工程
最近一直再做hibernate相关的工作,想捡起遗忘了一年的mybatis,就在自己的demo项目中引入了一下 ,记录下过程,这里只生成 mapper和model 和mapper.xml
一、引入依赖
要用mybatis 首先需要引入相应的依赖,将它放在pom文件 <dependencies> </dependencies> 标签内。
<!--MyBatis整合SpringBoot框架的起步依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.1</version> </dependency>
本文所用mysql版本为 5.7.38
如果没有引入mysql依赖,要引入依赖,同样放在 <dependencies> </dependencies> 标签内。
<!-- mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.21</version>
</dependency>
二、新建GeneratorMapper.xml 文件在根目录下
三、修改文件内容
GeneratorMapper.xml 文件内容如下,其中需要修改的内容是
1.数据库的JDBC驱动包所在位置路径。
2.数据库驱动类、连接地址、用户名、密码 。 注意这里重点说一下驱动!!!
mysql-connection-java 5以后的版本中(不包括5),使用的是com.mysql.cj.jdbc.Driver;
mysql-connection-java 5及以前的版本中(包括5),使用的是com.mysql.jdbc.Driver; 这里我是5,所以文档里写的 com.mysql.jdbc.Driver,版本不一样的请自行修改哦。
3.生成model类 :指定model类的包名、生成model类的位置(此处使用的是绝对路径~)改成你自己的(没有model包和mapper包的自己new一个。。。)。
4.mapper映射文件生成的位置,文件生成位置(此处使用的是绝对路径~)改成你自己的。
5.生成MyBatis的Mapper接口类文件(此处使用的是绝对路径~)改成你自己的。
6.tableName 这里没有固定某一个表,用了%,就生成了所有的表哦。
<?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> <!--指定连接数据库的JDBC驱动包所在位置,指定到你本机的完成路径--> <classPathEntry location="F:\mysql-connector-java-5.1.49\mysql-connector-java-5.1.49.jar"/> <!--配置table表信息内容体,targetRuntime指定采用MyBatis3的版本--> <context id="tables" targetRuntime="MyBatis3"> <!--抑制生成注释,由于生成的注释都是英文的,可以不让它生成--> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/white_jotter?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true" userId="root" password="admin"> </jdbcConnection> <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成model类,实体Bean targetPackage 指定model类的包名 targetProject:生成model类的位置 --> <javaModelGenerator targetPackage="com.evan.wj.model" targetProject="src/main/java"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> <!-- 从数据库返回的值被清理前后的空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 实体映射文件 targetProject:mapper映射文件生成的位置 --> <sqlMapGenerator targetPackage="mapper" targetProject="G:\lxlProject\workspace\wj\src\main\resources\"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </sqlMapGenerator> <!--生成MyBatis的Mapper接口类文件,DAO接口 targetPackage指定Mapper接口类的名 targetPackage:指定生成的Mapper接口放的位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.evan.wj.mapper" targetProject="G:\lxlProject\workspace\wj\src\main\java\"> <!-- enableSubPackages:是否让schema作为包的后缀 --> <property name="enableSubPackages" value="false"/> </javaClientGenerator> <!--生成全部表tableName设为%--> <table tableName="%"> <generatedKey column="id" sqlStatement="MySql" identity="true"/> </table> <!-- <!– 数据库表名及对应的Java模型类名 –>--> <!-- <table tableName="white_jotter" domainObjectName="book"--> <!-- enableCountByExample="false"--> <!-- enableUpdateByExample="false"--> <!-- enableDeleteByExample="false"--> <!-- enableSelectByExample="false"--> <!-- selectByExampleQueryId="false"/>--> <!-- <table schema="" tableName="admin"></table>--> <!-- <table schema="" tableName="product_info"></table>--> <!-- <table schema="" tableName="product_type"></table>--> <!-- <table schema="" tableName="users"></table>--> </context> </generatorConfiguration>
OK,现在基本要改的都改完了,就开始生成文件喽。
点击右侧maven下的Plugins 下的mybatis-generate:generate 然后执行。
成功喽~~~
四、问题点
啥? 你说你没成功?emmmm mmmm mmmmmmmmmm
那就再看看,奥,还有一个地方- 搜索 GeneratorMapper.xml文件中:指定连接数据库的JDBC驱动包所在位置,指定到你本机的完成路径。
下载一个mysql驱动,
下载流程 选择 Archives标签
先选择Operating System ,选择 Platform Independent ,然后再根据你的mysql 驱动和mysql版本选择合适的 驱动版本号。
我依赖是5.1的,下载后找一个地方解压,复制路径+jar的名称,把GeneratorMapper.xml 中 classPathEntry location 路径替换一下试试哦。
啥?你说你不知道在哪里下载驱动? ===> 鸡汤来喽~ mysql驱动包下载地址 https://downloads.mysql.com/archives/c-j/
生成后的文件展示来喽~
mapper接口==dao
mapper.xml
model = entity
参考文档:
https://blog.csdn.net/m0_67391377/article/details/124777417
https://blog.csdn.net/qq_19331985/article/details/104291304
https://www.cnblogs.com/BKYhailong/p/15464846.html