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

歡迎訪問 生活随笔!

生活随笔

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

数据库

SQL语句(新增)

發布時間:2023/12/20 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL语句(新增) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ?項目中的增刪查改功能,都跟數據庫連接著的,要不然你的增刪查改的功能就算執行了,數據庫中的數據依然不變。項目跟數據庫連接著才能執行操作方法,操作方法還得依靠著SQL語句,SQL語句顧名思義:SQL為結構化查詢語言,全稱是:Structured Query Language,寫給數據庫的語句。首先說一下新增的SQL語句與整個執行操作方法。

? ? ? ?執行單表新增,新增報名點數據:報名點ID(SignUpID)、報名點名稱(SignUpName)、報名點號碼(SignUpNumber)、報名點地址(SignUpSite)、報名點狀態(SignUpState)。新增這四個字段的數據,ID是數據庫中自增的不需要手動新增,若是你沒有在數據庫中設置ID自增,那就在參數類型(parameterType=”com.gx.po.SignUp”)后面加上是否有新增主鍵(useGeneratedKeys=”true”)和主鍵(keyProperty=”主鍵ID,如:SignUpID”)兩串代碼。trim標簽中的Prefix=”(“ suffix= ”)”與suffixOverrides=”,”為固定語句。若是字段不能為空就去掉if標簽,加上if標簽就是表示該字段可為空。不用if標簽的字段在新增的時候不能為空,否則會報錯,個人推薦全部都加上if標簽,判斷是否為空可以在JS代碼那里判斷。if標簽里面的test的字段是對應著實體類名稱,if標簽包裹的字段對應著數據庫名稱千萬別寫錯了。第二個trim也一樣,if標簽里面的test的字段對應著實體類名稱,if標簽包裹的字段就是對應著參數名稱,放在(#{ })里面。?

<!-- 新增報名點 --> <insert id="insertSignUp" parameterType="com.gx.po.SignUp">insert into signup<trim prefix="(" suffix= ")" suffixOverrides=","><if test="signUpName!=null">SignUpName,</if><if test="signUpNumber!=null">SignUpNumber,</if><if test="signUpSite!=null">SignUpSite,</if><if test="signUpState!=null">SignUpState,</if></trim><trim prefix="values(" suffix= ")" suffixOverrides=","><if test="signUpName!=null">#{signUpName},</if><if test="signUpNumber!=null">#{signUpNumber},</if><if test="signUpSite!=null">#{signUpSite},</if><if test="signUpState!=null">#{signUpState},</if></trim> </insert>

? ? ? ?SQL語句寫完,接下來的是Dao層,參數是實體類。

int insertSignUp(SignUp signUp);// 新增報名點

? ? ? ?Dao層寫完,接下來的是ServiceImpl,執行Dao方法,返回參數是實體類。

// 新增報名點 public int insertSignUp(SignUp signUp){return vehicleDao.insertSignUp(signUp); }

? ? ? ?最后的Service層,雖然跟Dao層相似,但是Service層是給控制器調用的,參數是實體類。

int insertSignUp(SignUp signUp);// 新增報名點

? ? ? ?控制器的保存新增方法,參數是實體類,異常捕獲內放輸出,可以提示我們哪里的方法出錯了,獲取到Service層方法并執行,判斷新增執行后是否成功,成功或者失敗的返回值都會返回到html頁面的方法。返回值可以返回中文、數字、英文。注意,新增后的提示框內容就是你返回值的內容。這個是比較簡潔的,只是為了能執行SQL語句的代碼,大家可以做更進一步的判斷機制。

/** * 新增保存 * @param signUp * @return * @throws UnsupportedEncodingException */ @RequestMapping("addSignUp") @ResponseBody public String addSignUp(SignUp signUp){try {// 執行新增int sup = vehicleService.insertSignUp(signUp);// 判斷是否新增成功if (sup > 0){return "新增報名點成功";}else{return "新增失敗";}}catch (Exception e){System.err.println("你好,新增報名點錯誤異常!");System.out.println(e.getStackTrace());return "報名點新增異常,請聯系管理員!";} }

? ? ? ?button保存的按鈕,給個點擊事件,讓下面的保存的方法可獲取到按鈕。Button按鈕是用bootstrap按鈕。

<!-- 提交按鈕 --> <button type="button" class="btn btn-success" onclick="Preserve()">保存 </button>

? ? ? ?獲取到保存按鈕的點擊事件,獲取form表單的ID,serializeArray()方法通過序列化表單值來創建對象數組(名稱和值),通過創建的對象數組來判斷不可為空的內容框或選擇框,第一個框從0開始,從左到右依次數。點擊提交保存若是有判斷的框為空就會有提示彈出。若是可以為空的框就不用給它做判斷,省點代碼。注意,多框就逐個判斷,千萬不要嵌套判斷,不然會不利于后期的維護或者找錯誤!判斷無誤后進行post提交保存請求,post請求鏈接是控制器的保存新增的方法。判斷控制器方法是否執行成功,就data==”控制器方法成功返回值”,就layer提示成功并刷新數據表格,刷新表格的鏈接是控制器查詢數據的方法。簡潔的刷新表格代碼在下面。

// 新增保存 function Preserve(){//serializeArray()方法通過序列化表單值來創建對象數組(名稱和值)let formid = $("#FormID").serializeArray();// 判斷必填數據是否為空(報名點名稱)if (formid[0].value=="" || formid[0].value==null){layer.msg("請填寫報名點名稱,不得為空!");return;}// 判斷必填數據是否為空(報名點狀態)if (formid[2].value=="" || formid[2].value==null){layer.msg("請選擇報名點狀態,不得為空!");return;}// post提交$.post("${pageContext.request.contextPath}/Vehicle/addSignUp", formid, function (data){// 新增成功提示layer.msg(data, {icon: 1});if (data == "新增報名點成功"){// 刷新表格tableIns.reload({url:"${pageContext.request.contextPath}/Vehicle/JumpTwoPage"});}// 關閉模態框$("#close").click();}); }

? ? ? ?若你已經寫了模糊查詢或者其他查詢的操作,就可以直接調用模糊查詢或其他查詢的方法即可,若是你沒寫模糊查詢或其他查詢的方法,就用上面的刷新表格的方法。

// post提交 $.post("${pageContext.request.contextPath}/Vehicle/addSignUp", formid, function (data){// 新增成功提示layer.msg(data, {icon: 1});if (data == "新增報名點成功"){// 利用模糊查詢的方法刷新表格Search();}// 關閉模態框$("#close").click(); });

?

總結

以上是生活随笔為你收集整理的SQL语句(新增)的全部內容,希望文章能夠幫你解決所遇到的問題。

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