SpringBoot如何集成Mybatis呢?
下文笔者讲述SpringBoot集成Mybatis的方法分享,如下所示
Mybatis简介
Mybatis是一个ORM框架 ORM框架是我们操作数据库中不可缺少的一部分 Mybatis框架可借助SQL将查询结果转换为ORM对象 将对象插入至数据库中
实现思路:
1.引入mybatis starter器
2.设置配置信息
3.编写相应的脚本
引入Mybatis依赖
<!--mybaits在spring-boot中的依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
注意事项:
mybatis会自动引入jdbc
所以无需加入spring-boot-starter-jdbc依赖
添加数据库配置信息
spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
例
controller:
@RestController
@RequestMapping("/mybatis")
public class MybatisController {
@Autowired
private MybatisService service;
/**
* 更新用户信息
* @param user_id 用户ID
* @param nickName 昵称
*/
@PutMapping("/updateUser/{id}")
public void updateUser(@PathVariable("id") String user_id, @RequestParam("nickName") String nickName){
service.updateUser(user_id,nickName);
}
/**
* 获取用户信息
* @param id 用户Id
* @return
*/
@GetMapping("/getUser/{id}")
public UserInfo getUser(@PathVariable("id") Integer id){
return service.getUser(id);
}
/**
* 删除用户
* @param tel
*/
@DeleteMapping("/deleteUserByUserId/{tel}")
public void deleteUserByUserId(@PathVariable("tel") String tel){
UserInfo user = new UserInfo();
user.setTel(tel);
service.deleteUserByUserId(user);
}
/**
* 使用@RequestBody获取参数,用map类型接收,再取出
* @param reqMap
*/
@PostMapping("/createUserByMap")
public void createUserByMap(@RequestBody Map<String,Object> reqMap){
service.createUser(reqMap);
}
}
service
@Service
public class MybatisService {
@Autowired
private MybatisUserAnnotaionMapper annotaionMapper;
public void updateUser(String user_id, String nickName) {
annotaionMapper.updateUser(user_id,nickName);
}
public UserInfo getUser(Integer id) {
return annotaionMapper.getUser(id);
}
public void deleteUserByUserId(UserInfo userInfo) {
annotaionMapper.deleteUserByUserId(userInfo);
}
public void createUser(Map<String, Object> reqMap) {
annotaionMapper.createUser(reqMap);
}
}
dao:
@Mapper
public interface MybatisUserAnnotaionMapper {
@Insert("INSERT INTO test.tp_user(tel,password,nickname,secret) VALUES (#{tel},md5(#{pwd}),#{tel},'')")
void createUser(Map<String, Object> reqMap);
@Select("select tel,nickname,password FROM test.tp_user WHERE user_id = #{id}")
UserInfo getUser(@Param("id") Integer id);
@Update("UPDATE test.tp_user SET nickname = #{nickName} WHERE user_id = #{userId}")
void updateUser(@Param("userId") String user_id, @Param("nickName") String nickName);
@Delete("DELETE FROM test.tp_user WHERE tel = #{tel}")
void deleteUserByUserId(UserInfo userInfo);
}
注意事项:
以上操作方式
我们需保证数据库列名和对象名一致
如果不一致时,请使用as关键字转换
另:将脚本使用xml配置文件的方式编写
XML文件放于resources下mapper目录
<?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.java265.dao.impl.MybatisUserXMLMapper">
<insert id="createUser" parameterType="java.util.Map">
INSERT INTO test.tp_user(tel,password,nickname,secret) VALUES (#{tel},md5(#{pwd}),#{tel},'')
</insert>
<update id="updateUser">
UPDATE test.tp_user SET nickname = #{nickName} WHERE user_id = #{userId}
</update>
<select id="getUser" resultType="com.java265.pojo.UserInfo">
SELECT tel,nickname,password FROM test.tp_user WHERE user_id = #{id}
</select>
<delete id="deleteUserByUserId">
DELETE FROM test.tp_user WHERE tel = #{tel}
</delete>
</mapper>
注意事项:
使用以上方式
1.需在application.yml中加入相应的配置信息
mybatis:
mapper-locations: classpath:mapper/*.xml
2.启动类上加入扫描mybatis包的注解
@MapperScan(basePackages = "com.java265.dao")
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


