springboot整合mybatis增删改查(三):mybatis逆向工程
程序员文章站
2022-06-23 09:38:19
上一篇已经把项目基本框架完善,接下来就是利用Mybatis Generator逆向工程进行mybatis的整合。 我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够的,下面我们要完善相关依赖 首先建立test1数据库,创建一个简单的user表 DROP TABLE ......
上一篇已经把项目基本框架完善,接下来就是利用mybatis generator逆向工程进行mybatis的整合。
我们在创建项目开始的时候已经勾选web,mybatis,sql等,但是这些依赖还是不够的,下面我们要完善相关依赖
首先建立test1数据库,创建一个简单的user表
drop table if exists `user`; create table `user` ( `id` int(10) not null auto_increment, `username` varchar(255) default null comment '用户名', `age` varchar(255) default null comment '年龄', `city` varchar(255) default null comment '城市', primary key (`id`) ) engine=innodb auto_increment=31 default charset=utf8; insert into `user` values ('1', '张三', '22', '上海'); insert into `user` values ('2', '李四', '25', '阜阳');
完善pom.xml
添加druid数据库连接池依赖
<dependency> <groupid>com.alibaba</groupid> <artifactid>druid-spring-boot-starter</artifactid> <version>1.1.10</version> </dependency> <!--mybatis逆向工程--> <dependency> <groupid>org.mybatis.generator</groupid> <artifactid>mybatis-generator-core</artifactid> <version>1.3.6</version> </dependency>
添加逆向工程插件
<plugin> <groupid>org.mybatis.generator</groupid> <artifactid>mybatis-generator-maven-plugin</artifactid> <version>1.3.2</version> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin>
下面就是对application.properties的配置了
application.properties
#服务器 server.port=8080 server.servlet.context-path=/ #热部署 spring.devtools.remote.restart.enabled=true spring.devtools.restart.additional-paths=springboot-mybatis/src/main ## 数据库连接配置 spring.datasource.type=com.alibaba.druid.pool.druiddatasource spring.datasource.driver-class-name=com.mysql.jdbc.driver spring.datasource.url=jdbc:mysql://localhost:3306/test1?characterencoding=utf-8 spring.datasource.username=root spring.datasource.password=1234 #默认编码配置 spring.http.encoding.charset=utf-8 spring.http.encoding.force=true spring.http.encoding.enabled=true server.tomcat.uri-encoding=utf-8 ## mybatis相关配置 mybatis.type-aliases-package=com.jiangfeixiang.springbootswgger2api.entity mybatis.mapper-locations=mapper/*.xml
上面这些都很简单,这里不做过多解释。
下面是最重要的一个配置generatorconfig.xml用于生成对应的实体类,mapper.xml映射以及mapper接口
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> <!--指定数据库的jdbc驱动jar包的位置--> <classpathentry location="d:\\mavenrepository\\mavenrepository\\repo\\mysql\\mysql-connector-java\\5.1.6\\mysql-connector-java-5.1.6.jar"/> <context id="db2tables" targetruntime="mybatis3"> <!--是否在代码中显示注释--> <commentgenerator> <property name="suppressdate" value="true"/> <property name="suppressallcomments" value="true"/> </commentgenerator> <!--数据库链接地址账号密码--> <jdbcconnection driverclass="com.mysql.jdbc.driver" connectionurl="jdbc:mysql://localhost:3306/test1?characterencoding=utf-8" userid="root" password="1234"> </jdbcconnection> <!--生成pojo类存放位置--> <javamodelgenerator targetpackage="com.example.springbootmybatis.entity" targetproject="src/main/java"> <property name="enablesubpackages" value="true"/> <property name="trimstrings" value="true"/> </javamodelgenerator> <!--生成xml映射文件存放位置--> <sqlmapgenerator targetpackage="mapper" targetproject="src/main/resources"> <property name="enablesubpackages" value="true"/> </sqlmapgenerator> <!--生成mapper类存放位置--> <javaclientgenerator type="xmlmapper" targetpackage="com.example.springbootmybatis.mapper" targetproject="src/main/java"> <property name="enablesubpackages" value="true"/> </javaclientgenerator> <!--生成对应表及类名--> <table tablename="user" domainobjectname="user" enablecountbyexample="true" enableupdatebyexample="true" enabledeletebyexample="true" enableselectbyexample="true" selectbyexamplequeryid="true"> </table> </context> </generatorconfiguration>
相关说明已经在注释里写出
- 主要几个配置说明
- 指定数据库的jdbc驱动jar包的位置
<classpathentry location="d:\\mavenrepository\\mavenrepository\\repo\\mysql\\mysql-connector-java\\5.1.6\\mysql-connector-java-5.1.6.jar"/>
这个是您本地mysql jar的位置可以参考如下选择
- targetpackage:是你工程中对应包的路径
targetproject:是这个包在java还是在resources目录下,要是java目录下就是src/main/java,resources目录下就是src/main/resources - tablename:是数据库中表的名字;
domainobjectname:是对应实体类的名字
上面完成之后接下来就是利用插件一键生成对应数据了,参考下图:
成功之后可以看到entity包,mapper包等生成对应的数据了