亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

Spring Boot實(shí)現(xiàn)簡單的增刪改查

瀏覽:2日期:2022-08-25 17:28:25

在pom.xml添加相應(yīng)的依賴

<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>

配置文件配置數(shù)據(jù)庫等

#server server.port=80 #項(xiàng)目名: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(假如沒有配置也會(huì)默認(rèn)配置,在默認(rèn)配置中prefix默認(rèn)值為classpath:/templates/,后綴默認(rèn)為.html) #不用重啟服務(wù)器,網(wǎng)頁就能刷新 spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/templates/pages/ spring.thymeleaf.suffix=.html

數(shù)據(jù)層添加相應(yīng)注解實(shí)現(xiàn)sql語句(或者通過xml配置來實(shí)現(xiàn))

數(shù)據(jù)層封裝了商品信息,并提供get和set方法,為Goods類

1.查詢所有數(shù)據(jù)

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

2.按照id刪除數(shù)據(jù)

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

3.修改數(shù)據(jù)

(1)修改數(shù)據(jù)首先要新建一個(gè)界面,按照id查找內(nèi)容,并將查找到的內(nèi)容顯示到文本框內(nèi)

@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.新增數(shù)據(jù)

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

業(yè)務(wù)層提供對(duì)應(yīng)接口方法和實(shí)現(xiàn)類

1.業(yè)務(wù)層接口

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

2.業(yè)務(wù)層實(shí)現(xiàn)類

@Servicepublic 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); }

控制層寫具體實(shí)現(xiàn)

1.跳轉(zhuǎn)到首頁并且查找所有商品

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

2.業(yè)務(wù)層實(shí)現(xiàn)類

@Servicepublic 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); }

控制層寫具體實(shí)現(xiàn)

1.跳轉(zhuǎn)到首頁并且查找所有商品

@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)告訴服務(wù)器,id拿到的是從網(wǎng)頁上同樣叫id的數(shù)據(jù) public String dodeletebyId(@PathVariable Integer id){ int delete = goodsDao.deleteById(id); //doGoodsUI前面沒有加/的話,跳轉(zhuǎn)的網(wǎng)址是替代了最后一個(gè)/后面的內(nèi)容 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)實(shí)現(xiàn)修改

@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表示遍歷拿到的數(shù)組,goods是從控制層拿到的model的名字

3.id,name和remark與數(shù)據(jù)庫對(duì)應(yīng),date要格式化拿到數(shù)據(jù),該語法是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='http://www.lshqa.cn/bcjs/6118.html#' rel='external nofollow' rel='external nofollow' rel='external nofollow' th:href='http://www.lshqa.cn/bcjs/@{/goods/doDeleteById(id=${g.id})}' rel='external nofollow' ><button>刪除</button></a></td>--> <td><a href='http://www.lshqa.cn/bcjs/6118.html#' rel='external nofollow' rel='external nofollow' rel='external nofollow' th:href='http://www.lshqa.cn/bcjs/@{/goods/doDeleteById/{doDeleteById}(doDeleteById=${g.id})}' rel='external nofollow' ><button>刪除</button></a></td> <td><a href='http://www.lshqa.cn/bcjs/6118.html#' rel='external nofollow' rel='external nofollow' rel='external nofollow' th:href='http://www.lshqa.cn/bcjs/@{/goods/doFindById/{id}(id=${g.id})}' rel='external nofollow' ><button>修改</button></a></td></tr>

4.新增商品界面

(1)標(biāo)簽里的name屬性要和sql語句一致

(2)這里由于數(shù)據(jù)庫中的id列設(shè)置了自增長,所以不需要id屬性,createdTime列使用了now()獲取當(dāng)前時(shí)間,所以也不需要傳值,所以在控制層的doUpdateGoods方法里可以使用封裝好的Goods來接收從html拿到的參數(shù)

<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)因?yàn)閕d列自增長,所以修改商品信息不需要id這一列,但傳參數(shù)有需要一起傳送過去,所以添加了一個(gè)輸入框,默認(rèn)設(shè)置為隱藏,將其value設(shè)置為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實(shí)現(xiàn)簡單的增刪改查的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot增刪改查的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 成人爽a毛片在线视频 | 日本韩国三级在线 | 中文字幕 亚洲 一区二区三区 | 一级做a爱片特黄在线观看免费看 | 国产草草影院 | 成在线人视频免费视频 | 狠狠色综合网站久久久久久久 | 香港国产特级一级毛片 | 999成人网 | 爱爱亚洲 | 亚洲成aⅴ人片在线影院八 亚洲成av人片在线观看 | 国产一级片免费观看 | 在线国产三级 | 国产17部性孕妇孕交在线 | 国产高清精品毛片基地 | 一级毛片a免费播放王色 | 成人97 | 国产系列 视频二区 | 在线播放国产一区二区三区 | 日本在线网 | 国产成人禁片免费观看视频 | 欧洲国产伦久久久久久久 | 国内精品免费一区二区三区 | 欧美二区在线观看 | 午夜免费片在线观看不卡 | 久久国产精品影院 | 久久一区二区精品综合 | 朝鲜美女免费一级毛片 | 日韩在线欧美在线 | 国产精彩视频在线观看 | 精品一区二区久久久久久久网站 | 国产精品高清在线 | 美女wc| 2022国产精品自拍 | 操操综合网 | 国产一区二区三区免费播放 | 福利视频专区 | 高清在线一区二区 | 中国胖女人一级毛片aaaaa | 男人女人做性全程视视频 | 2020精品极品国产色在线观看 |