假设你已经设置好了Oracle数据库,并在Maven或者Gradle构建配置中添加了必要的依赖。
### 1. Maven依赖
在你的 `pom.xml` 文件中添加Spring Boot、MyBatis和Oracle JDBC驱动的依赖:
```xml org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-jdbc org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0 com.oracle.database.jdbc ojdbc8 19.8.0.0 ```
### 2. 配置数据库属性
在 `application.properties` 文件中添加你的Oracle数据库连接属性:
```properties spring.datasource.url=jdbc:oracle:thin:@//localhost:1521/YOUR_SID spring.datasource.username=your_username spring.datasource.password=your_password spring.datasource.driver-class-name=oracle.jdbc.OracleDriver ```
将 `YOUR_SID`、`your_username` 和 `your_password` 替换为你的Oracle数据库的SID、用户名和密码。
### 3. 创建MyBatis Mapper接口
创建一个MyBatis Mapper接口,定义你的SQL查询。例如:
```java package com.example.mybatisdemo.mapper; import com.example.mybatisdemo.model.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface UserMapper { @Select("SELECT * FROM users") List getAllUsers(); @Select("SELECT * FROM users WHERE id = #{id}") User getUserById(Long id); // 添加其他的CRUD操作 } ```
### 4. 创建模型类
创建一个模型类来表示你的数据库实体(表)。例如:
```java package com.example.mybatisdemo.model; public class User { private Long id; private String username; private String email; // Getter和Setter方法 } ```
### 5. 配置MyBatis在Spring Boot中
创建一个配置类来配置Spring Boot中的MyBatis。通常,你可以在这个类上使用 `@MapperScan` 注解来扫描MyBatis Mapper接口。
```java package com.example.mybatisdemo.config; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; @Configuration @MapperScan("com.example.mybatisdemo.mapper") public class MyBatisConfig { // 如果需要,可以在这里添加特定的MyBatis配置 } ```
### 6. Service和Controller
创建一个Service类来使用你的MyBatis Mapper接口,并创建一个REST Controller来处理HTTP请求:
```java package com.example.mybatisdemo.service; import com.example.mybatisdemo.mapper.UserMapper; import com.example.mybatisdemo.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired private UserMapper userMapper; public List getAllUsers() { return userMapper.getAllUsers(); } public User getUserById(Long id) { return userMapper.getUserById(id); } } ``` ```java package com.example.mybatisdemo.controller; import com.example.mybatisdemo.model.User; import com.example.mybatisdemo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping("/") public List getAllUsers() { return userService.getAllUsers(); } @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.getUserById(id); } } ```
### 7. 运行你的应用程序
运行你的Spring Boot应用程序。确保你的Oracle数据库正在运行并且可访问。
### 总结
这个例子涵盖了使用Spring Boot与MyBatis集成的基本步骤,以及如何与Oracle数据库配合使用。它包括设置依赖项、配置数据库属性、创建MyBatis Mapper接口、定义模型类、配置MyBatis和创建Service和Controller组件。根据你的具体应用需求和数据库架构进行调整。
当你完成了上述步骤之后,你可能还希望做一些额外的补充或优化:
### 1. MyBatis XML映射文件
除了注解方式,你也可以使用XML文件来定义SQL映射。在需要更复杂SQL语句或映射配置时,XML映射文件通常更灵活。例如,创建一个XML文件 `UserMapper.xml`:
```xml SELECT * FROM users SELECT * FROM users WHERE id = #{id} ```
然后在 `UserMapper` 接口中使用 `@Mapper` 注解指定XML文件:
```java @Mapper public interface UserMapper { List getAllUsers(); User getUserById(Long id); // 添加其他的CRUD操作 } ```
### 2. 分页和排序
在实际应用中,通常需要对查询结果进行分页和排序。可以通过MyBatis的插件或者使用`PageHelper`来实现分页:
```xml com.github.pagehelper pagehelper-spring-boot-starter 1.3.0 ``` 然后在你的Service层使用`PageHelper`进行分页: ```java import com.github.pagehelper.PageHelper; @Service public class UserService { @Autowired private UserMapper userMapper; public List getAllUsers(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); return userMapper.getAllUsers(); } // 其他方法类似,根据需要进行分页和排序 } ```
### 3. 事务管理
如果你的应用需要事务管理,可以在Service方法上添加 `@Transactional` 注解来确保操作的原子性和一致性:
```java import org.springframework.transaction.annotation.Transactional; @Service public class UserService { @Autowired private UserMapper userMapper; @Transactional public void updateUser(User user) { userMapper.updateUser(user); } // 其他需要事务管理的方法 } ```
### 4. 错误处理与异常
在处理数据库操作时,要考虑如何处理可能的异常情况。可以通过Spring Boot的异常处理机制或者自定义异常处理器来增强应用的稳定性和可靠性。