|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。
JDBC2.0中供应了对SQL3尺度中引进的新的数据范例,如Blob(binarylargeobject)、Clob(characterlargeobject)、Array对象、REF(对象参考,objectreference)和UDT(用户界说数据范例,user-defineddatatype)等的撑持。这些新的数据范例分离在一同,使得数据库计划职员能够创立更丰厚的形式,并简化了对庞大数据的处置和耐久化。
比方,我们要向tbl_User表中拔出用户的照片,这时候就能够利用流将Blob对象导进数据库中:
Stringsql="intsertintotbl_Uservalues(?,?)";
PreparedStatementpstmt=con.prepareStatement(sql);
Filefile=newFile("C:/images/photo.jpg");
FileInputStreamfis=newFileInputStream(file);
pstmt.setString(1,"John");
pstmt.setBinaryStream(2,fis,(int)file.length());
pstmt.executeUpdate();
pstmt.close();
fis.close();
个中SQL语句的第一个参数为用户名,第二个参数为photo,它是一个Blob型对象。如许在将数据拔出数据库以后,我们就能够用程序猎取该数据了:
Stringsql="selectphotofromtbl_Userwhereusername=?";
PreparedStatementpstmt=con.prepareStatement(selectSQL);
pstmt.setString(1,"John");
ResultSetrs=pstmt.executeQuery();
rs.next();
Blobblob=rs.getBlob("photo");
ImageIconicon=newImageIcon(blob.getBytes(1,(int)blob.length()));
JLabelphoto=newJLabel(icon);
rs.close();
pstmt.close();
相似地,我们也能够对Clob对象举行响应的操纵。上面是一个从ASCII流中间接将Clob对象拔出数据库中的例子:
Stringsql="insertintotbl_Articlesvalues(?,?)";
PreparedStatementpstmt=con.prepareStatement(sql);
Filefile=newFile("C:/data/news.txt");
FileInputStreamfis=newFileInputStream(file);
pstmt.setString(1,"IraqWar");
pstmt.setAsciiStream(2,fis,(int)file.length());
pstmt.executeUpdate();
pstmt.close();
fis.close();
一样,我们也能够用相似的办法将Clob对象从数据库中掏出:
Stringsql="selectcontentfromtbl_Articleswheretitle=?";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,"IraqWar");
ResultSetrs=pstmt.executeQuery();
rs.next();
Clobclob=rs.getClob("content");
InputStreamReaderin=newInputStreamReader(clob.getAsciiStream());
JTextAreatext=newJTextArea(readString(in));
rs.close();
pstmt.close();
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译) |
|