springboot整合mybatis druid
时间: 2023-05-31 22:20:27 浏览: 181
### 回答1:
Spring Boot是一个快速开发框架,而MyBatis是一个流行的ORM框架,Druid是一个高性能的数据库连接池。将它们整合在一起可以提高开发效率和系统性能。具体步骤如下:
1. 引入相关依赖:在pom.xml文件中添加spring-boot-starter-jdbc、mybatis-spring-boot-starter和druid-spring-boot-starter依赖。
2. 配置数据源:在application.properties文件中配置数据源信息,包括数据库URL、用户名、密码等。
3. 配置MyBatis:在application.properties文件中配置MyBatis相关信息,包括mapper文件路径、实体类包路径等。
4. 配置Druid:在application.properties文件中配置Druid相关信息,包括连接池大小、监控页面路径等。
5. 编写Mapper接口和SQL语句:在Mapper接口中定义SQL语句,并使用@Mapper注解标注该接口。
6. 编写Service层和Controller层:在Service层中调用Mapper接口,实现业务逻辑;在Controller层中处理请求和响应。
7. 启动应用程序:使用Spring Boot的启动器启动应用程序,访问相关接口即可。
总之,整合Spring Boot、MyBatis和Druid可以让我们更方便地开发数据库应用程序,提高开发效率和系统性能。
### 回答2:
Spring Boot 是目前非常热门的一种快速构建 web 应用程序的框架,而 Mybatis 是一款非常流行的 Java 数据库持久化框架,Druid 是阿里巴巴开发的数据库连接池和监控工具。Spring Boot 整合 Mybatis 和 Druid 的开发方式比较简单,只需要进行相应的配置即可。
首先,在 pom.xml 文件中添加 Mybatis 和 Druid 的依赖:
```
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
```
然后,在 application.yml 或 application.properties 中添加相应的配置,以下是一个示例:
```
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: root
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
driver-class-name: com.mysql.jdbc.Driver
druid:
min-idle: 5
max-active: 20
initial-size: 5
test-on-borrow: true
validation-query: SELECT 1
mybatis:
mapper-locations: classpath:mapper/*.xml
```
其中,spring.datasource 下的配置是数据库连接相关的配置,druid 下的配置是连接池相关的配置,mybatis 下的配置是 Mybatis 相关的配置。
最后,在需要使用 Mybatis 的类上添加 @Mapper 注解即可,例如:
```
@Mapper
public interface UserDao {
List<User> selectAll();
void insert(User user);
}
```
这样,我们就通过 Spring Boot 整合了 Mybatis 和 Druid,并且可以方便地使用它们来访问数据库。同时,Druid 还提供了一些监控和统计功能,可以方便地了解应用程序访问数据库的性能和健康情况。
### 回答3:
随着互联网应用越来越普及,Java Web开发也变得越来越火热,相应的Spring Boot、MyBatis、Druid等技术也得到了广泛的应用。其中,Spring Boot是基于Spring Framework的一种全新框架,通过封装成熟的框架和工具,提高了开发效率,减少了配置量;MyBatis是一款优秀的基于Java的ORM框架,可以让开发人员更加专注于SQL本身,而无需过多关注底层的操作。Druid是一个强大的数据库连接池,具有监控、性能分析、SQL注入检查和防御、不同操作系统适配等特点,能够有效提高应用的性能和稳定性。
Spring Boot整合MyBatis和Druid,可以将这三个技术更有效地结合起来,发挥它们的优点。
具体步骤如下:
1. 创建基于Spring Boot的Web工程,并在pom.xml文件中引入相关依赖。
```xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
```
2. 创建数据库连接的配置文件application.properties。
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:com/example/mapper/*Mapper.xml
mybatis.type-aliases-package=com.example.entity
# Druid数据源配置
# 初始化大小、最小、最大连接数
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
# 配置连接空闲的最大时间,超时将被关闭,单位毫秒
spring.datasource.maxEvictableIdleTimeMillis=900000
# 配置连接池中的连接创建时的默认自动提交配置
spring.datasource.defaultAutoCommit=true
# 对于长时间不使用的连接强制关闭
spring.datasource.removeAbandoned=true
spring.datasource.removeAbandonedTimeout=1800
spring.datasource.logAbandoned=true
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.filters=stat,wall,log4j
```
3. 创建MyBatis的配置文件mybatis-config.xml。
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
<setting name="logImpl" value="LOG4J" />
</settings>
</configuration>
```
4. 在Spring Boot的启动类上添加@Configuration注解,并通过@Bean注解来配置SqlSessionFactory和SqlSessionTemplate。
```java
@SpringBootApplication
@Configuration
@MapperScan(basePackages = "com.example.mapper")
public class Application {
@Autowired
DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
return factoryBean.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplate() throws Exception {
SqlSessionTemplate sqlSessionTemplate = new SqlSessionTemplate(sqlSessionFactory());
return sqlSessionTemplate;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
5. 创建Mapper接口和对应的XML文件。
```java
public interface UserMapper {
@Select("SELECT * FROM user WHERE id = #{id}")
User selectUserById(int id);
}
```
```xml
<mapper namespace="com.example.mapper.UserMapper">
<resultMap id="userMap" type="com.example.entity.User">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="username" property="username" jdbcType="VARCHAR"/>
<result column="password" property="password" jdbcType="VARCHAR"/>
<result column="age" property="age" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectUserById" resultMap="userMap">
SELECT id, username, password, age
FROM user
WHERE id = #{id}
</select>
</mapper>
```
6. 创建实体类,并注入Mapper接口到Service中进行操作。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User selectById(int id) {
return userMapper.selectUserById(id);
}
}
```
7. 创建Controller,提供对外RESTful API接口。
```java
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User selectById(@PathVariable int id) {
return userService.selectById(id);
}
}
```
综上,以上是Spring Boot整合MyBatis和Druid的流程。由于Spring Boot的封装,开发人员只需要关注业务逻辑的处理,而无需过多关注底层技术的实现细节,大大提高了开发效率。同时,MyBatis和Druid提供了非常强大和灵活的数据操作支持和连接池管理,可以有效地提高应用的性能和稳定性。
阅读全文