您现在的位置是:首页 > java技术交流java技术交流
使用maven mybatis generator自动生成mybatis实体以及查询代码 mapper代码详细教程
上善若水2020-06-10 18:12:57【java技术交流】 3715人已围观
简介mybatis-generator-maven-plugin是mybatis 官方发布的maven插件,能够自动生成代码,在项目开发前期设计完数据库库后,需要大量编写实体类,使用maven插件省时省力
mybatis-generator-maven-plugin是mybatis 官方发布的maven插件,能够自动生成代码,在项目开发前期设计完数据库库后,需要大量编写实体类,使用maven插件省时省力,快速高效,来看看怎么自动生成代码.
码云参考代码下载地址:下载
在实验过多个idea第三方插件后尝试无果,最终还是选择官方maven插件,成功插入数据.mabatis官方文档地址能不能打开看缘分,来看看详细的使用教程吧.
1. 在pom文件中引入pom插件,引入dependency和plugin
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.springboot</groupId>
<artifactId>blog</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>blog</name>
<description>Spring Boot blog</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--mysql数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
2. 编写配置文件generatorConfig.xml
在resources目录下新建配置文件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>
<context id="testTables" targetRuntime="MyBatis3Simple">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1/springboot?serverTimezone=UTC&nullCatalogMeansCurrent=true" userId="root"
password="root">
</jdbcConnection>
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.springboot.blog.entity"
targetProject="./src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置xml -->
<sqlMapGenerator targetPackage="mapping"
targetProject="./src/main/resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.springboot.blog.mapper"
targetProject="./src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table schema="springboot" tableName="article"></table>
<table schema="springboot" tableName="article_tag"></table>
<table schema="springboot" tableName="blogroll"></table>
<table schema="springboot" tableName="category"></table>
<table schema="springboot" tableName="comment"></table>
<table schema="springboot" tableName="nav"></table>
<table schema="springboot" tableName="tag"></table>
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
3. 执行maven命令生成代码
执行mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate
生成代码,或者直接点击生成代码
4. 执行成功结果
等待执行成功后,会生成相应的文件,包括实体,mapper以及xml配置,
5.测试生成的代码是否可用.
以文章为例,我们再数据库中手动插入一条测试数据.
然后找到mapper/ArticleMapper 在类上添加@Mapper
注解,自动生成的代码不带注解.
6.编写测试articleservice以及impl实现类是否可用.
public interface ArticleService {
int deleteByPrimaryKey(Integer id);
int insert(Article record);
Article selectByPrimaryKey(Integer id);
List<Article> selectAll();
int updateByPrimaryKey(Article record);
}
@Service
public class ArticleServiceImpl implements ArticleService {
@Resource//@Autowired或者使用
private ArticleMapper mapper;
@Override
public int deleteByPrimaryKey(Integer id) {
return 0;
}
@Override
public int insert(Article record) {
return 0;
}
@Override
public Article selectByPrimaryKey(Integer id) {
return mapper.selectByPrimaryKey(id);
}
@Override
public List<Article> selectAll() {
return null;
}
@Override
public int updateByPrimaryKey(Article record) {
return 0;
}
}
7.编写测试articlecontroller.
@RestController
@RequestMapping("article")
public class ArticleController {
@Autowired
private ArticleService service;
/**
* 通过主键查询单条数据
*
* @param id 主键
* @return 单条数据
*/
@GetMapping("selectOne")
public Article selectOne(Integer id) {
return this.service.selectByPrimaryKey(id);
}
}
Tags: springboot博客
很赞哦! (12)
相关文章
随机图文
-
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
笑的肚子痛的15个诙谐段子:妙趣横生,一个比一个搞笑!
一、老爸喜欢钓鱼,所以钓竿很多!一个星期前,大伯来了,说借钓竿去钓鱼,刚好爸爸不在,我忙着打游戏,就说,大伯,等我找到给你送去哈。一个星期过去了,我突然想起了钓竿还没送过去,拿着钓竿就去了大伯家。大伯看着我手里的钓竿说,你让那些鱼多活了一个星期!二、狙击手小李,在狙击比赛中获得一等奖,回来以后,好友问他:“哇,你真厉害,趴在雪地里两个小时,一动都不动,你这定力怎么练出来的?”三、小时候眼睛 -
php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。 -
武汉赏樱花
每年的3-4月,春暖花开,到处都是花海!其中樱花最是浪漫,“最美不过樱花雨,缤纷浪漫逐人舞。”!谁说赏樱花只能去日本?武汉大学的粉红樱花海,等你来欣赏,武汉被称为最美大学之一,拥有浓厚的学府底蕴,赏花