0
点赞
收藏
分享

微信扫一扫

SpringBoot2快速入门06--mybatis

一叶轻舟okok 2021-09-24 阅读 92

本节讲解boot整合mybatis,现在sm是很流行的轻量级微服务框架,mybatis也很灵活,既可以通过xml配置,也可以通过注解编写sql,不像jpa需要控制整张表(有些情况下,不会让你知道整个表的结构)。

首先,导入需要的包,如下:

compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')

接着,通过工具生成xml(这里不介绍,只是写了简单xml展示),xml中编写两个方法insert和update,如下:

<?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.iti.chapter06.mapper.UserMapper">

    <insert id="insert" parameterType="com.iti.chapter06.entity.User">
          INSERT INTO `t_user`(`name`,`age`) VALUES (#{name},#{age})
    </insert>

    <update id="update" parameterType="com.iti.chapter06.entity.User">
      update t_user
    set name = #{name,jdbcType=VARCHAR},
      age = #{age,jdbcType=BIGINT}
    where id = #{id,jdbcType=BIGINT}
    </update>
</mapper>

注意,namespace一定要与类名一致,id对应mapper中的方法名,parameterType对应实体名。

接着编写Mapper,其实是一个接口,如下:

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM t_user")
    List<User> findAll();

    @Select("SELECT * FROM t_user WHERE id = #{id}")
    User findById(@Param("id") Long id);

    @Delete("Delete FROM t_user WHERE id = #{id}")
    int deleteById(@Param("id") Long id);

    int insert(User user);
    int update(User user);

这里使用了2种方式,一种是注解,一种是xml,若是复杂的sql还是建议使用xml方式。
也可以在启动类上加@MapperScan代替这里的@Mapper

User就是一个简单的vo对象,这里略过。

下面编写controller,这个就简单多了,如下:

@Autowired
    private UserMapper userMapper;

    @GetMapping
    public List<User> queryUsers() {
        return userMapper.findAll();
    }

    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userMapper.findById(id);
    }

    @DeleteMapping("/{id}")
    public void delUser(@PathVariable Long id) {
        userMapper.deleteById(id);
    }

    @PostMapping
    public Integer addUser(@RequestBody User user) {
        return userMapper.insert(user);
    }

    @PutMapping("/{id}")
    public Integer editUser(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        return userMapper.update(user);
    }

用postman测试下接口即可。

举报

相关推荐

0 条评论