springboot整合mybatis配置
时间: 2023-05-31 14:20:42 浏览: 165
SpringBoot整合mybatis配置
### 回答1:
在Spring Boot项目中整合Mybatis需要几个步骤:
1. 在pom.xml中添加Mybatis与Spring Boot整合的依赖
2. 在application.properties或application.yml中配置数据源和Mybatis的相关属性
3. 创建Mybatis的配置类,用于配置SqlSessionFactory和Mapper扫描
4. 在Mapper接口上添加@Mapper注解
以下是一个示例的Mybatis配置类:
```
@Configuration
@MapperScan(basePackages = "com.example.mapper")
public class MybatisConfig {
@Autowired
private DataSource dataSource;
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("com.example.model");
return factoryBean.getObject();
}
}
```
在这个例子中, 我们配置了Mapper扫描的包路径,并且将数据源注入SqlSessionFactoryBean中,同时还配置了别名的包路径。
### 回答2:
SpringBoot 是一个快速构建 Spring 框架项目的工具,而 MyBatis 是一个很流行的 ORM 框架,将两者整合起来可以更加方便地进行数据库操作。
下面是 springboot 整合 mybatis 的配置步骤:
1. 创建 SpringBoot 项目
在 IntelliJ IDEA 中创建一个新的 SpringBoot 项目,选用 Maven 作为依赖管理工具,选择 Web 和 MySQL 配置。
2. 导入 MyBatis 相关依赖
在 pom.xml 中添加 MyBatis 相关依赖:
```
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
```
3. 配置数据源
在 application.properties 文件中配置数据库连接信息:
```
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
4. 创建映射文件
创建需要操作的表对应的 Bean 类,并创建对应的映射文件,例如 User.java 和 UserMapper.xml,注意必须将映射文件放在 resources 目录下的 mapper 目录中。
User.java:
```
public class User {
private Long id;
private String name;
// getters and setters
// toString
}
```
UserMapper.xml:
```
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.demo.entity.User">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
</resultMap>
<select id="getUserById" resultMap="BaseResultMap">
SELECT id, name FROM user WHERE id = #{id}
</select>
</mapper>
```
5. 创建 Mapper
创建一个 Mapper 接口来访问数据库,例如 UserMapper.java:
```
@Repository
public interface UserMapper {
User getUserById(Long id);
}
```
6. 配置 MyBatis
在 SpringBoot 项目中使用 MyBatis 无需手动配置 SqlSessionFactory、SqlSessionTemplate 等 Bean,只需在启动类上使用 @MapperScan 注解扫描 Mapper 接口所在的包或类。例如:
```
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
至此,就完成了 SpringBoot 整合 MyBatis 的配置。可以在 Controller 中注入 Mapper,并进行 CRUD 操作,例如:
```
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Long id) {
return userMapper.getUserById(id);
}
}
```
### 回答3:
SpringBoot是一个开源的、快速开发的Java Web开发框架,它具有轻量级、模块化和易于使用的特点。Mybatis是一款优秀的持久层框架,它提供了很多方便的API供开发使用,并且Mybatis的Mapper XML维护SQL比较方便。本文将介绍如何将SpringBoot与Mybatis进行整合配置。
1、添加Mybatis和Mybatis-SpringBoot-Starter依赖
在 pom.xml 文件中添加以下依赖:
```xml
<!--Mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!--Mybatis-MySQL驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
```
2、配置数据源
在application.yml文件中添加数据源的相关配置:
```yaml
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true
username: root
password: root
```
以上代码中的 spring.datasource.xxx 为SpringBoot中连接MySQL的数据源相关配置,其中的最后两行分别是MySQL根账号的用户名和密码,需要根据需要进行修改。
3、配置Mybatis
在application.yml文件中对Mybatis进行配置:
```yaml
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.demo.entity
```
以上代码中的配置表示将Mapper XML文件存放在mappers目录下,且Mybatis会自动扫描com.example.demo.entity包中的Java对象进行类型别名注册和解析。
4、配置Mapper
在Mapper接口中编写对应的SQL语句:
```java
public interface UserMapper {
int insert(User user);
List<User> selectAll();
}
```
以上代码定义了一个UserMapper接口,其中的 insert 和 selectAll 方法会映射为对应的SQL语句。insert 方法用于插入一条User数据,selectAll 方法用于查询全部User数据。
5、编写Mapper XML
在 resources/mapper 目录下编写对应的Mapper XML文件:
```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.example.demo.mapper.UserMapper" >
<resultMap id="BaseResultMap" type="com.example.demo.entity.User" >
<id column="id" property="id" />
<result column="name" property="name" />
<result column="age" property="age" />
</resultMap>
<insert id="insert" parameterType="com.example.demo.entity.User" >
insert into tb_user(name, age) values(#{name}, #{age})
</insert>
<select id="selectAll" resultMap="BaseResultMap" >
select * from tb_user
</select>
</mapper>
```
以上代码中定义了一个UserMapper对应的Mapper XML,其中的 selectAll 和 insert 标签与对应的Mapper接口方法名称映射一致,分别对应的是查询全部数据和插入数据两个SQL语句。
6、测试运行
在SpringBoot应用启动之前,需要在SpringBootApplication的启动类上添加注解@MapperScan("com.example.demo.mapper"),表示要扫描com.example.demo.mapper包下的所有Mapper类并注册。
```java
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
接着,在启动类中注入UserMapper并进行测试:
```java
@RestController
public class UserController {
@Autowired
UserMapper userMapper;
@GetMapping("/user")
public List<User> getUser() {
return userMapper.selectAll();
}
@PostMapping("/user")
public String postUser(@RequestBody User user) {
int result = userMapper.insert(user);
return result == 1 ? "success" : "failed";
}
}
```
以上代码中分别定义了一个GET请求和一个POST请求,分别用于查询数据库中全部的User数据和向数据库中插入一条新的User数据。
7、测试结果
启动SpringBoot应用之后,在浏览器中访问 http://localhost:8080/user 来查询数据库中的所有User数据,或者使用Postman等工具来向数据库中增加一条User数据。如果返回结果为success,则说明数据库操作成功。
阅读全文