SpringBoot整合Mybatis实现增删改查
文章目录
- SpringBoot整合Mybatis实现增删改查
- 前言
- 第一:创建MySQL数据库
- 第二:创建SpringBoot项目,引入需要的依赖包
- 第三:创建程序目录和配置核心application.xml文件
- 第四:依次编写Entity、Dao、Service、Controller层,还有创建mapper.xml文件
- 第五:测试结果(这里我用的postman来进行接口测试)
- 第六:总结
前言
第一:创建MySQL数据库
CREATE TABLE `user` (
`userId` bigint NOT NULL AUTO_INCREMENT,
`userName` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`userAddress` varchar(255) COLLATE utf8mb4_bin NOT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
第二:创建SpringBoot项目,引入需要的依赖包
以上是所需要的依赖包,如果忘记引入的,可以直接添加即可,不用再重新创建项目了
第三:创建程序目录和配置核心application.xml文件
server:
port: 8080 //本机的端口号
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/自己数据库的名称?useUnicode=true & characterEncoding=utf-8 &
useSSL=true & serverTimezone=Asia/Shanghai
username: root //数据库的用户名
password: xxxxxx //数据库的密码
mybatis:
mapper-locations: classpath:/Mapper/*.xml
type-aliases-package: com.example.test.Entity //这个是扫描到Entity实体包的路径,可根据自己的配置
配置好yml文件之后,我们去看右侧的Databases去看看能不能连接自己本地的MySQL数据库:
依次分别填,数据表名字(这里我们的表是user表),用户名和密码、还有数据库名
第四:依次编写Entity、Dao、Service、Controller层,还有创建mapper.xml文件
public class UserEntity {
private Integer userId;
private String userName;
private String userAddress;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
}
import com.example.test.Entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserDao {
List<UserEntity> queryLimit(Integer currentPage, Integer pageSize);
Integer addUser(UserEntity user);
Integer updateUser(UserEntity user);
Integer deleteUser(UserEntity user);
}
import com.example.test.Dao.UserDao;
import com.example.test.Entity.UserEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service("UserService")
public class UserService {
@Autowired
private UserDao userDao;
public List<UserEntity> queryLimit(Integer currentPage,Integer pageSzie){
return userDao.queryLimit(currentPage,pageSzie);
}
public Integer addUser(UserEntity user){
return userDao.addUser(user);
}
public Integer updateUser(UserEntity user){
return userDao.updateUser(user);
}
public Integer deleteUser(UserEntity user){
return userDao.deleteUser(user);
}
}
import com.example.test.Entity.UserEntity;
import com.example.test.Service.UserService;
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 UserService userService;
String message = "";
@RequestMapping("/queryLimit")
public List<UserEntity> queryLimit(@RequestParam("currentPage") Integer currentPage,@RequestParam("pageSize") Integer pageSize){
return userService.queryLimit(currentPage,pageSize);
}
@PostMapping("/addUser")
public String addUer(@RequestBody UserEntity user){
//用Mybatis执行insert语句的时候,插入成功会返回1,不成功则会抛出异常,捕获一下异常就好
try {
userService.addUser(user);
message = "增加用户成功";
}catch (Exception exception){
message = "增加用户异常";
}
return message;
}
@PutMapping("/updateUser")
public String updateUser(@RequestBody UserEntity user){
//Mybatis的更新操作成功返回1,用户不存在返回0,失败则抛异常
try {
message = userService.updateUser(user) == 1?"更新用户成功":"用户不存在,更新失败";
}catch (Exception exception){
message = "更新异常";
}
return message;
}
@DeleteMapping("/deleteUser")
public String deleteUser(@RequestBody UserEntity user){
//Mybatis的删除操作和更新返回值一样,成功返回1,用户不存在返回0,失败则抛异常
try {
message = userService.deleteUser(user) == 1?"删除用户成功":"用户不存在,删除失败";
}catch (Exception exception){
message = "删除异常";
}
return message;
}
}
<?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.test.Dao.UserDao">
<select id="queryLimit" resultType="UserEntity">
select * from user limit #{currentPage},#{pageSize};
</select>
<insert id="addUser" parameterType="UserEntity">
insert into user(userName,userAddress) values(#{userName},#{userAddress});
</insert>
<update id="updateUser" parameterType="UserEntity">
update user set userName=#{userName},userAddress=#{userAddress} where userId=#{userId};
</update>
<delete id="deleteUser" parameterType="UserEntity">
delete from user where userId=#{userId};
</delete>
</mapper>
数据库也能看到数据:
更新之后数据库数据为:
查看数据库数据已经删除: