/**
*说明:
*通过jdbc-odbc往access数据库中插入图片、或者乱七八糟的文件都行
*注意,用datainputstream会出错
*
/
import java.sql.*;
import java.io.fileinputstream;
public class sss
{
public static void main(string args[])
{
try
{
//连接access数据库,这里用了连接串哦
class.forname("sun.jdbc.odbc.jdbcodbcdriver").newinstance();
java.sql.connection conctn = drivermanager.getconnection(
"jdbc:odbc:;"+
"driver=driver do microsoft access (*.mdb);"+
"uid=admin;"+
"usercommitsync=yes;"+
"threads=3;"+
"safetransactions=0;"+
"pagetimeout=5;"+
"maxscanrows=8;"+
"maxbuffersize=2048;"+
"fil=ms access;"+
"driverid=25;"+
//"defaultdir=c:\\documents and settings\\administrator\\my documents;"+
"dbq=d:\\gtk.mdb"
);
int length = 0;
//
// 连接对象设置数据库为
//
conctn.setautocommit(false);
//
// 预编译指令
//
preparedstatement pstmt = conctn.preparestatement( "insert into testsaveimg ( title, image ) values ( ? , ? )" );
//
// 得到一个文件输入流
//
fileinputstream in = new fileinputstream( "d:\\test.jpg" );
length = in.available();
system.out.println( in.tostring() +" has "+ length +" bytes" );
//
// 设置插入的值
//
pstmt.setstring( 1, "插入图片的标题" );
pstmt.setbinarystream( 2, in , in.available() );
//这里in是文件输入流,如果用datainputstream就会出错,in.available()是in的长度
//
// 执行插入操作
//
system.out.println( "插入了 "+ pstmt.executeupdate ()+ " 行数据" );
conctn.commit();
pstmt.close();
conctn.close();
}catch(exception e){
e.printstacktrace();
system.out.println("出错了!");
}
}
}
