?????????????????????????????????????????????

setXXXStream???????????????????????????????????????????????????????????????????????????????????????????????????????????????

JDBC??????IN???????????????Java???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????JDBC???????????????????????????????????????????????????????????????????????????????????? Derby??????JDBC 1.2????????????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????
  • setBinaryStream

    ???????????????????????????????????????????????????????????????

  • setAsciiStream

    ASCII?????????????????????????????????????????????

  • setUnicodeStream

    Unicode?????????????????????????????????????????????

JDBC 2.0???JDBC 3.0?????????????????????????????????????????????????????????????????????Derby?????????????????????????????????JDK 1.5?????????????????????????????????????????????????????????????????????JDK1.6????????????????????????Derby???JDBC4.0???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????????????????????Java??????????????????????????????????????????????????????java.io.InputStream???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

JDBC?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??? 1. ????????????????????????JDBC???????????????
?????????????????? ????????????Java?????? AsciiStream UnicodeStream BinaryStream
CLOB java.sql.Clob x x  
CHAR   x x  
VARCHAR   x x  
LONGVARCHAR   X X  
BINARY   x x x
BLOB java.sql.Blob x x x
VARBINARY   x x x
LONGVARBINARY   x x X
???:
  • ???????????????????????????X??????????????????????????????????????????????????????????????????????????????????????????SQL??????java.sql.Types???????????????????????????????????????
  • ???????????????????????????????????????????????????LONG VARCHAR?????????LONG VARCHAR FOR BIT DATA????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? LONG VARCHAR?????????LONG VARCHAR FOR BIT DATA??????????????????????????????????????????????????????????????????????????????????????????
  • ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
???????????????java.io.File???????????????????????????LONG VARCHAR????????????????????????????????????????????????
Statement s = conn.createStatement();
s.executeUpdate("CREATE TABLE atable (a INT, b LONG VARCHAR)");
conn.commit();
java.io.File file = new java.io.File("derby.txt");
int fileLength = (int) file.length();
// ?????????????????????????????????????????????
java.io.InputStream fin = new java.io.FileInputStream(file);
PreparedStatement ps = conn.prepareStatement(
    "INSERT INTO atable VALUES (?, ?)");
ps.setInt(1, 1);
// ??????????????????????????????????????????????????????????????????
ps.setAsciiStream(2, fin, fileLength);
ps.execute();
conn.commit();