• 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")
      
  • 相关阅读:
    mac菜单栏无法显示cla*sh*x
    java获取kafka topic
    洛谷刷题笔记 确定进制
    CloudCompare&PCL 点云添加高斯噪声
    玩转gRPC—深入概念与原理
    arm-none-eabi-gcc编译RT-Thread nano STM32F429工程出现的问题
    高效的工单管理系统具备哪些特点?“的修”工单系统对民宿运营管理有什么好处?
    【技巧】Windows 下安装 ES 报错:Permission denied
    Appium自动化测试基础 — ADB常用命令(二)
    安徽京准-NTP网络授时服务器助力助力甘南州公共资源交易
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/127975950