日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Springboot+JdbcTemplate +thymeleaf 页面 做迷你版的bug系统

發布時間:2025/5/22 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot+JdbcTemplate +thymeleaf 页面 做迷你版的bug系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.cnblogs.com/qianjinyan/p/10065160.html?

在我上一篇隨筆中介紹了關于要做的系統的數據結構,連接如上

?

今天實現連接mssql server,查詢出所有buglist的效果,CRUD

?

實現方法極其簡單,如下圖

?

?

 Bug類對象中列出字段

?

package com.jasmine.demo.bean;public class Bug {private long id;private String pname;private String crname;private String crnum;private String tasknum;private String oname;private String description;private String rca;private String solution;private String developer;private String tester;private String creationdt;private String updatedt;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getPname() {return pname;}public void setPname(String pname) {this.pname = pname;}public String getCrname() {return crname;}public void setCrname(String crname) {this.crname = crname;}public String getCrnum() {return crnum;}public void setCrnum(String crnum) {this.crnum = crnum;}public String getTasknum() {return tasknum;}public void setTasknum(String tasknum) {this.tasknum = tasknum;}public String getOname() {return oname;}public void setOname(String oname) {this.oname = oname;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public String getRca() {return rca;}public void setRca(String rca) {this.rca = rca;}public String getSolution() {return solution;}public void setSolution(String solution) {this.solution = solution;}public String getDeveloper() {return developer;}public void setDeveloper(String developer) {this.developer = developer;}public String getTester() {return tester;}public void setTester(String tester) {this.tester = tester;}public String getCreationdt() {return creationdt;}public void setCreationdt(String creationdt) {this.creationdt = creationdt;}public String getUpdatedt() {return updatedt;}public void setUpdatedt(String updatedt) {this.updatedt = updatedt;}@Overridepublic String toString() {return "Bug{" +"id=" + id +", pname='" + pname + '\'' +", crname='" + crname + '\'' +", crnum='" + crnum + '\'' +", tasknum='" + tasknum + '\'' +", oname='" + oname + '\'' +", description='" + description + '\'' +", rca='" + rca + '\'' +", solution='" + solution + '\'' +", developer='" + developer + '\'' +", tester='" + tester + '\'' +", creationdt='" + creationdt + '\'' +", updatedt='" + updatedt + '\'' +'}';}public Bug() {super();}public Bug(long id, String pname, String crname, String crnum, String tasknum, String oname, String description, String rca, String solution, String developer, String tester, String creationdt, String updatedt) {this.id = id;this.pname = pname;this.crname = crname;this.crnum = crnum;this.tasknum = tasknum;this.oname = oname;this.description = description;this.rca = rca;this.solution = solution;this.developer = developer;this.tester = tester;this.creationdt = creationdt;this.updatedt = updatedt;} }

?

 

BugService 接口中定義了增刪查改等方法
具體實現是在對應的impl中 package com.jasmine.demo.service;import com.jasmine.demo.bean.Bug;import java.util.List;public interface BugService {List<Bug> findAll();Bug findById(int id);int create(String pname,String crname,String crnum, String tasknum, String oname, String description, String rca, String solution, String developer, String tester);int update(long id, String crnum, String tasknum, String oname, String description, String rca, String solution, String developer, String tester);int deleteByID(int id);}

  

 

package com.jasmine.demo.service.impl;import com.jasmine.demo.bean.Bug; import com.jasmine.demo.jdbc.BugRowMapper; import com.jasmine.demo.service.BugService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service;import java.util.List;@Service public class BugServiceImpl implements BugService {@Autowiredprivate JdbcTemplate jdbcTemplate;@Overridepublic List<Bug> findAll() {String sql = "SELECT BUG_ID,PROJECT_NAME,CR_NAME,BUG_CR_NUM,BUG_TASK_NUM,OBJECT_NAME,BUG_DESCRIPTION\n" +",BUG_RCA,BUG_SOLUTION,B.EMPLOY_NAME DEVELOPER,A.EMPLOY_NAME TESTER,QA_CREATIONDT,QA_UPDATEDT,BUG_DELETED_FLAG\n" +"FROM QA_BUGLIST\n" +"JOIN QA_PROJECT ON BUG_PROJECT_ID = PROJECT_ID\n" +"JOIN QA_CRTYPE ON CR_ID = BUG_CR_TYPE_ID\n" +"JOIN QA_RTYPE ON OBJECT_ID = QA_TYPE_ID\n" +"JOIN QA_EMPLOY A ON A.[EMPLOY_ID] = QA_TESTER_ID AND A.[EMPLOY_GROUP] = 1 ---表示測試\n" +"JOIN QA_EMPLOY B ON B.[EMPLOY_ID] = QA_ASSIGNEE_ID AND B.[EMPLOY_GROUP] = 2 ---表示開發人員\n" +"WHERE BUG_DELETED_FLAG =0 order by 1 desc";List<Bug> bugs = jdbcTemplate.query(sql,new BugRowMapper() );return bugs;}@Overridepublic Bug findById(int id) {String sql = "SELECT BUG_ID,PROJECT_NAME,CR_NAME,isnull(BUG_CR_NUM,'') as BUG_CR_NUM,isnull(BUG_TASK_NUM,'') as BUG_TASK_NUM,OBJECT_NAME,isnull(BUG_DESCRIPTION,'') as BUG_DESCRIPTION\n" +",isnull(BUG_RCA,'') as BUG_RCA,isnull(BUG_SOLUTION,'') as BUG_SOLUTION,B.EMPLOY_NAME DEVELOPER,A.EMPLOY_NAME TESTER,QA_CREATIONDT,QA_UPDATEDT,BUG_DELETED_FLAG\n" +"FROM QA_BUGLIST\n" +"JOIN QA_PROJECT ON BUG_PROJECT_ID = PROJECT_ID\n" +"JOIN QA_CRTYPE ON CR_ID = BUG_CR_TYPE_ID\n" +"JOIN QA_RTYPE ON OBJECT_ID = QA_TYPE_ID\n" +"JOIN QA_EMPLOY A ON A.[EMPLOY_ID] = QA_TESTER_ID AND A.[EMPLOY_GROUP] = 1 ---表示測試\n" +"JOIN QA_EMPLOY B ON B.[EMPLOY_ID] = QA_ASSIGNEE_ID AND B.[EMPLOY_GROUP] = 2 ---表示開發人員\n" +"WHERE BUG_DELETED_FLAG =0 and BUG_ID = ?";Bug bug = jdbcTemplate.queryForObject(sql,new BugRowMapper(),id);return bug;}@Overridepublic int create(String pname,String crname,String crnum, String tasknum, String oname, String description, String rca, String solution, String developer, String tester) {String sql ="INSERT QA_BUGLIST(BUG_PROJECT_ID,BUG_CR_TYPE_ID,BUG_CR_NUM,BUG_TASK_NUM,QA_TYPE_ID,BUG_DESCRIPTION,BUG_RCA,BUG_SOLUTION,QA_ASSIGNEE_ID,QA_TESTER_ID,QA_CREATIONDT,QA_UPDATEDT)\n" +"VALUES(?,?,?,?,?,?,?,?,?,?,GETDATE(),GETDATE())";return jdbcTemplate.update(sql,pname,crname,crnum,tasknum,oname,description,rca,solution,developer,tester);}@Overridepublic int update(long id, String crnum, String tasknum, String description, String rca, String solution, String developer, String tester,String oname){String sql = "update QA_BUGLIST set BUG_CR_NUM =?,BUG_TASK_NUM =?,BUG_DESCRIPTION=?,BUG_RCA=?,BUG_SOLUTION= ?,QA_UPDATEDT =getdate() where BUG_ID = ?";System.out.println(sql);return jdbcTemplate.update(sql,crnum,tasknum,description,rca,solution,id);}@Overridepublic int deleteByID(int id) {String sql = "update QA_BUGLIST set BUG_DELETED_FLAG = 1, BUG_DELETED_COMMENT = '邏輯刪除' where BUG_ID = ?";System.out.println(sql);int count = jdbcTemplate.update(sql,id);return count;} }

DB的配置寫在application.xml中

啟動類之后,跳轉的所有頁面,寫在controller中,

?

?

啟動后,打開連接,看到自己的數據

?

接下來要做的就是讓頁面好看一點,這樣的數據看不清楚

JdbcTemplate

thymeleaf

?

頁面跳轉等等,頁面比較丑,還沒做分頁,搜尋條件也沒有添加

1. 查看所有bug

2. 查看指定bug的詳細信息

點擊查看按鈕后顯示單個bug的信息

3. 刪除單列bug信息,點擊單個bug信息后面的刪除按鈕即可刪除,刪除之前最好有確定按鈕用來提示,以免誤刪

4. 更新,我這邊做在查看單個詳細列表頁面中,如上圖,有信息更新按鈕,點擊后帶入原先的參數跳轉到更新頁面,在新的頁面進行更新,然后保存

?

5. 新增bug頁面,在查看所有bug頁面有新增按鈕,點擊進入如下頁面,保存進行新增操作

?

?源代碼提交在github地址如下:

https://github.com/JasmineQian/TestPlatform

?

?

?

轉載于:https://www.cnblogs.com/qianjinyan/p/10097451.html

總結

以上是生活随笔為你收集整理的Springboot+JdbcTemplate +thymeleaf 页面 做迷你版的bug系统的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人妻av中文系列 | 亚洲视频h| 国产在线视频第一页 | 性生生活大片又黄又 | 人妻少妇一区二区 | 黄av在线播放 | 成片免费观看 | 亚洲清色| www.天天综合| 久久久久久人妻一区二区三区 | 日韩欧美一区在线 | 久久久久久久久久99 | 中文字幕超清在线观看 | 黄色一级视频在线观看 | 日韩欧美视频在线 | 国产在线欧美在线 | 亚洲欧美国产精品 | 国产一级黄色片子 | 色网站在线播放 | 国产一区不卡在线 | 亚洲97色 | 欧美精品 在线观看 | 韩国三级hd中文字幕 | 一本到久久 | 免费视频99 | 爱草在线 | 偷拍xxxx | 亚洲精品乱码久久久久久蜜桃图片 | 日本少妇xxxx| 无套内谢88av免费看 | 美女二区 | 尹人香蕉 | 国产一区二区色 | 五月综合在线 | 男生插女生的视频 | 视频在线观看电影完整版高清免费 | 香蕉久久国产 | 特黄网站 | 自拍偷拍在线视频 | 日韩啪啪网 | av在线免播放器 | 日本少妇bb| 欧美一区二区三区四 | 欧洲精品码一区二区三区免费看 | www视频在线观看 | 国产97免费视频 | 操你啦在线视频 | 国产精品av免费观看 | 综合激情视频 | 成人免费视频一区二区 | 狠狠一区 | 亚洲成人精品一区二区三区 | 九九热伊人 | 神马午夜激情 | 一区二区三区日韩视频 | 久久成人激情 | 日本aa视频 | 特级黄色片 | 国产精品999久久久 在线青草 | jizz欧美性20| 亚洲校园激情 | 黄色小网站入口 | 中国爆后菊女人的视频 | 日韩三级理论 | 国产91清纯白嫩初高中在线观看 | 日韩在线视频免费 | 天天射日| 日韩亚洲欧美中文字幕 | 午夜特级毛片 | 免费精品在线视频 | 久久92 | 91夜色| 在线成人av| 国产丝袜久久 | 一级做a爰片 | 不卡av免费在线观看 | 特大黑人巨人吊xxxx | 亚洲美女精品视频 | 国产激情一区二区三区四区 | 亚洲free性xxxx护士白浆 | 亚洲av无码一区二区三区网站 | 日韩av免费在线观看 | 国产91免费看 | 午夜精品成人毛片非洲 | 精品欧美乱码久久久久久 | 国产五区 | 无码人妻aⅴ一区二区三区 国产高清一区二区三区四区 | 午夜8888 | 精品久久久久久久免费人妻 | 日韩美女免费视频 | 美女张开腿让男人操 | 老头糟蹋新婚少妇系列小说 | 欧美亚洲精品天堂 | 亚洲 欧美 成人 | 日本特级黄色 | 亚洲国产成人在线 | 亚洲视频456 | 亚洲一区二区 | 1024金沙人妻一区二区三区 |