java操纵SQL Server2000大型对象
来源:这里教程网
时间:2026-03-02 09:56:38
作者:
一旦文本或者图象较大则是无法全部存与数据库中
相应的从数据库取出来也是不完全的了
本程序修正了上面的程序,热烈推荐大家看我在上遍文章参考的那本书!
import java.io.*;
import java.sql.*;
public class Db {
public static void main(String[] args) {
Db ac = new Db();
String blobname = "D: est1.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: est2.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[@more@]
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 亚马逊 AWS 云计算部门阿联酋数据中心遭撞击起火,涉事可用区服务正逐步恢复
- IT早报 0302:2026 年 2 月汽车销量榜出炉;荣耀机器人手机 Robot Phone 亮相;多地试点开征新能源汽车“里程税”不实;业内人士回应重新激活魅族需要多少钱...
- 荣耀首款人形机器人亮相 MWC 2026,现场表演舞蹈及后空翻
荣耀首款人形机器人亮相 MWC 2026,现场表演舞蹈及后空翻
26-03-02 - 万志强:魅族 23 已完成开发但不会推向市场,后续 Flyme 仍提供基本维护
- 消息称卡普空将明年评估《生化危机》系列游戏用户反响,影响新作方向
消息称卡普空将明年评估《生化危机》系列游戏用户反响,影响新作方向
26-03-01 - M 站(Metacritic)表态:绝不允许 AI 生成评测进入平台
M 站(Metacritic)表态:绝不允许 AI 生成评测进入平台
26-03-01 - 荣耀 CEO 李健提出 Augmented Human Intelligence 理念:让 AI 既有 IQ 又有 EQ
- 比亚迪 2 月新能源汽车销量 190,190 辆,乘用车 187,782 辆
- 国服上线至今 157 天,太空飞船协作夺宝游戏《无主星渊》宣布 4 月停运
- 《GTA 6》PlayStation 预购页面已在准备中,120 美元传闻待验证
