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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象

發(fā)布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CLOB(Character Large Object)

用于存儲大量的文本數(shù)據(jù)

大字段有些特殊,不同數(shù)據(jù)庫處理的方式不一樣,大字段的操作常常是以流的方式來處理的。

測試CLOB 文本大對象的使用
?* 包含:將字符串、文本內(nèi)容插入數(shù)據(jù)庫中的CLOB字段將CLOB字段值取出來操作?

package cn.dym01;import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.sql.Clob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;/*** 測試CLOB 文本大對象的使用* 包含:將字符串、文本內(nèi)容插入數(shù)據(jù)庫中的CLOB字段、將CLOB字段值取出來操作**/ public class Demo09 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs=null;Reader r=null;try {//加載驅(qū)動類Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");ps=conn.prepareStatement("insert into t_user (username,myInfo) values (?,?)");ps.setString(1, "止小兮");// ps.setClob(2, new FileReader(new File("d://a.txt"))); //將文本文件內(nèi)容直接輸入到數(shù)據(jù)庫中//將程序中的字符串輸入到數(shù)據(jù)庫的CLOB字段中 // ps.setClob(2, new BufferedReader(new InputStreamReader(new ByteArrayInputStream("aaaabbbbbb".getBytes())))); // ps.executeUpdate();ps=conn.prepareStatement("select * from t_user where id=?");ps.setObject(1, 21437);rs=ps.executeQuery();while(rs.next()) {Clob c=rs.getClob("myInfo");r=c.getCharacterStream();int temp=0;try {while((temp=r.read())!=-1) {System.out.print((char)temp);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally {if(r!=null) {try {r.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(ps!=null) {try {ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} }


BLOB


package cn.dym01;import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; import java.sql.Clob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;/*** 測試BLOB 二進制大對象的使用* **/ public class Demo10 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;try {//加載驅(qū)動類Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");ps=conn.prepareStatement("insert into t_user2 (username,headImg) values (?,?)");ps.setString(1, "止小兮");try {ps.setBlob(2, new FileInputStream("d:/avator.jpg"));} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}ps.execute();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally {if(ps!=null) {try {ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}} }

?


?

package cn.dym01;import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.Reader; import java.sql.Clob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;import com.mysql.jdbc.Blob;/*** 測試BLOB 二進制大對象的使用* **/ public class Demo10 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs=null;InputStream is =null;OutputStream os = null;try {//加載驅(qū)動類Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");ps=conn.prepareStatement("select * from t_user2 where id=?");ps.setObject(1, 21439);rs=ps.executeQuery();while(rs.next()){Blob b = (Blob) rs.getBlob("headImg");is = b.getBinaryStream();os = new FileOutputStream("d:/a.jpg");int temp = 0;try {while((temp=is.read())!=-1){os.write(temp);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {try {if(is!=null){is.close();}} catch (Exception e) {e.printStackTrace();}try {if(os!=null){os.close();}} catch (Exception e) {e.printStackTrace();}try {if(ps!=null){ps.close();}} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}} }

?

總結(jié)

以上是生活随笔為你收集整理的java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。