SpringBoot实现简单的增删改查在l添加相应的依赖
<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&batis.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
#项⽬名:t-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
=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
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.atedTime,'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="@{/go
ods/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="${ark}"></textarea></li>
<li><input type="submit" value="Update Goods"></li>
</ul>
</form>
以上就是Spring Boot实现简单的增删改查的详细内容,更多关于Spring Boot增删改查的资料请关注其它相关⽂章!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论