承接上文
注意:下面的文件路径需要自己修改!!!
7.创建数据库user
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL COMMENT '用户名',
`password` varchar(255) DEFAULT NULL COMMENT '密码',
`create_by` int(11) DEFAULT NULL COMMENT '创建人',
`create_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` int(11) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`remark` varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
8.引用mybatis逆向工程
mybatis 逆向工程可以生成基本的mapper,dao,entity
注意:修改配置文件中的路径
package com.example.demo.utils;
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;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class GeneratorSqlmap {
public void generator() throws Exception{
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//指定 逆向工程配置文件 路径从项目名开始
File configFile = new File(".\\src\\main\\resources\\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);
//如果在没有生成代码,则请查看:warnings
}
public static void main(String[] args) throws Exception {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
<?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">
<!-- mybatis 与swagger 生成的实体类注释-->
<!--<plugin type="mybatis.generator.plugins.GeneratorSwagger2Doc">-->
<!--<property name="apiModelAnnotationPackage" value="io.swagger.annotations.ApiModel"/>-->
<!--<property name="apiModelPropertyAnnotationPackage" value="io.swagger.annotations.ApiModelProperty"/>-->
<!--</plugin>-->
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--mysql配置-->
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/daydayfund?serverTimezone=GMT&tinyInt1isBit=false" userId="root"
password="123456">
<!-- https://www.cnblogs.com/xqz0618/archive/2019/02/15/MybatisGeneratorError.html-->
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!--oracle配置-->
<!--<jdbcConnection driverClass="oracle.jdbc.OracleDriver" connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" -->
<!--userId="yycg" -->
<!--password="yycg"> -->
<!--</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.zong.fund.entity"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject=".\src\main\resources">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- targetPackage:mapper接口生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.zong.fund.dao"
targetProject=".\src\main\java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- 指定数据库表 domainObjectName="实体类名" -->
<table tableName="user" selectByExampleQueryId="false"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false" >
<!--<columnOverride column="img" javaType="java.lang.String" jdbcType="VARCHAR" />-->
<!--<columnOverride column="content" javaType="java.lang.String" jdbcType="VARCHAR" />-->
<!--<columnOverride column="appeal_pic" javaType="java.lang.String" jdbcType="VARCHAR" />-->
<!--<columnOverride column="seller_delivery" javaType="java.lang.String" jdbcType="VARCHAR" />-->
<!--<columnOverride column="delivery" javaType="java.lang.String" jdbcType="VARCHAR" />-->
</table>
</context>
</generatorConfiguration>
<!-- 逆向工程 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
9.在mapper,dao文件中添加一个方法:selectByEntity
<select id="selectByEntity" parameterType="com.zong.fund.entity.User" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from user
where 1=1
<if test="name != null">
AND name = #{name,jdbcType=VARCHAR}
</if>
<if test="password != null">
AND password = #{password,jdbcType=VARCHAR}
</if>
<if test="createBy != null">
AND create_by = #{createBy,jdbcType=INTEGER}
</if>
<if test="createTime != null">
AND create_time = #{createTime,jdbcType=TIMESTAMP}
</if>
<if test="updateBy != null">
AND update_by = #{updateBy,jdbcType=INTEGER}
</if>
<if test="updateTime != null">
AND update_time = #{updateTime,jdbcType=TIMESTAMP}
</if>
<if test="remark != null">
AND remark = #{remark,jdbcType=VARCHAR}
</if>
</select>
List<User> selectByEntity(User record);
10.创建service,impl,controller 文件夹并创建对应的方法
这个码砖的事我就不说了
注意:在dao文件中添加@Mapper
11.配置文件:
#端口号
server.port=9090
#mybatis 扫描
mybatis.mapper-locations=classpath*:mapper/*.xml
#日志配置文件
logging.config=classpath:logging-config.xml
#数据库 spring.datasource.url = jdbc:mysql://localhost:3306/xxxx?serverTimezone=GMT%2B8 spring.datasource.username = root spring.datasource.password = xxxxx spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
注意: 如果想在控制台打印sql则在配置文件中添加:
logging.level.org.springframework.boot.autoconfigure: ERROR
如果配置文件是yml 则:
server:
port: 8080
spring:
datasource:
name:
url: jdbc:mysql://127.0.0.1:3306/es?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=UTC
username: root
password: root
mybatis:
mapper-locations: classpath*:mapper/*.xml
#日志配置文件
logging:
config: classpath:config/logging-config.xml
level:
org.springframework.boot.autoconfigure: ERROR
12.配置日志文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="E:\xxx\log"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<!--<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<!--<FileNamePattern>${LOG_HOME}/sk_erp.%d{yyyy-MM-dd}.log</FileNamePattern>-->
<FileNamePattern>${LOG_HOME}\sk_erp.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
<!--日志文件保留天数-->
<MaxHistory>30</MaxHistory>
<totalSizeCap>1GB</totalSizeCap>
<MaxFileSize>10MB</MaxFileSize>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="DEBUG"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>
<!-- 将sql打印出来-->
<logger name="com.xxx" level="DEBUG"/>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
14.spingboot 内置tomcat 直接启动即可
13.通过使用postMan等测试接口工具来测试controller 处的方法来测试整个项目的
至此,后台完成