spring-boot整合mybatis(web mysql logback配置)
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());
} }
- 启动类,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);
}
} - 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配置)的更多相关文章
- 太妙了!Spring boot 整合 Mybatis Druid,还能配置监控?
Spring boot 整合 Mybatis Druid并配置监控 添加依赖 <!--druid--> <dependency> <groupId>com.alib ...
- Spring Boot整合Mybatis并完成CRUD操作
MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...
- spring boot 整合 mybatis 以及原理
同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...
- Spring Boot整合MyBatis(非注解版)
Spring Boot整合MyBatis(非注解版),开发时采用的时IDEA,JDK1.8 直接上图: 文件夹不存在,创建一个新的路径文件夹 创建完成目录结构如下: 本人第一步习惯先把需要的包结构创建 ...
- Spring Boot系列(三):Spring Boot整合Mybatis源码解析
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记 ...
- Spring Boot 整合mybatis时遇到的mapper接口不能注入的问题
现实情况是这样的,因为在练习spring boot整合mybatis,所以自己新建了个项目做测试,可是在idea里面mapper接口注入报错,后来百度查询了下,把idea的注入等级设置为了warnin ...
- Spring Boot整合Mybatis报错InstantiationException: tk.mybatis.mapper.provider.base.BaseSelectProvider
Spring Boot整合Mybatis时一直报错 后来发现原来主配置类上的MapperScan导错了包 由于我使用了通用Mapper,所以应该导入通用mapper这个包
- Spring Boot整合Mybatis完成级联一对多CRUD操作
在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...
- Spring Boot 整合 Mybatis 实现 Druid 多数据源详解
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...
- Spring boot整合Mybatis
时隔两个月的再来写博客的感觉怎么样呢,只能用“棒”来形容了.闲话少说,直接入正题,之前的博客中有说过,将spring与mybatis整个后开发会更爽,基于现在springboot已经成为整个业界开发主 ...
随机推荐
- 剑指offer:链表中倒数第k个结点
问题描述 输入一个链表,输出该链表中倒数第k个结点. 解题思路 两个指针都指向头结点,第一个指针先移动k-1个结点,之后两指针同时移动,当第一个指针到链表尾的时候,第二个指针刚好指向倒数第k个结点. ...
- 通过nginx反向代理接收应用宝回调
年前的时候,正好公司把用来接收应用宝回调的服务从Windows服务器上迁移带Linux服务器上,没想到最后折腾了两个工作日,腾讯的文档真的无力吐槽,不知道以后会不会有人碰到我相同的问题,我先记录一下. ...
- loadrunner中使用web_custom_request函数调用webservice接口
1.使用的接口地址: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName 以SOAP ...
- Flume+Sqoop+Azkaban笔记
大纲(辅助系统) 离线辅助系统 数据接入 Flume介绍 Flume组件 Flume实战案例 任务调度 调度器基础 市面上调度工具 Oozie的使用 Oozie的流程定义详解 数据导出 sqoop基础 ...
- centos7中bash: maven: 未找到命令... 解决办法
安装了maven,但在执行mvn -v或maven-versions时提示bash: maven: 未找到命令... 应该是环境变量出错,把MAVEN_HOME的路径换到PATH上就可以了,如下: e ...
- es6开发环境搭建,babel 将es6转化成es5
工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ...
- Java程序设计的第二次作业
本次作业包含两个部分:一是以下4个题目的程序源码和运行结果截图:二是本次作业的小结(谈谈你在做作业的过程中遇到了哪些问题,如何解决,有哪些收获). 1.编写“人”类及其测试类.1.1 “人”类: 类 ...
- erlang下lists模块sort(排序)方法源码解析(二)
上接erlang下lists模块sort(排序)方法源码解析(一),到目前为止,list列表已经被分割成N个列表,而且每个列表的元素是有序的(从大到小) 下面我们重点来看看mergel和rmergel ...
- git设置用户名和邮箱
用git config --global user.name "your name"命令来设置你的用户名 用git config --global user.email " ...
- Curl实现ElasticSearch的增删改查
一.添加数据(laravel必须安装Curl扩展) $data = [ 'username'=>"张三", 'sex'=>"女", 'age'=&g ...