1、创建数据库
2、建表
admin
category
item
3、编写逆向工程
GeneratorApp.java
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GeneratorApp {
/** 生成mybatis资源 */
public static void main(String[] args) throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
System.out.println("逆向完成");
}
}
4、编写逆向工程配置文件
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">
<!-- JavaBean 实现 序列化 接口 -->
<plugin type="org.mybatis.generator.plugins.SerializablePlugin">
</plugin>
<!-- genenat entity时,生成toString -->
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<!-- 共用5处要修改 -->
<!--修改1: 数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:13306/suse"
userId="root"
password="root">
</jdbcConnection>
<!-- 数据库是8.0+时,1,修改pom.xml 加载mysql8的驱动 2,使用下面的jdbcConnection -->
<!--
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mall" userId="root"
password="root">
<property name="useUnicode" value="true" />
<property name="characterEncoding" value="utf-8" />
<property name="serverTimezone" value="GMT" />
<property name="nullCatalogMeansCurrent" value="true" />
</jdbcConnection>
-->
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL
和 NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--修改2: targetProject:生成PO类的位置 -->
<javaModelGenerator
targetPackage="com.tedu.webDome.pojo"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--修改3: targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator
targetPackage="com.tedu.webDome.mapper"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- 修改4: targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.tedu.webDome.mapper"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--修改5: 指定数据库表 -->
<table tableName="admin" />
<table tableName="category" />
<table tableName="item" />
<table tableName="user" />
</context>
</generatorConfiguration>
1、创建一个Maven工程
将逆向工程生成的com文件复制 覆盖 项目的com文件
2、添加依赖
pom.xml文件的 标签对中加入依赖
<!-- Spring Boot依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<!-- mysql依赖。有的mysql要添加version -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
编写application.yml文件
src/main/resources目录下
application.yml
server:
port: 1314
spring:
datasource:
# 有的mysql如5.0 下面必须改成com.mysql.jdbc.Driver
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:13306/mall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
username: root
password: 'root'
mybatis:
mapperLocations: classpath:com.tedu.webDemo.mapper/*.xml
logging:
path: ./logs
level:
com.tedu.webDemo.mapper: debug
3、编写主程序:启动Spring Boot应用
package com.tedu.webDemo;
/**
* @SpringBootApplication 标注一个主程序类,说明这是一个Spring Boot应用。
* @MapperScan 指定
*/
@SpringBootApplication
@MapperScan("com.tedu.webDome.mapper")
public class WebDemoApplication {
public static void main(String[] args) {
// 启动Sping应用
SpringApplication.run(WebDemoApplication.class, args);
}
}
4、编写Controller
创建包com.tedu.webDemo.controller
创建类StudentContorller
package com.tedu.webDemo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.tedu.webDome.mapper.StudentMapper;
import com.tedu.webDome.pojo.Student;
/**
* @RestController 标识当前类是一个控制器servlet。接收浏览器请求,返回数据给浏览器。
* @MapperScan 告诉mybatis框架,接口在哪个包里,生成实现类(动态代理)。
*/
@RestController
@MapperScan("/com.tedu.webDome.mapper")
public class StudentContorller {
// 操作数据库用StudentMapper接口
// @Autowired 用来给指定的字段或方法注入所需的外部资源。跟框架要一个对象。
@Autowired
StudentMapper studentMapper;
// 通过设置的端口 http://localhost:8080/selectAll 可访问该方法
@RequestMapping("/selectAll")
public List<Student> selectAll(){
// 查询数据库中的所有数据
return studentMapper.selectByExample(null);
}
}
5、执行子程序
6、简化部署
pom.xml文件
<!-- 这个插件,可以将应用打包成一个可执行的jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>