IDEA使用springboot+mybatis实现增删改查(CRUD)功能
IDEA使用springboot+mybatis实现增删改查(CRUD)功能
1. 创建springboot项目
File --> New -->Projiect
next后选择下面这几个本次需要用到的依赖
项目创建完毕,pom文件中是我们需要的依赖,如果想要加入其他依赖可以自己去maven仓库找,再copy到pom文件中刷新一下maven就可以用了
maven仓库地址:https://mvnrepository.com/
创建springboot web项目的基本架构controller(控制层),service(服务层),entity(存放实体类),dao(数据链路层),具体使用方法后面会说。
完成CRUD接口基本流程是entity-->dao-->service-->controller
配置数据库
连接数据库
在resource文件下的application.properties 文件中配置:
# 应用名称 创建的项目名称 spring.application.name=demo_crud # 应用服务 WEB 访问端口号 server.port=8080 # 数据库驱动: spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # 数据源名称 spring.datasource.name=defaultDataSource # 数据库连接地址 test是自己的数据库名称 spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
# 数据库用户名和密码: spring.datasource.username=root spring.datasource.password=root #下面这些内容是为了让MyBatis映射 #指定Mybatis的Mapper文件 mybatis.mapper-locations=classpath:mybatis/*.xml
2.编写CRUD代码
创建entity实体
在entity文件下创建User实体类,添加它的属性,属性需要与数据库中的信息一致
package com.example.demo_crud.entity; public class User { /* * 用户属性 * */ public Integer id; public String username; public String password; }
mapper数据访问层(实现对数据库的访问)
在dao文件下创建一个UserMapper接口(注意是interface不是class),这个mapper接口是用来写sql语句与数据库进行交互的
然后在UserMapper里定义了几个我想要实现的方法
package com.example.demo_crud.mapper; import com.example.demo_crud.entity.User; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; import java.util.List; @Mapper @Repository public interface UserMapper { // 查询数据库中所有信息 List<User> getAll(); // 根据ID查询其中一条数据 User getUserById(int id); // 根据ID删除数据库中信息 boolean deleteById(int id); // 增加一条数据 boolean insert(User user); // 改变数据库中一条数据 boolean updateById(int id); }
在resource文件下创建一个mybatis文件,再在mybatis文件下创建一个UserMapper.xml格式的文件,我们要在这个UserMapper.xml文件里写入SQL语句
<?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.demo_crud.dao.UserMapper"> <!--getAll 查询所有数据--> <select id="getAll" resultType="com.example.demo_crud.entity.User"> select * from user </select> <!--getUserById 根据ID查询数据--> <select id="getUserById" resultType="com.example.demo_crud.entity.User"> select * from user where id=#{id} </select> <!--deleteById 根据ID删除一条数据--> <delete id="deleteById" parameterType="com.example.demo_crud.entity.User"> delete from user where id = #{id} </delete> <!--insert 增加一条数据--> <insert id="insert" parameterType="com.example.demo_crud.entity.User"> insert into user (id,username,password) values(#{id},#{username},#{password}) </insert> <!--update 根据ID改变一条数据--> <update id="updateById" parameterType="com.example.demo_crud.entity.User"> update user set username=#{username},password=#{password} where id = #{id} </update> </mapper>
Service服务层(处理业务逻辑)
主要用于编写业务逻辑:在service下创建UserService,编写服务层的业务逻辑
package com.example.demo_crud.service; import com.example.demo_crud.mapper.UserMapper; import com.example.demo_crud.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserService { @Autowired UserMapper userMapper; // 查询数据库中所有信息 public List<User> getAll(){ return userMapper.getAll(); } // 根据ID查询其中一条数据 public User getUserById(int id){ return userMapper.getUserById(id); } // 根据ID删除数据库中信息 public boolean deleteById(int id){ // 用于判断sql语句是否执行 boolean flag = false; try{ userMapper.deleteById(id); flag = true; }catch (Exception e){ e.printStackTrace(); } return flag; } // 增加一条数据 public boolean insert(User user){ boolean flag = false; try { userMapper.insert(user); flag = true; }catch (Exception e){ e.printStackTrace(); } return flag; } // 改变数据库中一条数据 public boolean updateById(int id){ boolean flag = false; try { userMapper.updateById(id); flag = true; }catch (Exception e){ e.printStackTrace(); } return flag; } }
contrlooer控制层(前后端交互,数据处理)
在controller文件下创建UserController
package com.example.demo_crud.controller; import com.example.demo_crud.entity.User; import com.example.demo_crud.service.UserService; import javafx.css.Styleable; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController public class UserController { @Autowired UserService userService; // 查询数据库中所有信息 @GetMapping("/getAll") @ResponseBody public List<User> getAll() { return userService.getAll(); } //根据ID查询其中一条数据 @GetMapping("/getUserById") @ResponseBody public User getUserById(int id) { return userService.getUserById(id); } // 根据ID删除数据库中信息 @GetMapping("/deleteById") @ResponseBody public boolean deleteById(int id){ return userService.deleteById(id); } // 增加一条数据 @GetMapping("/insert") @ResponseBody public boolean insert(User user){ return userService.insert(user); } //改变数据库中一条数据 @GetMapping("/updateById") @ResponseBody public boolean updateById(int id){ return userService.updateById(id); } }
接口测试
这里我们的增删改查就基本完成了,接下来是接口测试,我用的Swagger , 没用过的话可以看看我的另外一篇Springboot集成Swagger的文章。也可以直接在路由上访问自己写的接口。
更多推荐
所有评论(0)