学习Spring的日志下面是有关Spring集成Mybatis的方法
一、数据库配置
数据库为ssm_db里面有个图书表
表是这样的
表的字段名id自动递增
在idea里面配置mysql
二、maven配置以及日志处理
logback.xml处理日志
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<Target>System.out</Target>
<Encoding>UTF-8</Encoding>
<encoder>
<pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} %5p [%t] [%c{1}]:%L - %m%n
</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN"/>
<logger name="org.springframework.remoting" level="WARN"/>
<logger name="org.springframework.scheduling.quartz" level="WARN"/>
<logger name="org.springframework.data.jpa" level="DEBUG"/>
<logger name="com.app" level="DEBUG"/>
<root level="ERROR">
<appender-ref ref="stdout"/>
<appender-ref ref="logfile"/>
</root>
</configuration>
maven
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.18</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.5</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.21</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>0.1.4</version>
</dependency>
三、Spring配置(注解配置方式)
总体需要的文件配置
jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_db?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=
jdbc.password=
3.1config包
里面的是spring、jdbc\mybatis的基础配置文件
3.1.1SpringConfig.class
@Configuration
//扫描com.app下面的文件
@ComponentScan("com.app")
//引入jdbc.properties
@PropertySource("classpath:jdbc.properties")
//引入jdbc、mybatis的类
@Import({JdbcConfig.class,MybatisConfig.class})
@EnableTransactionManagement
public class SpringConfig {
}
3.1.2JdbcConfig.class
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
DruidDataSource source = new DruidDataSource();
source.setDriverClassName(driver);
source.setUrl(url);
source.setUsername(username);
source.setPassword(password);
return source;
}
@Bean
日志
public PlatformTransactionManager transactionManager(DataSource dataSource)
{
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager();
transactionManager.setDataSource(dataSource);
return transactionManager;
}
}
3.1.3MybatisConfig.class
@Bean
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("(放置数据库实体类)com.app.domain");
return factoryBean;
}
@Bean
public MapperScannerConfigurer mapperScannerConfigurer() {
MapperScannerConfigurer configurer = new MapperScannerConfigurer();
configurer.setBasePackage("(放置mybatis接口的包)com.app.dao");
return configurer;
}
3.2dao
里面是mybatis的接口
这里面就写个查询但是要记得交给spring管理
//交给spring管理
@Repository
public interface BookMapper {
List<Book>selectBook();
}
3.3domain
是存放数据库实体类的
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
private int id;
private String type;
private String name;
private String description;
}
3.4service
具体实现功能的
IBookService接口
public interface IBookService {
public void select();
}
BookService实现类
@Service//注意要接受spring控制
public class BookService implements IBookService {
注意要用Autowired注解使用mybatis实现的接口
@Autowired
private BookMapper bookMapper;
@Override
public void select() {
List<Book> books = bookMapper.selectBook();
System.out.println(books);
}
}
Mybatis的mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.app.dao.BookMapper">
<select id="selectBook" resultType="com.app.domain.Book">
select * from tbl_book
</select>
</mapper>
Test
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class Test {
//注意去实现service中的接口并使用Autowired注解
@Autowired
private IBookService bookService;
@org.junit.Test
public void select() {
bookService.select();
}
}
# ```