MLDN
课程咨询[孔老师]QQ 1031143579孔老师QQ课程咨询留言 课程咨询[徐老师 ]QQ 945313230
徐老师QQ课程咨询留言
课程咨询[刘老师 ]QQ 514543793
刘老师QQ课程咨询留言
java培训
北京java培训
IT电子教育门户 高端JAVA培训 -=> 资源中心 -=> 数据库 -=> SQL Server -=> 正文

Java操纵SQL Server2000大型对象

 发布日期:2007-3-2 13:50:00 发布者:[mldn编辑]   评论:[]  浏览:

大家或许已经看到了,我以前的一篇文章
其实前面的文章是有限制的
因为String 类型能够接收的字节数相当有限,所以
一旦文本或者图象较大则是无法全部存与数据库中
相应的从数据库取出来也是不完全的了

本程序修正了上面的程序,热烈推荐大家看我在上遍文章参考的那本书!

import java.io.*;
import java.sql.*;

public class Db {
public static void main(String[] args) {

Db ac = new Db();

String blobname = "D:\test1.jpg"; //blob文件名

String in = "insert into ";

String in1 = "(id,data) values(´0012´,?)";

String tablename = "Ss";

String sqlstr = ""; // sql 语句
sqlstr = in + tablename + in1;

ThreadUseExtends thread = new ThreadUseExtends(blobname,sqlstr);
thread.insert();
thread.getCover();

}
}

class ThreadUseExtends {
String filename1;//blob filename


String str;
//ReadFiles r1 = new ReadFiles();

//构造函数要有(blob文件名,clob文件名,sql语句)
public ThreadUseExtends(String name1,String sqlstr)
{

filename1 = name1;
str = sqlstr;
System.out.println("I carry out this");
}
public void insert()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:LW";


Connection con = DriverManager.getConnection(url);
//String testLong = r1.ReadFile(filename1);
File file=new File(filename1);
InputStream fin=new FileInputStream(file);
int fileLength=(int)file.length();


//byte[] ba = testLong.getBytes();
System.out.println("str=" + str);

PreparedStatement stm = con.prepareStatement(str);

stm.setBinaryStream(1,fin,fileLength);

stm.execute();
stm.close();
con.close();
}
catch (Exception e)
{
e.printStackTrace();
}

}
//本函数用于把数据库的内容从数据库中读出,并保存在文件中。
public void getCover() {
InputStream in=null;
Connection cn = null;
PreparedStatement pst = null;
byte buf[]=new byte[50000];
DataOutputStream output=null;
int size;
System.out.println("have carry out this");
try
{
output=new DataOutputStream(new FileOutputStream("D:\test2.jpg"));
}
catch(IOException e)
{
System.err.println("File not opened "+e.toString());
System.exit(1);
}
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:LW";
cn = DriverManager.getConnection(url);
pst=cn.prepareStatement("SELECT data FROM Ss where ID =´0012´");
// pst.setString(1,id);
ResultSet rs=pst.executeQuery();
while(rs.next())
{
in=rs.getBinaryStream("data");
while ((size=in.read(buf,0,50000))!=-1) {
output.write(buf,0,size);
}
}
}
catch (SQLException sqle) {
System.err.println("Error in CoverServlet : getCover()-" + sqle);
sqle.printStackTrace() ;
}
catch (Exception e)
{
e.printStackTrace();
}

finally {
try {
pst.close() ;
cn.close() ;
}
catch (Exception e) {
e.printStackTrace();
}
}

}

}//ThreadUseExtends class

java视频教程
JAVA核心_75对象序列化练习
 JAVA核心_75对象序列化..
JAVA核心_74对象序列化
 JAVA核心_74对象序列化..
JAVA核心_73字符编码
 JAVA核心_73字符编码 ..
JAVA核心_72Scanner
 JAVA核心_72Scann..
JAVA核心_71 IO练习 二
 JAVA核心_71 IO练习..
相关文章 推荐文章
·暂无
在SQL Server中快速删除重复记..
如何维护SQL Server的“交易日..
Microsoft SQL Serve..
SQL安全设置攻略
用asp.net还原与恢复sqlser..
热门文章
深入浅出SQL之左连接、右连接和全连接..
常用SQL字符串函数问题集锦
SQL联合查询
JSP中连接SQL 2000数据库的问..
SQL安全设置攻略
正文Sql连接查询
SQL Server 2005性能测试..
SQL 语法参考
使用SQLMaps进行对象关系映射
导入Excel表格数据到SQL Sev..
今日更新
常用SQL字符串函数问题集锦
在SQL Server中快速删除重复记..
如何维护SQL Server的“交易日..
Microsoft SQL Serve..
SQL安全设置攻略
用asp.net还原与恢复sqlser..
SQL Server服务器安装剖析
导入Excel表格数据到SQL Sev..
SQL语句性能调整原则
Java操纵SQL Server200..
JAVA招聘网
 评一评
正在读取…
  姓名:
  评论:
    
【注】 发表评论必需遵守以下条例: !!!
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 QQ留言
Copyright 2009 魔乐培训MLDN.CN all rights reserved 版权所有 京ICP备07008611号