当前位置:   article > 正文

spring boot+mysql的增删改查_用springboot写一个mysql怎么写一个增删改查的接口

用springboot写一个mysql怎么写一个增删改查的接口

软件使用的是idea  不是eclipse!!!!!!!!!

有错误欢迎指出

0.创建一个目标数据库或直接使用已有数据库

1.首先创造新工程;

2.修改Pom文件,添加所需的依赖;

3.修改resources中的application.properties配置文件或者创造application.yml配置文件;

(如:端口号,连接数据库,项目路径(可加可不加)等)

4.新建一个DO实体类将数据库中各类的数据信息添加进去(例如id、name这种);

(实体类中的类型和数据需要和数据库中一一对应)

5.新建一个Dao接口,然后编写xml,写接口,调用方法等;

  1. package 包名;
  2. @Mapper//给mapper接口自动生成一个实现类
  3. public interface UserDao {
  4. void add(UserDO userDO);//增
  5. void delect(UserDO userDO);//删
  6. UserDO getById(String id);//根据id查询
  7. void edit(UserDO userDO);//改
  8. List<UserDO> page(UserDO userDO);//分页

(下面的XML模板仅供参考,头文件那个我实在忘记了)

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="Dao所在位置全名">
  6. <resultMap id="实体类名称+ResultMap" type="实体类所在位置">
  7. <id property="数据库中主键名称" column="数据库中主键的名称"/>
  8. <result property="数据库中各字段名称" column="数据库中各字段名的名称"/>
  9. <result property="数据库中各字段名称" column="数据库中各字段名的名称"/>
  10. <result property="数据库中各字段名称" column="数据库中各字段名的名称"/>
  11. ##有几个写几个,也可以直接映射
  12. </resultMap>
  13. <insert id="Dao接口中“增”方法的全名" parameterType="Stirng">
  14. INSERT INTO 数据库名 (数据库中所有字段名) VALUES (
  15. ##{所有字段名格式为#{}用“,”英文逗号分隔顺序要和数据库中的顺序对应,否则查询错误},
  16. )
  17. </insert>
  18. <delete id="Dao接口中删除方法的名称" parameterType="实体类所在位置的全称">
  19. delete from 数据库名 where 数据库中主键名称=#{主键}
  20. </delete>
  21. <select id="Dao接口中查询方法的全名" resultMap="实体类名称+ResultMap" parameterType="实体类所在位置的全称">
  22. select * from 数据表名 where 数据库中主键名称 = #{主键}
  23. </select>
  24. <update id="Dao接口中改方法的全名" parameterType="实体类所在位置的全称">
  25. UPDATE 数据库名
  26. <set>
  27. <if test="工程中代指字段名的名称 != null and 工程中代指字段名的名称 != ''">
  28. 数据库中字段名的名称 = #{工程中代指字段名的名称},
  29. ##这是String类型用来去空字符串和null的判断方法
  30. </if>
  31. <if test="工程中代指字段名的名称 != null">
  32. 数据库中字段名的名称 = #{工程中代指字段名的名称},
  33. ##除了String以外的
  34. </if>
  35. ##写完所有需要更改的字段名,上述逻辑语句的意思是判断是否为空或者为空字符串
  36. </set>
  37. WHERE 主键 = #{主键}
  38. </update>
  39. <select id="Dao接口中分页方法全名" resultMap="实体类名称+ResultMap" parameterType="实体类所在位置的全称">
  40. SELECT
  41. 数据库中各字段名的名称(写完写全,逗号分离
  42. from 数据库名
  43. <where>
  44. <if test="工程中代指字段名的名称 != null and 工程中代指字段名的名称 != ''">
  45. <![CDATA[ and 数据库中字段名的名称 like concat('%', #{工程中代指字段名的名称},'%')]]>
  46. ##模糊查询语句
  47. </if>
  48. <if test="工程中代指字段名的名称 != null and 工程中代指字段名的名称 != ''">
  49. and 数据库中字段名的名称 = #{工程中代指字段名的名称}
  50. ##准确查询
  51. </if>
  52. </where>
  53. order by create_time desc
  54. ## 根据创建时间(create_time)倒叙查询(可自定义)
  55. </select>
  56. </mapper>

(定义方法)

6.新建service服务层;

(对所需前端返回的数据,新建多个类,放置)例如add、edit、request、response等

  1. package 包名;
  2. @Service//服务层注解
  3. //主事务类型
  4. @Transactional(value = "masterTransactionManager", propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
  5. public class UserService {
  6. @Autowired//自动注入
  7. private UserDao userDao;
  8. //根据id查询
  9. public UserDO getById(String id) {
  10. UserDO result = userDao.getById(id);
  11. return result;
  12. }
  13. //增加
  14. public UserDO add(UserAdd userAdd) throws Exception {
  15. UserDO = new UserDO();
  16. BeanUtils.copyProperties(userAdd, userDO);
  17. //雪花算法获取id
  18. long id = SpringContextUtils.getContext().getBean(SnowFlakeUtils.class).nextId();
  19. userDO.setId(String.valueOf(id));
  20. userDao.add(userDO);
  21. return userDO ;
  22. }
  23. //改
  24. public UserDO edit(UserEdit userEdit) throws Exception {
  25. UserDO userDO = new UserDO();
  26. BeanUtils.copyProperties(userEdit, userDO);
  27. userDao.edit(userDO);
  28. return userDO ;
  29. }
  30. //删
  31. public Long delete(String id) throws Exception {
  32. userDao.delete(id);
  33. return null;
  34. }
  35. //分页
  36. public Page<UserResponse> page(PageQuery<UserRequest> page) {
  37. UserDO bean = new UserDO();
  38. page.check();// 检查分页参数,并设置分页条件
  39. BeanUtils.copyProperties(null == page.getQueryBean() ? new UserRequest() : page.getQueryBean(), bean);
  40. PageHelper.startPage(page.getCurrentPage(), page.getPageSize(), page.getOrderBy());
  41. // 查询
  42. List<UserDO> doList = userDao.page(bean);
  43. int total = userDao.total(bean);
  44. // 构造返回结果
  45. List<UserResponse> dtoList = ConvertUtils.copyList(doList, UserResponse.class);
  46. dtoList.forEach(userResponse -> {
  47. List<RoleDO> roleDOList = roleDao.getRoleByUserId(userResponse.getId());
  48. userResponse.setRoleList(ConvertUtils.copyList(roleDOList, RoleResponse.class));
  49. });
  50. Page<UserResponse> pageData = new Page<>(page.getCurrentPage(), page.getPageSize(), total);
  51. pageData.setList(dtoList);
  52. return pageData;
  53. }
  54. }
  55. }

7.新建controller控制层;

  1. package 包名;
  2. @Api(value = "userController", tags = {"用户控制层"})
  3. @RequestMapping("user")
  4. @RestController
  5. @Slf4j
  6. public class UserController {
  7. @Autowired
  8. private UserService userService;
  9. @ApiOperation(value = "添加用户")
  10. @PostMapping(value = "add")
  11. public RestResponse<Long> add(@Valid @RequestBody UserAdd userAdd) throws Exception {
  12. return RestResponse.ok(userService.add(userAdd));
  13. }
  14. @ApiOperation(value = "编辑")
  15. @PostMapping(value = "edit")
  16. public RestResponse<Long> edit(@Valid @RequestBody UserEdit UserEdit) throws Exception {
  17. return RestResponse.ok(userService.edit(UserEdit));
  18. }
  19. @ApiOperation(value = "删除用户色")
  20. @PostMapping(value = "delete")
  21. public RestResponse<Long> delete(@ApiParam(value = "主键", required = true) @RequestParam(value = "id", required = true) String id) throws Exception {
  22. return RestResponse.ok(userService.delete(id));
  23. }
  24. @ApiOperation(value = "详情")
  25. @GetMapping(value = "getById")
  26. public RestResponse<UserResponse> getById(@ApiParam(value = "主键", required = true) @RequestParam(value = "id", required = true) String id) {
  27. UserResponse userResponse = new UserResponse();
  28. UserDO userDO = userService.getById(id);
  29. Optional.ofNullable(userDO)
  30. .ifPresent(bean -> {
  31. BeanUtils.copyProperties(userDO, userResponse);
  32. });
  33. return RestResponse.ok(userResponse);
  34. }
  35. }

(调用方法)

8.运行测试文件Application

9.打开postman或者网页等其他测试接口软件,进行对数据库的增删改查。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/576601
推荐阅读
相关标签
  

闽ICP备14008679号