Heim > Datenbank > MySQL-Tutorial > Hauptteil

JDBC大数据存取_MySQL

WBOY
Freigeben: 2016-05-31 08:46:41
Original
1252 Leute haben es durchsucht


//大数据存取,程序一般不把大文本或二进制数据保存到数据库;
//大数据分为clob 用于存储文本; blob 用于存储 二进制数据,如图像,声音, 二进制文件。
// Mysql 没有clob,只有TEXT;


1. 封装连接数据工具类


2 大数据存取

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Reader;
import java.io.Writer;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;


public class CloabDemo {
 @Test
 public void add(){
  Connection conn = null;
  PreparedStatement pstmt = null;
 
  try {
   conn = JdbcUtil.getConnection();//
   String sql = "insert into t1(id,content) values(?,?) ";
   pstmt = JdbcUtil.prepare(conn, sql);
    pstmt.setInt(1, 1);
    //大数据 要使用流的形式
    File file = new File("d:/clob.txt");
    Reader reader = new FileReader(file);
    pstmt.setCharacterStream(2, reader, (int)file.length()); //不能使用long的参数, mysql支持不到那么大的数据
    int i =pstmt.executeUpdate();
    if(i>0){
     System.out.println("插入成功");
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally{
    JdbcUtil.closeConn(conn, pstmt, null);
   }
 }
 //读
 @Test
 public void read(){
  
  Connection conn = null;
  PreparedStatement pstmt = null;
  ResultSet rs = null;
 
  try {
   conn = JdbcUtil.getConnection();//
   String sql = "select * from t1 where id =?";
   pstmt = conn.prepareStatement(sql);
    pstmt.setInt(1, 1);
    //大数据 要使用流的形式
    //保存到E盘
    rs=pstmt.executeQuery(sql);
    if(rs.next()){
    
     Reader reader = rs.getCharacterStream("content");
     Writer writer = new FileWriter("E:/clob.txt");
     char[] c = new char[1024];
     int len =-1;
     while ((len=reader.read(c))!=-1){
      writer.write(c, 0, len);
     }
     reader.close();
     writer.close();
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   finally{
    JdbcUtil.closeConn(conn, pstmt, null);
   }
  
 }
}


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!