上一节使用springboot框架搭建了项目,并创建了数据库user表,接下来集成mybatis对用户表实现增删改查操作~~~~
目录
SpringBootApplication.java
创建model/entity文件夹,存放实体类
UserDao.java
UserController.java
浏览器Json插件:JSONview
postman测试接口:
postman下载
springboot集成mybatis逻辑顺序如下:
编写数据库文件--> 引入pom文件(mybatis依赖实现数据查询)--> 配置application.properties -->添加用户的实体类(entity/model)--> 添加Dao接口(数据接口访问层)【对应dao(或mapper)文件下数据持久层的接口】--> 添加mapper文件【resource下创建】(eg:UserMapper.xml)编写查询语句sql --> 添加Service服务层 --> 添加Controller控制层
对应项目结构如下:
SpringBootApplication.java
package com.smx.graproject;
// alt+shift+o 去除无用包
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class GraProjectApplication {
public static void main(String[] args) {
SpringApplication.run(GraProjectApplication.class, args);
}
}
创建model/entity文件夹,存放实体类
User.java
package com.smx.graproject.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 用户:管理员、学生、教师
*/
@Data // 使用@Data注解,来自于 lombok,就不用写getter,toString,setter方法等代码
public class User {
// ID
private Integer id;
// 用户名
private String username;
// 密码
private String password;
// 昵称
private String nickname;
// 邮箱
private String email;
// 手机
private String phone;
// 地址
private String address;
// 照片
private String photo;
// 角色 >> 0:管理员 1:教师 2:学生
private int role;
// 最后修改时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastUpdate;
}
注意,由于我们引入了lombok中的data注解,便不用写getter,toString,setter方法等代码
UserDao.java
// 用于与数据库交互,写类似于MySQL的查询语句,得到相应查询结果
package com.smx.graproject.dao;
// 用于与数据库交互
import com.smx.graproject.model.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserDao {
@Select("select * from sys_user")
List<User> findAll();
@Insert("INSERT INTO sys_user(username,password,nickname,email,phone,address,role) " +
"VALUES (#{username},#{password},#{nickname},#{email},#{phone},#{address},#{role})")
Integer insert(User user);
}
UserController.java
@RequestBody 用来接收前端传递给后端的json字符串中的数据的 (请求体中的数据的)
package com.smx.graproject.controller;
import com.smx.graproject.dao.UserDao;
import com.smx.graproject.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserDao userDao;
@PostMapping
public Integer insertUser(@RequestBody User user) {
return userDao.insertUser(user);
}
@GetMapping
public List<User> index() {
return userDao.findAll();
}
}
数据库查询语句效果:
启动或debug查看运行效果:
浏览器Json插件:JSONview
可以根据需求安装插件,方便数据查看。谷歌浏览器中我使用的是Awesome JSON Viewer。
可在博主博客内容的资源下进行下载,安装!!!
(11条消息) AwesomeJSONViewerChrome扩展程序,用于可视化JSON响应并引入JSON美化体验资源-CSDN文库
postman测试接口:
postman下载
https://app.getpostman.com/app/download/win64
当返回数据结果为1时证明上传成功,否则会进行报错,可根据提示进行修改
同样,可返回MySQL,查看表中信息是否获取到。
此时,上面皆为静态sql,如果更新某一项参数的数据,则整条记录的数据都会更新。
显然,我们需要的是修改部分数据,因此写动态sql。
下节将介绍如何编写动态sql语句,敬请期待~~~