java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象
生活随笔
收集整理的這篇文章主要介紹了
java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
CLOB(Character Large Object)
用于存儲大量的文本數(shù)據(jù)
大字段有些特殊,不同數(shù)據(jù)庫處理的方式不一樣,大字段的操作常常是以流的方式來處理的。
測試CLOB 文本大對象的使用
?* 包含:將字符串、文本內(nèi)容插入數(shù)據(jù)庫中的CLOB字段、將CLOB字段值取出來操作?
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java的知识点45——事务||测试时间
- 下一篇: Python的安装 || python介