SpringBoot 整合 Mybatis

SpringBoot 整合 Mybatis

  1. 创建项目,创建时引入相应模块

    • Web
      • Spring Web
    • SQL
      • JDBC API
      • MySQL Driver
  2. 导入 mybatis 所需要的依赖

    <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.2</version>
    </dependency>
  3. 配置数据库连接信息

    spring:
      datasource:
        username: root
        password: 123456
        url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        driver-class-name: com.mysql.cj.jdbc.Driver
    
  4. 测试数据库是否连接成功

    @Autowired
    DataSource dataSource;
    
    @Test
    void contextLoads() {
    
        System.out.println(dataSource.getClass());
    }

    测试成功!

  5. 创建实体类(这里使用了Lombok,需要导入依赖)

    package com.cheng.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
        private int id;
        private String name;
        private String pwd;
    }
  6. 创建实体类目录及对应的 Mapper 接口

    package com.cheng.mapper;
    
    import com.cheng.pojo.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Mapper
    @Repository
    public interface UserMapper {
    
        // 获取所有用户信息
        List<User> selectAllUser();
    
        // 添加用户
        int addUser(User user);
    
        // 通过 id 获取用户
        User getUserById(int id);
    
        // 修改用户
        int updateUser(User user);
    
        // 删除用户
        int deleteUser(int id);
    }
  7. 创建 mapper 映射文件

    • resources
      • mybatis
        • mapper
          • UserMapper.xml

    mybatis 官方中文文档地址:https://mybatis.org/mybatis-3/zh/index.html

    <?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.cheng.mapper.UserMapper">
    
        <select id="selectAllUser" resultType="User">
            select * from mybatis.user;
        </select>
    
        <insert id="addUser" parameterType="User">
            insert into mybatis.user(id, name, pwd) values (#{id}, #{name}, #{pwd});
        </insert>
    
        <select id="getUserById" resultType="User">
            select * from mybatis.user where id = #{id};
        </select>
    
        <update id="updateUser" parameterType="User">
            update mybatis.user set  name=#{name}, pwd=#{pwd} where id=#{id};
        </update>
    
        <delete id="deleteUser" parameterType="int">
            delete from mybatis.user where id=#{id};
        </delete>
    </mapper>
  8. mybatis 配置

    application.yml

    spring:
      datasource:
        username: root
        password: 123456
        url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
        driver-class-name: com.mysql.cj.jdbc.Driver
      http:
        # 解决页面输出乱码问题
        encoding:
          force: true
          charset: utf-8
          enabled: true    
    server:
      tomcat:
        uri-encoding: UTF-8
    
    # 整合 mybatis
    mybatis:
      type-aliases-package: com.cheng.pojo
      mapper-locations: classpath:mybatis/mapper/*.xml
    
  9. 编写用户的 UserController 进行测试

    注:这里因为是测试,所以省略了 service 层

    package com.cheng.controller;
    
    import com.cheng.mapper.UserMapper;
    import com.cheng.pojo.User;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    @RestController
    public class UserController {
    
        @Autowired
        private UserMapper userMapper;
    
        @GetMapping("/selectAllUser")
        public List<User> selectAllUser() {
            List<User> userList = userMapper.selectAllUser();
            for (User user : userList) {
                System.out.println(user);
            }
            return userList;
        }
    
        @RequestMapping("/addUser")
        public int addUser() {
          return   userMapper.addUser(new User(9, "法外狂徒张三", "123456"));
        }
    
        @RequestMapping("/getUserById")
        public User getUserById() {
            User user = userMapper.getUserById(9);
            System.out.println(user);
            return user;
        }
    
        @RequestMapping("/updateUser")
        public int updateUser() {
            return userMapper.updateUser(new User(9, "五好青年张三", "000000"));
        }
    
        @RequestMapping("/deleteUser")
        public int deleteUser() {
            return userMapper.deleteUser(9);
        }
    }
  10. 启动项目,运行测试即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值