资源描述:
《mysql,sqlserver,oracle三种数据库的大对象存取.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、mysql,sqlserver,oracle三种数据库的大对象存取来源:诗剑书生专栏——CSDN播客mysql大对象存取:类型一般应该用mediumblod,blob只能存2的16次方个byte,mediumblod是24次方,一般来说够用了.longblob是32次方有些大.MYSQL默认配置只能存1M大小的文件,要修改配置,WIN版本的在mysql.ini文件中修改max_allowed_packet,net_buffer_length等几个参数,或直接SETGLOBALvarName=value.linu
2、x版本可以在启动参数后加-max_allowed_packet=xxM等几个参数.MYSQL存大对象最好直接就setBinaryStream,又快又方便.而不要先插入空再造型成BLOB然后再setBlob例子:importjava.sql.*;importjava.io.*;publicclassDBTest{staticStringdriver="org.gjt.mm.mysql.Driver";staticStringurl="jdbc:mysql://localhost:3306/test";static
3、Stringuser="root";staticStringpasswd="passwd";publicstaticvoidmain(String[]args)throwsException{Connectionconn=null;try{Class.forName(driver);conn=DriverManager.getConnection(url,user,passwd);intop=1;//插入if(op==0){PreparedStatementps=conn.prepareStatement("i
4、nsertintotb_filevalues(?,?)");ps.setString(1,"aaa.exe");InputStreamin=newFileInputStream("d:/aaa.exe");ps.setBinaryStream(2,in,in.available());ps.executeUpdate();ps.close();}else{//取出PreparedStatementps=conn.prepareStatement("select*fromtb_filewherefilename=
5、?");ps.setString(1,"aaa.exe");ResultSetrs=ps.executeQuery();rs.next();InputStreamin=rs.getBinaryStream("filecontent");System.out.println(in.available());FileOutputStreamout=newFileOutputStream("d:/bbb.exe");byte[]b=newbyte[1024];intlen=0;while((len=in.read(b
6、))!=-1){out.write(b,0,len);out.flush();}out.close();in.close();rs.close();ps.close();}}catch(Exceptionex){ex.printStackTrace(System.out);}finally{try{conn.close();}catch(Exceptionex){}}}}sqlserver大对象存取没有什么多说的,只要是image类型就行了,注意这是column类型,有人以为它只能存图象.image是文件镜象的
7、意思.importjava.sql.*;importjava.io.*;publicclassDBTest{staticStringdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";staticStringurl="jdbc:microsoft:sqlserver://192.168.0.202:;DatabaseName=dddd";staticStringuser="sa";staticStringpasswd="ps";publicstaticvo
8、idmain(String[]args)throwsException{Connectionconn=null;try{Class.forName(driver);conn=DriverManager.getConnection(url,user,passwd);intop=0;//插入if(op==0){PreparedStatementps=conn.prepareStatemen