JDBC 2.0中的高级数据类型

加qq319128091

加qq319128091

2016-01-29 12:57

JDBC 2.0中的高级数据类型,JDBC 2.0中的高级数据类型
  JDBC 2.0中提供了对SQL3标准中引入的新的数据类型,如Blob(binary large object)、Clob(character large object)、Array 对象、REF(对象参考,object reference)和 UDT(用户定义数据类型,user-defined datatype)等的支持。这些新的数据类型结合在一起,使得数据库设计人员可以创建更丰富的模式,并简化了对复杂数据的处理和持久化。

  例如,我们要向tbl_User表中插入用户的照片,这时就可以使用流将Blob对象导入数据库中:

  String sql = "intsert into tbl_User values(?, ?)";
  PreparedStatement pstmt = con.prepareStatement(sql) ;

  File file = new File("C:/images/photo.jpg") ;
  FileInputStream fis = new FileInputStream(file);

  pstmt.setString(1, "John");
  pstmt.setBinaryStream(2, fis, (int)file.length());

  pstmt.executeUpdate();

  pstmt.close();
  fis.close();

  其中SQL语句的第一个参数为用户名,第二个参数为photo,它是一个Blob型对象。这样在将数据插入数据库之后,我们就可以用程序获取该数据了:

  String sql = "select photo from tbl_User where username = ?";
  PreparedStatement pstmt = con.prepareStatement(selectSQL) ;

  pstmt.setString(1, "John");
  ResultSet rs = pstmt.executeQuery() ;

  rs.next();
  Blob blob = rs.getBlob("photo") ;

  ImageIcon icon = new ImageIcon(blob.getBytes(1, (int)blob.length())) ;
  JLabel photo = new JLabel(icon);

  rs.close();
  pstmt.close();

  类似地,我们也可以对Clob对象进行相应的操作。下面是一个从 ASCII 流中直接将 Clob对象插入数据库中的例子:

  String sql = "insert into tbl_Articles values(?,?)";
  PreparedStatement pstmt = con.prepareStatement(sql) ;

  File file = new File("C:/data/news.txt") ;
  FileInputStream fis = new FileInputStream(file);

  pstmt.setString(1, "Iraq War");
  pstmt.setAsciiStream(2, fis, (int)file.length());

  pstmt.executeUpdate();

  pstmt.close();
  fis.close();

  同样,我们也可以用类似的方法将Clob对象从数据库中取出:

  String sql = "select content from tbl_Articles where title = ?";
  PreparedStatement pstmt = con.prepareStatement(sql) ;

  pstmt.setString(1, "Iraq War");
  ResultSet rs = pstmt.executeQuery() ;

  rs.next() ;
  Clob clob = rs.getClob("content") ;

  InputStreamReader in = new InputStreamReader(clob.getAsciiStream()) ;

  JTextArea text = new JTextArea(readString(in)) ;

  rs.close();
  pstmt.close();
展开更多 50%)
分享

猜你喜欢

JDBC 2.0中的高级数据类型

Java JAVA基础
JDBC 2.0中的高级数据类型

认识JDBC 2.0中的高级数据类型

编程语言 网络编程
认识JDBC 2.0中的高级数据类型

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

ASP数据类型

ASP
ASP数据类型

VBScript数据类型

编程语言 网络编程
VBScript数据类型

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Access 数据类型与 MS SQL 数据类型的相应

编程语言 网络编程
Access 数据类型与 MS SQL 数据类型的相应

SQL Server 中易混淆的数据类型

SQLServer
SQL Server 中易混淆的数据类型

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《放开那三国》副本怎么站位

《放开那三国》副本怎么站位

C#中结构与类的区别

C#中结构与类的区别
下拉加载更多内容 ↓