一、前提准备
在Spring Boot中整合MyBatis时,你需要导入JDBC(不需要手动添加)和Druid的相关依赖。
-
JDBC依赖:在Spring Boot中整合MyBatis时,并不需要显式地添加JDBC的包依赖。这是因为,当你添加
mybatis-spring-boot-starter
依赖时,它已经包含了对JDBC的依赖。mybatis-spring-boot-starter
是MyBatis官方提供的用于整合MyBatis和Spring Boot的依赖,它已经包含对JDBC的支持。这个依赖会自动引入适用于Spring Boot的JDBC依赖,因此你不需要手动添加SpringBoot整合JDBC--->SpringBoot整合JDBC_Maiko Star的博客-CSDN博客
-
Druid依赖:Druid是一个强大的数据库连接池和监控工具,如果你希望使用Druid作为连接池,需要导入Druid的依赖。可以通过以下方式在
pom.xml
文件中添加Druid的依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.6</version>
</dependency>
SpringBoot整合Druid ------> SpringBoot整合Druid_Maiko Star的博客-CSDN博客
二、导入MyBatis依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
三、配置数据库连接
在application.properties
或application.yml
中配置数据库连接信息,例如:
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
如果你使用了Druid,还需要加上Druid相关配置(spring.datasource.type=com.alibaba.druid.pool.DruidDataSource必须加上,其他配置可不加)
# Druid配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-while-idle=true
spring.datasource.druid.time-between-eviction-runs-millis=60000
spring.datasource.druid.min-evictable-idle-time-millis=30000
spring.datasource.druid.pool-prepared-statements=true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
四、在resources下创建mapper文件夹,并在application.yml里配置路径
下面是基于xml方式:
五、在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.dfrz.mapper.StudentMapper">
<select id="getStuById" resultType="com.dfrz.pojo.Student">
select * from `student` where id = #{id}
</select>
</mapper>
六、创建mapper包和对应的接口,在接口加上@Mapper注解,或者在启动类加上@MapperScan(value = "com.dfrz.mapper")注解
在接口加上@Mapper注解:
在启动类加上@MapperScan(value = "com.dfrz.mapper")注解:
七、测试
配置相应的controller进行测试:
测试成功!!!
八、可以添加配置类,开启驼峰识别
package com.dfrz.config;
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setMapUnderscoreToCamelCase(true);//驼峰
//configuration.setCacheEnabled(true);//缓存
}
};
}
}
下面是基于注解方式:
在MyBatis中,你可以使用注解来简化数据库操作的配置。通过注解,你可以在Mapper接口的方法上添加相应的注解来指定对应的SQL语句和参数映射关系,无需再编写XML Mapper文件。
-
@Select
:用于执行查询操作的注解,指定SQL查询语句。 -
@Insert
:用于执行插入操作的注解,指定SQL插入语句。 -
@Update
:用于执行更新操作的注解,指定SQL更新语句。 -
@Delete
:用于执行删除操作的注解,指定SQL删除语句。
以下是使用注解进行数据库操作的示例:
public interface UserMapper {
@Select("SELECT * FROM users")
List<User> getAllUsers();
@Select("SELECT * FROM users WHERE id = #{id}")
User getUserById(Long id);
@Insert("INSERT INTO users(name, email) VALUES(#{name}, #{email})")
@Options(useGeneratedKeys = true, keyProperty = "id") //用于在插入操作时生成主键并将生成的主键赋值给实体类的属性。
int insertUser(User user);
@Update("UPDATE users SET name = #{name}, email = #{email} WHERE id = #{id}")
int updateUser(User user);
@Delete("DELETE FROM users WHERE id = #{id}")
int deleteUser(Long id);
}