一, 从零搭建 springboot+mybatis 逆向工程
1, 新建项目
2,next 到这里要勾选这两项
第一次有点慢, 等一会儿就好
3, 在 pom.xml 中添加 mybatis-generator 插件
只把图片中的复制到项目中即可
- <?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.2.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <groupId>com.example</groupId>
- <artifactId>demo</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>demo</name>
- <description>Demo project for Spring Boot</description>
- <properties>
- <java.version>1.8</java.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mybatis.spring.boot</groupId>
- <artifactId>mybatis-spring-boot-starter</artifactId>
- <version>2.1.1</version>
- </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>
- </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.3.7</version>
- <configuration>
- <verbose>true</verbose>
- <overwrite>true</overwrite>
- <configurationFile>
- src/main/resources/generatorConfig.xml
- </configurationFile>
- </configuration>
- <dependencies>
- <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
- <dependency>
- <groupId>org.mybatis.generator</groupId>
- <artifactId>mybatis-generator-core</artifactId>
- <version>1.3.7</version>
- </dependency>
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- <version>5.1.47</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
- </project>
4, 在 resources 创建下创建 generatorConfig.xml
注意这里的 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="MyBatis3">
- <commentGenerator>
- <!-- 是否去除自动生成的注释 true: 是 : false: 否 -->
- <property name="suppressAllComments" value="true" />
- </commentGenerator>
- <!-- 数据库连接的信息: 驱动类, 连接地址, 用户名, 密码 -->
- <jdbcConnection driverClass="com.mysql.jdbc.Driver"
- connectionURL="jdbc:mysql://127.0.0.1:3306/db_boot?characterEncoding=utf8"
- 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.example.pojo"
- targetProject=".\src\main\java">
- <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
- <property name="enableSubPackages" value="false" />
- <!-- 从数据库返回的值被清理前后的空格 -->
- <property name="trimStrings" value="true" />
- </javaModelGenerator>
- <!-- targetProject:mapper 映射文件生成的位置 -->
- <sqlMapGenerator targetPackage="com.example.mapper"
- targetProject=".\src\main\resources">
- <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
- <property name="enableSubPackages" value="false" />
- </sqlMapGenerator>
- <!-- targetPackage:mapper 接口生成的位置 -->
- <javaClientGenerator type="XMLMAPPER"
- targetPackage="com.example.mapper"
- targetProject=".\src\main\java">
- <!-- enableSubPackages: 是否让 schema 作为包的后缀 -->
- <property name="enableSubPackages" value="false" />
- </javaClientGenerator>
- <!-- 指定数据库表 -->
- <!-- <table schema=""tableName="tb_item"domainObjectName="Item"></table>
- domainObjectName 可以配置生成的 pojo 名字
- 如不需要 example 类添加下面四个属性
- enableCountByExample="false" enableDeleteByExample="false"
- enableSelectByExample="false" enableUpdateByExample="false"></table>-->
- <table schema="db_boot" tableName="t_user">
- <!-- 去掉表结构中的前缀 -->
- <domainObjectRenamingRule searchString="^T" replaceString="" />
- </table>
- </context>
- </generatorConfiguration>
5, 在这之前需要现有数据库和表
6, 使用 maven 的 mybatis-generator 插件
如果右边找到不到 maven 可以
7, 双击
8, 验证
成功生成
二, 一个简单的接口
上面逆向工程已经生成, 接下来简单是使用.
1, 在 application.properties 中添加基本配置
- # 配置端口号
- server.port=8080
- # 数据源
- spring.datasource.driverClassName=com.MySQL.jdbc.Driver
- spring.datasource.url=jdbc:MySQL://127.0.0.1:3306/db_boot?characterEncoding=utf8
- spring.datasource.username=root
- spring.datasource.password=root
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- # 配置. xml 文件路径
- mybatis.mapper-locations=classpath:com.example.mapper/*.xml
- # 配置模型路径
- mybatis.type-aliases-package=com.example.pojo
- # 开启 debug
- debug=true
- #com.mycompany.mavenspringboot.controller 日志 WARN 级别输出
- logging.level.com.mycompany.mavenspringboot.controller=WARN
- #com.mycompany.mavenspringboot.mapper sql 日志 DEBUG 级别输出
- logging.level.com.gaohan.stzb.dao=DEBUG
- #logging.file=./logs/logging.log
- logging.pattern.console=%d{
- yyyy/MM/dd-HH:mm:ss
- } [%thread] %-5level %logger- %msg%n
- logging.pattern.file=%d{
- yyyy/MM/dd-HH:mm
- } [%thread] %-5level %logger- %msg%n
2, 在 pom 中引入 MySQL 驱动和 druid 数据源
- <!--mysql 驱动 -->
- <dependency>
- <groupId>MySQL</groupId>
- <artifactId>MySQL-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <!--druid 数据源 -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid-spring-boot-starter</artifactId>
- <version>1.1.10</version>
- </dependency>
3, 创建 service 层接口
- package com.example.service;
- import com.example.pojo.User;
- public interface UserService {
- User selectByPrimaryKey(Integer id);
- }
4, 创建 service 实现类
- package com.example.service.impl;
- import com.example.mapper.UserMapper;
- import com.example.pojo.User;
- import com.example.service.UserService;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- @Service("userService")
- public class UserServiceImpl implements UserService {
- @Resource
- private UserMapper userMapper;
- @Override
- public User selectByPrimaryKey(Integer id) {
- return userMapper.selectByPrimaryKey(id);
- }
- }
注意: 要在 UserMaper 中加上 @Mapper 注解, 不然无法正确的注入
5, 创建 Controller 层
- package com.example.controller;
- import com.example.service.UserService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.Web.bind.annotation.RequestMapping;
- import org.springframework.Web.bind.annotation.RestController;
- @RestController
- @RequestMapping("/")
- public class UserController {
- @Autowired
- private UserService userService;
- @RequestMapping("index")
- public String index(){
- return userService.selectByPrimaryKey(1).toString();
- }
- }
6, 启动 DemoApplication
这里有个坑 (自己挖的坑自己也跳进去了, 哭辽),springboot 的启动类必须提高他的目录结构, 也就是启动类所在的目录要包含所有的类
7, 浏览器验证
为了方便看到效果, 为 user 类添加 tostring 方法
成功
来源: http://www.bubuko.com/infodetail-3366014.html