91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行MySQL實施JDBC 2.0/3.0 的新特性實踐

發布時間:2021-11-29 10:48:54 來源:億速云 閱讀:138 作者:柒染 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關如何進行MySQL實施JDBC 2.0/3.0 的新特性實踐,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

昨天一天都沒有調試出上傳圖像到數據庫中的程序,雖然查了CSDN,但所查資料都不好使。今天想起了幾個關鍵點沒有仔細的試到,主要是JDBC API新功能到底對MySql有沒有作用,如果不行,為什么MySQL Driver包中的ResultSet類中有新的API方法?另外,upload包的幾個類對添加圖像到數據庫中到底行不行。不管行還是不行,我得再仔細試一下。因昨天曾測試通過了JDBC API新的更新方法,所以計劃今天先調試上傳圖像到數據庫中程序,經過一小段時間的調試,終于通過,調用圖像顯示程序一試,圖像出來了,試試jpg格式的圖像,也成功了,真是大快人心。數據庫保存圖像功能調試成功為我調試JDBC API新的插入功能增加了信心,幾經周折也成功了,為了記住這一過程,我想想還是寫下來。

  原定目標:通過網絡,把客戶端的gif或jpg圖像文件存到服務器端的MySQL數據庫中。
  設計思路:做一個供客戶使用的表單,客戶通過該表單可查找客戶端的圖像文件,并提取該文件的文件名于表單輸入框中。客戶提交表單后,將激活服務器端的insertpic.jsp,通過insertpic.jsp保存圖像文件的數據到數據庫中。
  在實施過程中又遇到和攻克了新的難題:JDBC新的API插入、更新、刪除指令如何使用;upload包如何使用,學習和演示了《Java Servlets編程指南》上提供的連接池,圖像顯示程序。
  具體編程思路、遇到的問題,小結:
  1、數據庫表名:javadoc;保存圖像數據的字段用Blob或MediumBlob或LongBlob類型的。
  建立數據表的SQL語句如下:

  SQL = "CREATE TABLE javadoc (" +
    "gid int(11) NOT NULL auto_increment," +
    "gheading varchar(100)," +
    "gimage longblob," +
    "PRIMARY KEY (gid))";

  2、表單上的查找并提取圖像文件名的輸入框用下面的語句實現:
    

圖像


  3、表單的

要加入下面的屬性和屬性值:
    enctype="multipart/form-data"
  加入該屬性后,該表單就不能再同時作為傳輸其他數據字段的表單了,如不能再傳送串字段。
  4、啟用upload包,內含File.class、Files.class、Request.class、SmartUpload.class、SmartUploadException.class,來協助保存圖像,以降低開發難度。
  幾個類的原代碼見相關文件,File類公用方法已粘在相關的jsp文件中。
  5、JDBC新的API插入、更新、刪除功能,具體步驟如下:
  插入一個記錄的步驟:
    (1)準備一個空記錄:MoveToInsertRow();
    (2)填入數據:updateXXX();
    (3)實施插入:insertRow();
  更新一個記錄步驟:
    (1)定位記錄:用absolute()或relative()等方法;
    (2)填入新值:updateXXX();
    (3)實施更新:updateRow();
  刪除一個記錄的步驟:
    (1)定位記錄:用absolute()或relative()等方法;
    (2)實施刪除:deleteRow();
  6、插入數據遇到的問題:我在保存圖像的表中設計了一個自動增量的gid字段,并定義為NOT NULL。在通常用SQL語句插入新值的情況下,可以忽略對該字段插值,數據庫會自動賦值。但在使用JDBC API插入記錄的過程中發現,對該字段不能不管,必須調用rs.updateLong("gid" ..)賦值,否則系統會出現異常。我也想到并試過申請一個不包含該字段的游標,然后對該游標執行上面的幾個插入記錄的步驟,但也出現異常。另外,我的表中還有一個gheading的字段,該字段缺省值沒定義,建立一個不包含該字段的游標然后執行插入新記錄的操作是可以通過的,即執行插入操作對gheading這類字段可以忽略不用管它。由此我推斷,只要是被說明為NOT NULL的字段,你在使用JDBC新的API進行插入記錄編程時不能忽略它,必須要顯式的賦值,否則系統會出現異常。
  7、對自動增量的字段在進行插入記錄編程時如何為其賦新值?
  我的方案是這樣:
  (1)使用select * form tablename order by gid 申請游標,其中gid為自動增量并不能為NULL的字段,為了簡單,假設該游標不會為空;
  (2)對游標last()一下,到游標的底部;
  (3)取gid字段的值賦給一個臨時變量mid;
  (4)mid++;
  (5)對gid字段實行 updateLong("gid",mid);
  ...
  8、對自動增量的字段插入記錄編程按上述步驟賦新值還要考慮的問題?
  我認為要考慮為記錄上鎖,否則仍有出現異常的潛在問題。

關于如何進行MySQL實施JDBC 2.0/3.0 的新特性實踐就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泉州市| 南靖县| 通城县| 龙川县| 儋州市| 郓城县| 阿克陶县| 织金县| 克东县| 咸阳市| 夏津县| 贵定县| 溧阳市| 汶上县| 三原县| 阿瓦提县| 井冈山市| 大关县| 福州市| 韶山市| 聂荣县| 万山特区| 泾阳县| 定州市| 仙居县| 泰宁县| 西盟| 嘉峪关市| 灵武市| 德阳市| 衡东县| 绥芬河市| 深州市| 临洮县| 中江县| 濮阳市| 唐山市| 西乡县| 屏东市| 盐城市| 湘潭市|