• SpringBoot如何集成Mybatis呢?


    转自:

    SpringBoot如何集成Mybatis呢?

    下文笔者讲述SpringBoot集成Mybatis的方法分享,如下所示

    Mybatis简介

    Mybatis是一个ORM框架
       ORM框架是我们操作数据库中不可缺少的一部分
    Mybatis框架可借助SQL将查询结果转换为ORM对象
       将对象插入至数据库中
    
    实现思路:
        1.引入mybatis starter器
        2.设置配置信息
        3.编写相应的脚本
    

    引入Mybatis依赖

    
    
        org.mybatis.spring.boot
        mybatis-spring-boot-starter
        1.2.0
    
    
    注意事项:
        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 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 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/*.xml
         2.启动类上加入扫描mybatis包的注解
            @MapperScan(basePackages = "com.java265.dao")
      
  • 相关阅读:
    基于ensp的园区网络搭建综合实验
    c语言数组该怎么去理解
    使用 CSS 的仿 GitHub 登录页面
    【linux驱动开发】-关于驱动学习你得知道的
    一图读懂k8s informer client-go
    Django-filter
    【算法练习】数组操作
    File类常用方法
    Clion下运行程序出现Executable is not specified
    如何在Android Termux上安装MySQL并实现公网远程访问?
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127975950