0
点赞
收藏
分享

微信扫一扫

SpringBoot2快速入门06--mybatis

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

本节讲解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 条评论