springboot整合mybatis对数据库进行增删改查(xml文件方式)

1.引入依赖

参考地址

2.准备数据库

数据建表语句

这次用到news_users表

准备数据库连接池

# 应用名称
spring.application.name=springboot-data
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/newsmanagersystem?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=123456
# 应用服务 WEB 访问端口
server.port=8080

#指定全局配置文件位置
mybatis.config-location=classpath:mybatis/mybatis-config.xml
#指定sql映射文件的位置
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

 这里的和之前的配置多了2处配置,主要是为了让springboot项目找到我们的sql语句并且绑定到接口方法上

3.创建实体类

package com.example.springbootdata.bean;
import java.io.Serializable;


public class Users implements Serializable {

private static final long serialVersionUID=1L;

    //编号
    private Integer uid;

    private String uname;

    private String upwd;


    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }

    @Override
    public String toString() {
        return "Users{" +
        "uid=" + uid +
        ", uname=" + uname +
        ", upwd=" + upwd +
        "}";
    }
}

4.创建mapper层

package com.example.springbootdata.mapper;

import com.example.springbootdata.bean.Users;
import org.apache.ibatis.annotations.Mapper;

@Mapper
//@mapper
public interface UserMapper {
    /**
     * 通过用户id查询信息
     */
    public Users getUsersById(Integer id);
    public void insertUsers(Users users);
}

5.创建控制层

package com.example.springbootdata.controller;

import com.example.springbootdata.bean.Users;
import com.example.springbootdata.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @Autowired
    UserMapper userMapper;
    @GetMapping("/users/{id}")
    public Users getUsers(@PathVariable("id") Integer id){
        return userMapper.getUsersById(id);
    }
}

6.创建Usermapper.xml实现sql语句

注意路径位置

 这里的select便签下的id属性要和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.example.springbootdata.mapper.UserMapper">
<!--namespace是我们需要实现接口的全类名-->
<!--    我们需要实现的方法-->
<!--    public Users getUsersById(Integer id);-->
<!--    public void insertUsers(Users users);-->
<!--    实现查询-->
    <select id="getUsersById" resultType="com.example.springbootdata.bean.Users">
        select * from news_users where uid=#{id}
    </select>
    <insert id="insertUsers">
        insert into news_users(uname,upwd) value (#{uname},#{upwd})
    </insert>
</mapper>

7.测试

我们数据库的值

 打开浏览器测试

 我们发现upwd是空值因为数据库中的u_pwd和我们后台的upwd是不一致这里我们有2方式解决

1.将实体类Users中的属性明明一一对应

2.在mybatis-config.xml添加配置设置自动关联时允许按驼峰命名规则匹配(取消列名下划线设置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>

用上面任意一种方式

 在这里我实现了查询的方法你们可以试着去实现其他方法,大同小异。


版权声明:本文为weixin_53472653原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。