SpringBoot整合Mybatis

111 阅读1分钟

1 导入依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

2 项目配置

#数据库配置 根据自己数据库username和password修改
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/need?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#整合mybatis
mybatis.type-aliases-package=com.jkj.need.entity  #给pojo实体类起别名
 #接口的配置文件的位置 我这里接口配置文件是UserMapper.xml 如下图所示
mybatis.mapper-locations= classpath:mapper/*.xml
#数据库字段和属性字段驼峰映射
mybatis.configuration.mapUnderscoreToCamelCase=true

错误注意

@RestController
@Validated
@RequestMapping("/user")
public class UserController {

    @PostMapping("/add")
    public void  addUser(@Valid @RequestBody User user){
        System.out.println(user);
        return;
    }

    @GetMapping("/search")
    public void  searchUser(@Valid @Min(value = 1,message = "超过 id 的范围了")  int userId){
        System.out.println(userId);
        return;
    }
}

@RestController("")内的值不是路径,需要@RequestMapping("/user") 否则404报错

3 用户信息的增删查改

image.png

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private int id;
    @NotBlank
    private String account;
    @NotBlank
    private String username;
    @NotBlank
    private String password;
    private int isDelete;

}

mybatis sql xml格式

<?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="">
    
</mapper>
@Mapper
public interface UserMapper {
     int addUser(User user);
     User searchUserById(int userId);
     int searchUserByAccountOrUsername(String username,String account);
     int updateUser(String username,String password,int userId);
     int delete(int delete,int userId);
}
<?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.jkj.need.mapper.UserMapper">
    <insert id="addUser" useGeneratedKeys="true" keyProperty="id" parameterType="User">
        insert into user(username,account,password) values (#{username},#{account},#{password});
    </insert>

    <select id="searchUserById" resultType="User">
        select * from  user where id=#{userId}
    </select>

    <select id="searchUserByAccountOrUsername" resultType="int">
        select id from  user
        <where>
            <if test="username!=null and username!='' ">
                username=#{username}
            </if>
            <if test="account!=null and account!='' ">
               or account=#{account}
            </if>
        </where>
    </select>

    <update id="updateUser">
        update user
        <set>
            <if test="username!=null and username!='' ">
                username=#{username},
            </if>
            <if test="password!=null and password!='' ">
                password=#{password}
            </if>
        </set>
        where id=#{userId}
    </update>

    <update id="delete">
        update user set is_delete=#{delete} where id=#{userId}
    </update>
</mapper>