SpringBoot如何集成Mybatis呢?

书欣 SpringBoot 发布时间:2022-09-01 14:12:23 阅读数:2990 1
下文笔者讲述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")
  
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202209/4292.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者