1. 千篇一律,首先导入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
2.写配置
- 准备application.yml配置
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/lenos?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
# #Spring Boot 默认是不注入这些属性值的,需要自己绑定
# #druid 数据源专有配置
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
#配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
#如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority
#则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
filters: stat,wall,log4j
maxPoolPreparedStatementPerConnectionSize: 20
useGlobalDataSourceStat: true
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#配置mybatis
#指定myBatis的核心配置文件与Mapper映射文件
mybatis:
mapper-locations: classpath:mapper/*.xml
## 注意:对应实体类的路径
type-aliases-package: com.example.demo.pojo
- 准备Druid配置类
package com.example.demo.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@Configuration
public class DruidConfig {
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
//后台监控
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(),"/druid/*");
//后台需要人登陆,配置账号和密码
Map<String, String> initParameters = new HashMap<String, String>();
//增加配置
initParameters.put("loginUsername","admin");
//登陆的key 固定为 loginUsername/loginPassword
initParameters.put("loginPassword","123456");
//允许谁可以访问
initParameters.put("allow","");
//不允许访问的格式
// initParameters.put("zy","192.1.168.1");
bean.setInitParameters(initParameters);
return bean;
}
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
//exclusions:设置哪些请求进行过滤排除掉,从而不进行统计
Map<String, String> initParams = new HashMap<>();
initParams.put("exclusions", "*.js,*.css,/druid/*");
bean.setInitParameters(initParams);
//"/*" 表示过滤所有请求
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}
- 准备mybatis配置,我这边为了方便就没有写三层了
package com.example.demo.mapper;
import com.example.demo.pojo.Person;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserMapper {
//查询全部用户
List<Person> selectAllPerson();
//根据id查询用户
Person selectPersonById(int id);
//添加一个用户
int addPerson(Person person);
//修改一个用户
int updatePerson(Person person);
//根据id删除用户
int deletePerson(int id);
}
接口配置完毕,接着就是sql语句。
<?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.example.demo.mapper.UserMapper">
<select id="selectAllPerson" resultType="Person">
select * from test
</select>
<select id="selectPersonById" resultType="Person">
select * from test where id = #{id}
</select>
<insert id="addPerson" parameterType="Person">
insert into test (name,age) values (#{name},#{age})
</insert>
<update id="updatePerson" parameterType="Person">
update test set name=#{name},age=#{age} where id = #{id}
</update>
<delete id="deletePerson" parameterType="int">
delete from test where id = #{id}
</delete>
</mapper>
注意:application里面的配置要与实际的xml存放路径一致,否则会报错。
实体类在这边就不体现了,到此准备完毕,开始测试。
首先访问druid的监控后台页面访问:ip/端口/druid/index.html

接着登录即可。mybatis的测试简单,只要写个cotroller调用接口就可以了。
一个简单的集成就好了。
本文详细介绍了如何在Spring Boot项目中整合MyBatis,包括必要的依赖导入、配置文件编写、Druid数据源配置、MyBatis配置及实体类、Mapper接口与XML映射文件的创建过程。
1479

被折叠的 条评论
为什么被折叠?



