SpringBoot如何集成Mybatis呢?

转自:

SpringBoot如何集成Mybatis呢?

下文笔者讲述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")
  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值