续上篇,补充数据库增删改查的其他场景。

一、Mapper中添加其他场景操作

  1. package net.Eleven.demo.Mapper;
  2.  
  3. import net.Eleven.demo.domain.UserNew;
  4. import org.apache.ibatis.annotations.*;
  5.  
  6. import java.util.List;
  7.  
  8. /**
  9. * 功能描述:访问数据库的接口,相当于dao层
  10. * @author Eleven
  11. */
  12.  
  13. public interface UserMapper {
  14.  
  15. //推荐使用#{}取值,不要用${},因为存在注入的风险
  16.  
  17. /**
  18. * 向数据库插入一条数据
  19. * @param userNew
  20. * @return
  21. */
  22. @Insert("INSERT INTO user(name,phone,create_time,age) VALUES(#{name},#{phone},#{creatTime},#{age})")
  23. @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id") //keyProperty java对象的属性;keyColumn表示数据库的字段
  24. int insert(UserNew userNew);
  25.  
  26. /**
  27. * 查找全部,功能比较简单,也可以直接跳过service层,直接在controller注入mapper
  28. * @return
  29. */
  30. @Select("select * from user")
  31. @Results({@Result(column = "create-time",property = "createTime")})
  32. List<UserNew> getAllUser();
  33.  
  34. /**
  35. * 根据id查询,返回的是一个user对象
  36. * @param id
  37. * @return
  38. */
  39. @Select("select * from user where id=#{id}")
  40. @Results({@Result(column = "create-time",property = "createTime")})
  41. UserNew findById(int id);
  42.  
  43. /**
  44. * 根据id更新对象的name
  45. * @param userNew
  46. */
  47. @Update("update user set name=#{name} where id=#{id}")
  48. void updateById(UserNew userNew);
  49.  
  50. /**
  51. * 根据id,删除一个对象
  52. */
  53. @Delete("delete from user where id =#{id}")
  54. void deleteById(int id);
  55.  
  56. }

二、impl文件中增加对应的调用mapper的方法

  1. package net.Eleven.demo.Service.impl;
  2.  
  3. import net.Eleven.demo.Mapper.UserMapper;
  4. import net.Eleven.demo.Service.UserService;
  5. import net.Eleven.demo.domain.UserNew;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8.  
  9. import javax.validation.constraints.Null;
  10. import java.util.List;
  11.  
  12. @Service
  13. public class UserServiceImpl implements UserService {
  14. @Autowired
  15. private UserMapper userMapper;
  16.  
  17. @Override
  18. public int add(UserNew userNew) {
  19. userMapper.insert(userNew);
  20. int id = userNew.getId();
  21. return id;
  22. }
  23.  
  24. //查找所有,对应mapper的getAlluser
  25. public Object findAll(){
  26. return userMapper.getAllUser();
  27. }
  28.  
  29. //根据id查找,对应mapper的findById
  30. public Object findById(int id){
  31. return userMapper.findById(id);
  32. }
  33.  
  34. //更新一个对象
  35. public void updateById(UserNew userNew){
  36. userMapper.updateById(userNew);
  37. }
  38.  
  39. //删除一个对象
  40. public void deleteById(int id){
  41. userMapper.deleteById(id);
  42. }
  43. }

三、controller中增加对应的request请求,通过注入,调用impl的方法,继而执行数据库命令。

  1. package net.Eleven.demo.controller;
  2.  
  3. import net.Eleven.demo.Service.UserService;
  4. import net.Eleven.demo.Service.impl.UserServiceImpl;
  5. import net.Eleven.demo.domain.JsonData;
  6. import net.Eleven.demo.domain.UserNew;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.GetMapping;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RestController;
  11.  
  12. import java.util.Date;
  13.  
  14. @RestController
  15. @RequestMapping("/api/sql/user")
  16. public class UserController {
  17. @Autowired
  18. private UserService userService;
  19. @Autowired
  20. private UserServiceImpl userServiceImpl;
  21. @GetMapping("add")
  22. public Object userAdd(){
  23. UserNew userNew = new UserNew();
  24. userNew.setAge(11);
  25. userNew.setCreatTime(new Date());
  26. userNew.setName("Eleven");
  27. userNew.setPhone("18211111111");
  28. int id = userService.add(userNew);
  29. return JsonData.buildSuccess(id);
  30. }
  31.  
  32. //查找全部
  33. @GetMapping("find_all")
  34. public Object findAll(){
  35. return JsonData.buildSuccess(userServiceImpl.findAll());
  36. }
  37.  
  38. //根据id查找对象
  39. @GetMapping("find_by_id")
  40. public Object findById(int id){
  41. return JsonData.buildSuccess(userServiceImpl.findById(id));
  42. }
  43.  
  44. //根据id更新对象的name
  45. @GetMapping("update_by_id")
  46. public Object updateById(String name,int id){
  47. UserNew userNew = new UserNew();
  48. userNew.setName(name);
  49. userNew.setId(id);
  50. userServiceImpl.updateById(userNew);
  51. return JsonData.buildSuccess();
  52. }
  53.  
  54. //根据id删除对象
  55. @GetMapping("delete_by_id")
  56. public Object deleteById(int id){
  57. userServiceImpl.deleteById(id);
  58.  
  59. }
  60.  
  61. }

四、执行结果

Spring Boot 知识笔记(整合Mybatis续-补充增删改查)的更多相关文章

  1. spring boot整合mybatis框架及增删改查(jsp视图)

    工具:idea.SQLyog 版本:springboot1.5.9版本.mysql5.1.62 第一步:新建项目 第二步:整合依赖(pom.xml) <dependencies> < ...

  2. Spring Boot 使用Mybatis注解开发增删改查

    使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...

  3. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  4. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  5. MyBatis -- 对表进行增删改查(基于注解的实现)

    1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1  首先须要定义映射sql的 ...

  6. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  7. SpringBoot 源码解析 (九)----- Spring Boot的核心能力 - 整合Mybatis

    本篇我们在SpringBoot中整合Mybatis这个orm框架,毕竟分析一下其自动配置的源码,我们先来回顾一下以前Spring中是如何整合Mybatis的,大家可以看看我这篇文章Mybaits 源码 ...

  8. spring boot 1.4 整合 mybatis druid

    http://www.jianshu.com/p/cef49ad91ba9spring boot 1.4 整合 mybatis druid

  9. SSH(Struts 2.3.31 + Spring 4.1.6 + Hibernate 5.0.12 + Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)

    软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...

随机推荐

  1. Java & Android未捕获异常处理机制

    一.背景 无论是Java还是Android项目,往往都会用到多线程.不管是主线程还是子线程,在运行过程中,都有可能出现未捕获异常.未捕获异常中含有详细的异常信息堆栈,可以很方便的去帮助我们排查问题. ...

  2. Android 支持库迁移到AndroidX

    一.背景 Android系统版本在不断更新,从最初的Android 1.0到现在Google和各大手机厂商正在推的Android 10,平均下来每个年头都有一个大的版本更新.但用户正在用的手机上的An ...

  3. 2019-11-29-VisualStudio-好用插件集合

    原文:2019-11-29-VisualStudio-好用插件集合 title author date CreateTime categories VisualStudio 好用插件集合 lindex ...

  4. sql 简单分页查询(ror_number() over)

    SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (ORDER BY ID DESC ) AS r_num FROM (select * from #table ...

  5. C# 文件监听类 FileSystemWatcher 属性

    属性: Path——这个属性告诉FileSystemWatcher它需要监控哪条路径.例如,如果我们将这个属性设为“C:Temp”,对象就监控那个目录发生的所有改变.IncludeSubDirecto ...

  6. [Vscode插件] 自动编译项目中的Sass文件为CSS

    插件名 : Live Sass Compiler 今天在VSCode中发现了一个自动watch项目目录下sass文件的插件,摆脱了在控制台中进行手动watch的繁琐. 安装好以后点击右下角即可自动编译 ...

  7. javascript中的12种循环遍历方法1

    1:for循环 let arr = [1,2,3]; for(let i =0;i<arr.length;i++){ console.log(i,arr[i]) } //for循环是js中最常用 ...

  8. Spark MLlib基本算法【相关性分析、卡方检验、总结器】

    一.相关性分析 1.简介 计算两个系列数据之间的相关性是统计中的常见操作.在spark.ml中提供了很多算法用来计算两两的相关性.目前支持的相关性算法是Pearson和Spearman.Correla ...

  9. Windows 2016 & Windows 10 中IIS安装和配置PHP的步骤

    Windows 2016 和 Windows 10 内核是相同的,我们首先需要安装 Internet Information Services (IIS),当然 Win2016 跟 Win10 安装  ...

  10. javascript之BOM对象(三其他对象)

    一.navigator对象 navigator使用来识别浏览器的,是所有支持javascript的浏览器所共有的.与BOM的其他对象不同,每个浏览器的navigator对象都有一套自己的属性. 常见的 ...