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>
用上面任意一种方式
在这里我实现了查询的方法你们可以试着去实现其他方法,大同小异。