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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

12.JDBC

發布時間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 12.JDBC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*使用JDBC處理大數據*/

  在實際開發中,程序需要把大文本或二進制數據保存到數據庫中

  大數據LOB(Large Objects),LOB又分為clob和blob

  clob用來存儲大文本 blob用于存儲二進制數據,例如圖像、聲音、二進制等。

  對于MySQL而言只有blob,而沒有clob,mysql存儲大文本采用的是Text,Text和blob分別又分為:

  TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT

  TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

?

/*對于MySQL中的Text類型,可調用如下方法設置(過程:1.拿到st 2.拿到文件的路徑 3.通過路徑創建file對象 4.設置Text屬性)*/

  PreparedStatment.setCharacterStream(index,reader,length);

?

/*對于MySQL中Text類型,可調用如下方法獲取 (過程:1.拿到rs 2.拿到reader 3.將reader中的數據讀取到FileWriter)*/

  reader=resultSet.getCharacterStream(i);

  reader=resultSet.getClob(i).getCharacterStream();

  reader=resultSet.getString(i);

?

/*對于MySQL中的BLOB類型,可調用如下方法設置: (過程:1.拿到st 2.拿到文件的路徑 3.設置Blog屬性) (和Text的設置大同小異)*/

  PreparedStatment.setBinaryStream(i,inputStream,length);

/*對于MySQL中的BLOB類型,可調用如下方法獲取: (過程:1.拿到rs 2.拿到InputStream(因為讀取的是二進制,所以和Text有些區別) 3.將InputStream中的數據讀取到FileWriter)*/

  InputStream in = resultSet.getBinaryStream(i);

  InputStream in = resultSet.getBlob(i).getBinaryStream();

?

/*JDBC批處理*/ (批處理執行后,要清空下批處理 st.clearBatch())

1.采用Statment.addBatch(sql)方式實現批處理

  優點:可以向數據庫發送多條不同的SQL語句。

  缺點:1.SQL語句沒有編譯 2.當向數據庫發送多條語句相同,但僅參數不同的SQL語句時(pst可以用?設定),需要重復寫上很多條SQL語句

2.實現批處理的第二種方式:

  PreparedStatement.addBatch();

?

/*獲取數據庫自動生成的主鍵*/ (只對insert操作有效)

  PreparedStatment st = conn.prepareStatement(sql,Statement.RETURN_GENTURN_GENERATED_KEYS) (Statement.RETURN_GENTURN_GENERATED_KEYS 默認會加上)

  st.executeUpdate();

  ResultSet rs = st.getGeneratdKeys(); //得到 /*插入行*/ 的主鍵?

?

/*JDBC調用存儲過程*/

  1.編寫存儲過程

  2.在程序中調用

    得到CallableStatment,并調用存儲過程(CallableStatement cStmt = connprepareCall("{call demoSp(?,?)}");

    設置參數,注冊返回值,得到輸出( cStmt.getString(1))

    cStmt.setString(1,"xxx"); 設置參數

    cStmt.registerOutParameter(2,Types.VARCHAR); 注冊返回值

    cStmt.execute();

轉載于:https://www.cnblogs.com/xuzekun/p/7359196.html

總結

以上是生活随笔為你收集整理的12.JDBC的全部內容,希望文章能夠幫你解決所遇到的問題。

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