以下是关于SpringBoot整合MyBatis的完整攻略:
1. 准备工作
- 建立SpringBoot项目
- 添加相关依赖:SpringBoot的Web、MyBatis、MySQL驱动
2. 配置数据源
在SpringBoot项目的配置文件application.properties中,添加数据源的相关配置:
# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3. 配置MyBatis
3.1 配置MyBatis的Mapper扫描包名
在SpringBoot项目的配置类中,使用@MapperScan注解扫描Mapper接口所在的包:
@MapperScan("com.example.demo.dao")
3.2 编写MyBatis的Mapper接口
在接口中定义需要操作的数据库方法,方法上使用MyBatis的注解实现SQL操作:
public interface UserMapper {
@Insert("insert into user(username,password) values(#{username},#{password})")
int addUser(User user);
@Select("select * from user where id=#{id}")
User getUserById(int id);
}
3.3 配置MyBatis的SqlSessionFactory
参考以下代码在SpringBoot项目的配置类中配置SqlSessionFactory:
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:mybatis/mapper/*.xml"));
return sqlSessionFactoryBean.getObject();
}
4. 编写Controller
在Controller中注入MyBatis的Mapper,并编写对应的请求方法:
@RestController
public class UserController {
@Autowired
UserMapper userMapper;
@GetMapping("/user/{id}")
public User getUserById(@PathVariable int id) {
return userMapper.getUserById(id);
}
@PostMapping("/user")
public int addUser(@RequestBody User user) {
return userMapper.addUser(user);
}
}
5. 示例
以下是两个简单的示例:
5.1 增加一个用户
请求方式:POST
请求地址:http://localhost:8080/user
请求参数:
{
"username": "test",
"password": "123456"
}
响应数据:
1
5.2 获取一个用户
请求方式:GET
请求地址:http://localhost:8080/user/1
响应数据:
{
"id": 1,
"username": "test",
"password": "123456"
}
以上就是关于SpringBoot整合MyBatis的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合MyBatis的代码详解 - Python技术站