springboot 集成mybatis
时间: 2023-05-31 09:20:28 浏览: 122
springboot集成mybatis
### 回答1:
Spring Boot可以很方便地集成MyBatis,只需要在pom.xml文件中添加MyBatis和MyBatis-Spring的依赖即可。
1. 添加依赖
在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
```
2. 配置数据源
在application.properties文件中配置数据源:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
3. 配置MyBatis
在application.properties文件中配置MyBatis:
```properties
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity
```
4. 编写Mapper
在com.example.demo.mapper包下创建Mapper接口:
```java
@Mapper
public interface UserMapper {
User selectUserById(Integer id);
}
```
5. 编写Mapper.xml
在resources/mapper目录下创建Mapper.xml文件:
```xml
<?xml version="1." encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="userMap" type="com.example.demo.entity.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
</resultMap>
<select id="selectUserById" resultMap="userMap">
select * from user where id=#{id}
</select>
</mapper>
```
6. 编写Service
在com.example.demo.service包下创建Service接口和实现类:
```java
public interface UserService {
User selectUserById(Integer id);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User selectUserById(Integer id) {
return userMapper.selectUserById(id);
}
}
```
7. 编写Controller
在com.example.demo.controller包下创建Controller类:
```java
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Integer id) {
return userService.selectUserById(id);
}
}
```
至此,Spring Boot集成MyBatis的配置已经完成,可以启动应用程序并访问http://localhost:808/user/1来测试。
### 回答2:
SpringBoot 是一个高度集成化的 Java 开发框架,MyBatis 是一个支持普通 SQL 查询、存储过程和高级映射的优秀持久层框架,使用 MyBatis 可以避免编写大量重复的 JDBC 代码,提高开发效率。SpringBoot 集成 MyBatis 可以实现快速的开发,并且大大简化了配置。
SpringBoot 集成 MyBatis 主要分为以下几个步骤:
1. 导入相关依赖
在 pom.xml 文件中添加 MyBatis 和 MyBatis-SpringBoot-Starter 依赖:
```
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
```
2. 配置数据源
在 application.properties 文件中添加数据库信息和连接池信息:
```
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
# 配置连接池大小
spring.datasource.initialSize=5
spring.datasource.maxActive=20
spring.datasource.minIdle=5
```
3. 配置 MyBatis
在 application.properties 文件中添加 MyBatis 配置:
```
# MyBatis
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.bean
```
以上配置表示 MyBatis 的 mapper XML 文件位于 classpath 下的 mapper 目录下,并且实体类的包路径为 com.example.demo.bean。
4. 创建数据访问接口和 XML 文件
创建数据访问接口和 XML 文件,例如:
UserMapper.java
```java
public interface UserMapper {
@Select("SELECT * FROM `user` WHERE `id` = #{id}")
User findUserById(@Param("id") Integer id);
@Insert("INSERT INTO `user`(`name`, `age`) VALUES (#{name}, #{age})")
int insertUser(User user);
}
```
UserMapper.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.bean.User">
<id column="id" property="id" />
<result column="name" property="name" />
<result column="age" property="age" />
</resultMap>
<select id="findUserById" resultMap="BaseResultMap">
SELECT * FROM `user` WHERE `id` = #{id}
</select>
<insert id="insertUser">
INSERT INTO `user`(`name`, `age`) VALUES (#{name}, #{age})
</insert>
</mapper>
```
5. 注册数据访问接口和 XML 文件
在启动类中添加注解 @MapperScan,并指定数据访问接口的包路径:
```java
@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
6. 使用数据访问接口
在需要使用数据访问接口的地方注入即可:
```java
@RestController
public class UserController {
@Autowired
private UserMapper userMapper;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable("id") Integer id) {
return userMapper.findUserById(id);
}
@PostMapping("/user")
public Integer insertUser(@RequestBody User user) {
return userMapper.insertUser(user);
}
}
```
以上就是 SpringBoot 集成 MyBatis 的基本步骤,通过以上配置和代码示例,我们可以在 SpringBoot 中快速使用 MyBatis 实现数据访问。
### 回答3:
Spring Boot是一个快速开发框架,可以帮助我们快速搭建一个Web应用程序。MyBatis是一个ORM框架,可以帮助我们简化数据库操作,提高开发效率。Spring Boot集成MyBatis可以让我们更加方便的操作数据库,实现数据持久化。
以下是Spring Boot集成MyBatis的步骤:
1. 引入相关依赖
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
```
引入上述依赖后,Spring Boot会自动配置数据库连接池和MyBatis相关配置。
2. 配置数据源
在application.properties中配置数据源:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
这里使用的是MySQL数据库。
3. 配置MyBatis
在application.properties中配置MyBatis相关配置:
```properties
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity
```
这里使用了XML方式进行SQL映射。mapper-locations指定XML文件的位置,type-aliases-package指定实体类的包名。
4. 创建实体类和Mapper接口
实体类对应数据库中的表,Mapper接口用于定义SQL语句。
5. 创建Mapper XML文件
XML文件中定义SQL语句,也可以定义参数类型和返回类型。
6. 编写Controller类
Controller类中定义请求的URL和返回的结果。
上述步骤完成后,就可以在Spring Boot应用中实现数据库操作和数据持久化了。
总的来说,Spring Boot集成MyBatis可以极大的简化我们的开发过程,让我们更加聚焦于业务逻辑实现。同时,Spring Boot也提供了一系列自动化配置功能,让我们的开发效率更加高效。
阅读全文