承接上文

注意:下面的文件路径需要自己修改!!!

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 处的方法来测试整个项目的

至此,后台完成