java語言

當前位置 /首頁/計算機/java語言/列表

Java面試題JDBC能否處理Blob和Clob

引導語:JDBC是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問。以下是本站小編分享給大家的`Java面試題JDBC能否處理Blob和Clob,歡迎閱讀學習!

Java面試題JDBC能否處理Blob和Clob

 JDBC能否處理Blob和Clob?

答: Blob是指二進位制大物件(Binary Large Object),而Clob是指大字元物件(Character Large Objec),因此其中Blob是為儲存大的二進位制資料而設計的,而Clob是為儲存大的文字資料而設計的。JDBC的PreparedStatement和ResultSet都提供了相應的方法來支援Blob和Clob操作。下面的程式碼展示瞭如何使用JDBC操作LOB:

下面以MySQL資料庫為例,建立一個張有三個欄位的使用者表,包括編號(id)、姓名(name)和照片(photo),建表語句如下:

123456create table tb_user(id int primary key auto_increment,name varchar(20) unique not null,photo longblob);

下面的Java程式碼向資料庫中插入一條記錄:

1234567891011121314151617181920212223242526272829303132333435363738394041import InputStream;import ception;import tStream;import ection;import erManager;import aredStatement;import xception;class JdbcLobTest {public static void main(String[] args) {Connection con = null;try {// 1. 載入驅動(Java6以上版本可以省略)ame("er");// 2. 建立連線con = onnection("jdbc:mysql://localhost:3306/test", "root", "123456");// 3. 建立語句物件PreparedStatement ps = areStatement("insert into tb_user values (default, ?, ?)");tring(1, "駱昊"); // 將SQL語句中第一個佔位符換成字串try (InputStream in = new FileInputStream("test.jpg")) { // Java 7的TWRinaryStream(2, in); // 將SQL語句中第二個佔位符換成二進位制流// 4. 發出SQL語句獲得受影響行數tln(uteUpdate() == 1 ? "插入成功" : "插入失敗");} catch(IOException e) {tln("讀取照片失敗!");}} catch (ClassNotFoundException | SQLException e) { // Java 7的多異常捕獲tStackTrace();} finally { // 釋放外部資源的程式碼都應當放在finally中保證其能夠得到執行try {if(con != null && !osed()) {e(); // 5. 釋放資料庫連線 con = null; // 指示垃圾回收器可以回收該物件}} catch (SQLException e) {tStackTrace();}}}}

TAG標籤:面試題 JAVA Blob JDBC Clob #