Spring Boot实现简单的增删改查

在pom.xml添加相应的依赖

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>2.1.3</version>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 前端使用thymeleaf来代替jsp -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
  </dependencies>

配置文件配置数据库等

#server
  server.port=80
  #项目名:server.servlet.context-path
  #spring dataSource
  spring.datasource.url=jdbc:mysql:///dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8
  spring.datasource.username=root
  spring.datasource.password=root
  mybatis.mapper-locations=classpath:/mapper/*/*.xml
  #spring log
  logging.level.com.cy=debug
  #spring thymeleaf(假如没有配置也会默认配置,在默认配置中prefix默认值为classpath:/templates/,后缀默认为.html)
  #不用重启服务器,网页就能刷新
  spring.thymeleaf.cache=false
  spring.thymeleaf.prefix=classpath:/templates/pages/
  spring.thymeleaf.suffix=.html

数据层添加相应注解实现sql语句(或者通过xml配置来实现)

数据层封装了商品信息,并提供get和set方法,为Goods类

1.查询所有数据

@Select("select * from tb_goods")
  List<Goods> findAll();

2.按照id删除数据

@Delete("delete from tb_goods where id=#{id}")
  int deleteById(Integer id);

3.修改数据

(1)修改数据首先要新建一个界面,按照id查找内容,并将查找到的内容显示到文本框内

@Select("select * from tb_goods where id=#{id}")
  Goods findById(Integer id);

(2)再添加查找的方法

@Update("update tb_goods set name=#{name},remark=# {remark},createdTime=now() where id=#{id}")
  int update(Goods goods);

4.新增数据

@Insert("insert into tb_goods(name,remark,createdTime) values (#{name},#{remark},now())")
  int add(Goods goods);

业务层提供对应接口方法和实现类

1.业务层接口

public interface GoodsService {
  List<Goods> findObject();
  int add(Goods goods);
  int update(Goods goods);
  Goods findById(Integer id);
}

2.业务层实现类

@Service
public class GoodsServiceImpl implements GoodsService {
  @Autowired
  private GoodsDao goodsDao;

  @Override
  public List<Goods> findObject() {
    long start=System.currentTimeMillis();
    List<Goods> list = goodsDao.findObjects();
    long end=System.currentTimeMillis();
    System.out.println("query time:"+(end-start));
    return list;
  }

  @Override
  public int add(Goods goods) {
    return goodsDao.add(goods);
  }

  @Override
  public int update(Goods goods) {
    return goodsDao.update(goods);
  }

  @Override
  public Goods findById(Integer id) {
    return goodsDao.findById(id);
  }

控制层写具体实现

1.跳转到首页并且查找所有商品

@RequestMapping("doGoodsUI")
  public String doGoodsUI(Model model) {
    List<Goods> list = goodsService.findObject();
    model.addAttribute("goods",list);
    return "goods";
    }

2.业务层实现类

@Service
public class GoodsServiceImpl implements GoodsService {
  @Autowired
  private GoodsDao goodsDao;

  @Override
  public List<Goods> findObject() {
    long start=System.currentTimeMillis();
    List<Goods> list = goodsDao.findObjects();
    long end=System.currentTimeMillis();
    System.out.println("query time:"+(end-start));
    return list;
  }

  @Override
  public int add(Goods goods) {
    return goodsDao.add(goods);
  }

  @Override
  public int update(Goods goods) {
    return goodsDao.update(goods);
  }

  @Override
  public Goods findById(Integer id) {
    return goodsDao.findById(id);
  }

控制层写具体实现

1.跳转到首页并且查找所有商品

@RequestMapping("doGoodsUI")
  public String doGoodsUI(Model model) {
    List<Goods> list = goodsService.findObject();
    model.addAttribute("goods",list);
    return "goods";
    }

2.删除商品

@RequestMapping("doDeleteById/{id}")
//  (@PathVariable Integer id)告诉服务器,id拿到的是从网页上同样叫id的数据
  public String dodeletebyId(@PathVariable Integer id){
    int delete = goodsDao.deleteById(id);
    //doGoodsUI前面没有加/的话,跳转的网址是替代了最后一个/后面的内容
    return "redirect:/goods/doGoodsUI";
  }

3.修改商品

(1)先将查找出来的商品显示在文本框中

@RequestMapping("doFindById/{id}")
  public String doFindByID(@PathVariable Integer id,Model model){
    Goods goods = goodsService.findById(id);
    model.addAttribute("goods",goods);
    return "goods-update";
  }

(2)实现修改

@RequestMapping("doUpdateGoods")
  public String doUpdateGoods(Goods goods){
     goodsService.update(goods);
    return "redirect:/goods/doGoodsUI";
  }

4.新增商品

@RequestMapping("doSaveGoods")
  public String doSaveGoods(Goods goods){
    goodsService.add(goods);
    return "redirect:/goods/doGoodsUI";
  }

前端采用html+thymeleaf模板代替jsp

1.thymeleaf的语法参考: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#link-urls

2.each表示遍历拿到的数组,goods是从控制层拿到的model的名字

3.id,name和remark与数据库对应,date要格式化拿到数据,该语法是thymeleaf固定写法

<tr th:each="g:${goods}">
    <td th:text="${g.id}">1</td>
    <td th:text="${g.name}">AAAAAAA</td>
    <td th:text="${g.remark}">aa</td>
    <td th:text="${#dates.format(g.createdTime,'yyyy-MM-dd HH:mm')}">aa</td>
<!--    <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" th:href="@{/goods/doDeleteById(id=${g.id})}" rel="external nofollow" ><button>删除</button></a></td>-->
    <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" th:href="@{/goods/doDeleteById/{doDeleteById}(doDeleteById=${g.id})}" rel="external nofollow" ><button>删除</button></a></td>
    <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" th:href="@{/goods/doFindById/{id}(id=${g.id})}" rel="external nofollow" ><button>修改</button></a></td>
</tr>

4.新增商品界面

(1)标签里的name属性要和sql语句一致

(2)这里由于数据库中的id列设置了自增长,所以不需要id属性,createdTime列使用了now()获取当前时间,所以也不需要传值,所以在控制层的doUpdateGoods方法里可以使用封装好的Goods来接收从html拿到的参数

<form th:action="@{/goods/doSaveGoods}" method="post">
  <ul>
    <li>name:<input type="text" name="name"></li>
    <li>remark:<textarea rows="3" cols="20" name="remark"></textarea></li>
    <li><input type="submit" value="Save Goods"></li>
  </ul>
</form>

5.修改商品界面

(1)因为id列自增长,所以修改商品信息不需要id这一列,但传参数有需要一起传送过去,所以添加了一个输入框,默认设置为隐藏,将其value设置为id的值

<form th:action="@{/goods/doUpdateGoods}" method="post">
  <input type="hidden" name="id" th:value="${goods.id}">
  <ul>
    <li>name:<input type="text" name="name" th:value="${goods.name}"></li>
    <li>remark:<textarea rows="3" cols="20" name="remark" th:text="${goods.remark}"></textarea></li>
    <li><input type="submit" value="Update Goods"></li>
  </ul>
</form>

以上就是Spring Boot实现简单的增删改查的详细内容,更多关于Spring Boot增删改查的资料请关注我们其它相关文章!

(0)

相关推荐

  • Springboot+hibernate实现简单的增删改查示例

    1.创建好项目之后在配置端口号(也可以不用配置,默认端口8080) #server server.port=8080 server.tomcat.uri-encoding=utf-8 2.配置mysql #MySQL spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8 sprin

  • IntelliJ Idea SpringBoot 数据库增删改查实例详解

    SpringBoot 是 SpringMVC 的升级,对于编码.配置.部署和监控,更加简单 微服务 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务.一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议. Spring 为 微服务提供了一整套的组件-SpringClound , SpirngBoot 就是该基础. 第一个SpringBoot程序 这里使用的开发软件是IntelliJ Idea,和Eclipse

  • Spring boot+mybatis+thymeleaf 实现登录注册增删改查功能的示例代码

    本文重在实现理解,过滤器,业务,逻辑需求,样式请无视.. 项目结构如下 1.idea新建Spring boot项目,在pom中加上thymeleaf和mybatis支持.pom.xml代码如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3

  • SpringBoot+MySQL+Jpa实现对数据库的增删改查和分页详解

    一. 使用Springboot+Jpa实现对mysql数据库的增删改查和分页功能 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 使用Springboot和jpa对数据库进行操作时,能够大大减少我们的工作量,在jpa中,已经在底层封装好了增删查的功能和sql语句,可以使我们进行快速开发 二.项目过程和配置文件 1.applaction.properties文件配置

  • Java springboot Mongodb增删改查代码实例

    1.添加依赖 复制代码 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>2.1.6.RELEASE</version> </dependency> 完整pom.xm文件 <?xml version="

  • spring boot2结合mybatis增删改查的实现

    1. 场景描述 本节结合springboot2.springmvc.mybatis.swagger2等,搭建一个完整的增删改查项目,希望通过这个基础项目,能帮忙朋友快速上手springboot2项目. 2. 解决方案 2.1新建springboot项目 使用idea新建springboot项目(springboot项目快速搭建) (1)new project (2)gav设置 2.2 项目整体图及说明2.2.1 整体图 2.2.2 说明 项目包含4大内容 (1)pom.xml maven项目必备

  • SpringBoot + Mybatis增删改查实战记录

    简介 SpringBoot和Mybatis是啥请自行百度,作者这里也是花了几天时间入门了这个框架用来完成任务,并且也算符合要求的完成了任务,期间也各种百度但是没找到自己想要的那种简单易懂的教程,所以踩了很多坑,写这个博客的目的就是为了让大家少踩一点坑,开始. 创建一个SpringBoot项目https://start.spring.io/ 点开这个网站,创建一个Springboot项目,如下图,这里用的是2.1.5,学技术嘛,就是要学新的. 选择依赖,点击左下角的Dependencies Web

  • spring-boot react如何一步一步实现增删改查

    1.maven继承spring-boot <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> <relativePath/> <!-- lookup parent from repos

  • 使用SpringBoot开发Restful服务实现增删改查功能

    在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练.不过在看了很多关于SpringBoot的介绍之后,并没有想象中的那么难,于是开始准备学习SpringBoot. 在闲暇之余的时候,看了下SpringBoot实战以及一些大神关于SpringBoot的博客之后,开始写起了我的第一个SpringBoot的项目.在能够对SpringBoot进行一些简单的开发Re

  • Spring boot2+jpa+thymeleaf实现增删改查

    一.pom.xml引入相关模块web.jpa.thymeleaf.oracle: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot

随机推荐