转自:
SpringBoot如何集成Mybatis呢?
下文笔者讲述SpringBoot集成Mybatis的方法分享,如下所示
Mybatis简介
Mybatis是一个ORM框架ORM框架是我们操作数据库中不可缺少的一部分 Mybatis框架可借助SQL将查询结果转换为ORM对象将对象插入至数据库中
实现思路:1.引入mybatis starter器2.设置配置信息3.编写相应的脚本
引入Mybatis依赖
注意事项:mybatis会自动引入jdbc所以无需加入spring-boot-starter-jdbc依赖 org.mybatis.spring.boot mybatis-spring-boot-starter 1.2.0
添加数据库配置信息
spring:datasource:url: jdbc:mysql://localhost:3306/testusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource
例
controller:@RestController @RequestMapping("/mybatis") public class MybatisController {@Autowiredprivate 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 MapreqMap){service.createUser(reqMap);}}service@Service public class MybatisService {@Autowiredprivate 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 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 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目录
INSERT INTO test.tp_user(tel,password,nickname,secret) VALUES (#{tel},md5(#{pwd}),#{tel},'') UPDATE test.tp_user SET nickname = #{nickName} WHERE user_id = #{userId} DELETE FROM test.tp_user WHERE tel = #{tel}
注意事项:使用以上方式1.需在application.yml中加入相应的配置信息mybatis:mapper-locations: classpath:mapper/*.xml2.启动类上加入扫描mybatis包的注解@MapperScan(basePackages = "com.java265.dao")