spring-boot整合mybatis(web mysql logback配置)

摘要:
pom。Xml相关配置说明。配置文件看起来更昂贵。在创建一个spring-boot项目时,您可以添加三个选项:web、mysql和mybatis——手动添加的反向工程,用于根据数据库中的表生成实体类。dao接口和相应的映射器。xml文件--˃org。mybatis。generatormybatis generator saved plugin1.3.7true${basedir}/src/main/resources/generatorConfig。xml˂!

pom.xml相关的配置说明。

配置文件看着比价多,在创建spring-boot项目的时候,自需要添加web,mysql,mybatis三个选项即可

<?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 http://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.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.xiaoeyu</groupId>
    <artifactId>springboot2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot2</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
        <java.version>1.8</java.version>
    </properties>
    
    <dependencies>
        <!--web相关-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis相关-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <!--mysql相关-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--手动添加的,逆向工程,用于根据数据库中的表生成实体类,dao接口与对应的mapper.xml文件-->
            <plugin>
                <!--逆向工程:需要的jar包-->
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <overwrite>true</overwrite>
                    <!--如何生成的配置文件地址-->
                    <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                </configuration>
                <!--生成时与数据库连接需要的驱动-->
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.47</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

</project>

 逆向工程 :https://www.cnblogs.com/xiaoeyu/p/10402694.html  详细说明,用于生成与数据库中的表相关的类

创建spring-boot项目时 生成的test测试类说明

  生成的测试类名: 项目+ApplicationTests.java。运行该测试类有几个坑要填好

package com.xiaoeyu.springboot2;

import com.xiaoeyu.springboot2.dao.EmpMapper;
import com.xiaoeyu.springboot2.pojo.Emp;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


//spring-boot自动生成的测试类,与SSM中spring测试类用的包好像不同
@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot2ApplicationTests {

    //不用web,直接通过dao层的接口方法调用测试与数据库的连接是否畅通  EmpMapper为dao层的接口,@Autowired会把 根据Mapper.xml自动生成实现类,注入进来
    @Autowired
    private EmpMapper empMapper;
    
    @Test
    public void contextLoads() {
        //根据id查询,对象
        Emp emp = empMapper.selectByPrimaryKey(7369);
        //打印对应的一个信息,有数据,连接成功
        System.out.println(emp.getHiredate());
    }

}
  1. 启动类,Springboot2Application.java
    package com.xiaoeyu.springboot2;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    //扫描dao所在的包,在测试的时候,不然找不到要注入接口的实体类。
    //dao的实体类是根据dao中的接口与dao对应的mapper.xml由spring生成的。这里要指定dao层接口所在的路径,并在配置文件中指定mapper.xml的路径
    @MapperScan(value = "com.xiaoeyu.springboot2.dao")
    public class Springboot2Application {
        public static void main(String[] args) {
            SpringApplication.run(Springboot2Application.class, args);
        }
    }
  2. application.yml配置文件。指定对应的mapper.xml
    spring:
      datasource:
    #    mysql高版本驱动,为格林时区,+8到北京时区
        url: jdbc:mysql://localhost:3306/bcs?serverTimezone=GMT%2B8
        username: root
        driver-class-name: com.mysql.cj.jdbc.Driver
      profiles:
        active: dev
    
    server:
      port: 80
      servlet:
        context-path: /springboot
    mybatis:
    #  在测试类中,只用自动装配。被注入的类是由dao里面的接口与mapper.xml生成的。这里用来指定dao里面的接口对应的mapper.xml文件的位置
    #  不然在运行测试类的时候,接口中的方法没有实现。
      mapper-locations: classpath:com/xiaoeyu/springboot2/mapper/*.xml
    #  日志设置
    logging:
      level:
        com.xiaoeyu.springboot2.dao: debug
        org.springframework: info

springboot中,用于处理日志信息的配置文件。相关功能的解释

<?xml version="1.0" encoding="UTF-8"?>
<!--本日志文件存在于springboot项目中,并且配置文件名为:logback-spring.xml  被spring识别-->
<configuration>
    <!--用于日志环境切换,根据主配置文件中的spring.profiles.active指定的不同的环境,把指定的环境中的日志输出到不同的文件中-->
    <!--spring.profiles.active设置的值与<springProfile name="xxxx">的xxx进行匹配,选择日志输出,不管active指定的配置环境是否存在-->
    <springProfile name="dev">
        <property name="LOG_HOME" value="d:/logs/dev" />
    </springProfile>
    <springProfile name="prd">
        <property name="LOG_HOME" value="d:/logs/prd" />
    </springProfile>
    
    <!--定义日志保存的路径,根据日志环境记录的话,这个就有点多余,先注释掉-->
    <!--<property name="LOG_HOME" value="d:/logs" />-->
    
    <!--定义一个控制台输出器,名为console-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--按pattern指定的格式输出日志,编码为UTF-8-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread]  %logger{30} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>
    
    
    <!--定义一个日滚动(每天生成一份)的日志文件,就是把日志生成文件,存在硬盘中,命名为精确到天的日期,则一天只保留一个日志文件-->
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--按pattern指定的格式输出日志,编码为UTF-8-->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread]  %logger{30} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        
        <!-- 定义保存的文件名 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--%d{yyyy-MM-dd}:日志名字的一部分,则一天只能存在一个这样的日志,重新生成的时候,会去掉之前存在的同名的-->
            <fileNamePattern>${LOG_HOME}/mysprintboot_%d{yyyy-MM-dd}.log</fileNamePattern>
            <!--日志最多保存90天,一天的保存一份的话,就是最多保存90份-->
            <maxHistory>90</maxHistory>
        </rollingPolicy>
        
        <!-- 在日滚动文件中,强制只保存错误xxx级别以上信息 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level><!--xxx级别的定义-->
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    
    <!-- 定义日志全局最低输出级别是INFO,满足这个才会生成日志,根据配置显示在控制台或者生成文件保存在硬盘 -->
    <root level="INFO">
    
<appender-ref ref="console" /><!--输出到定义的控制台-->
    <appender-ref ref="file" /><!--输出到定义的日滚动配置-->

  </root>

</configuration>

免责声明:文章转载自《spring-boot整合mybatis(web mysql logback配置)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jenkins自动执行python脚本输出测试报告Centos下堡垒机Jumpserver V3.0环境部署完整记录(2)-配置篇下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL如何找出未提交事务信息

前阵子,我写了一篇博客“ORACLE中能否找到未提交事务的SQL语句”, 那么在MySQL数据库中,我们能否找出未提交事务执行的SQL语句或未提交事务的相关信息呢?   实验验证了一下,如果一个会话(连接)里面有一个未提交事务,然后不做任何操作,那么这个线程处于Sleep状态   mysql> select connection_id() from...

安装mysql

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 一、Window版本 1、下载 1 MyS...

Linux下mysql修改连接超时(windows下也适用)

首先进入mysql,查看 wait_timeout、interactive_timeout这个值是否为默认的8小时(即 28800) [root@server110 ~]# mysql -u root -p Enter password: 输密码进入 执行如下命令 show variables like '%timeout%'; +-----------...

oralce迁移Mysql问题总结

最近从oracle数据库迁移到Mysql, 总结了一些不兼容和需要注意的地方,持久层用的Mybatis 1 guid尽量用代码生成 现象:sys_guid() mysql报错,mysql对应的为UUID(),但是带横线,需要替换为 replace(uuid(),'-',''),所以最好用代码生成, 这样直接就通用了 2 最好不用nvl、ifnull等特性函...

mysql 联合查询后update

SELECT a.user_name,a.avatar,a.nicheng,a.user_rank,b.rank_name,b.rank_img FROM ecs_users a , ecs_user_rank b WHERE user_id in(14495) and a.rank_points >= b.min_points and a.rank...

MYSQL 数据库导入导出命令

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。 MySQL命令行导出数据库 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:Program FilesMySQLMySQL Server 4.1in (或者...