cike0415 发表于 2018-9-24 15:19:13

JAVA完全控制Oracle中BLOB、CLOB说明

二、CLOB操作  1、入库
  (1)JDBC方式
  //通过JDBC获得数据库连接

  >  Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:testdb", "test", "test");
  con.setAutoCommit(false);
  Statement st = con.createStatement();
  //插入一个空对象empty_clob()
  st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
  //锁定数据行进行更新,注意“for update”语句

  ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where>  if (rs.next())
  {
  //得到java.sql.Clob对象后强制转换为oracle.sql.CLOB
  oracle.sql.CLOB clob = (oracle.sql.CLOB) rs.getClob("CLOBATTR");
  Writer outStream = clob.getCharacterOutputStream();
  //data是传入的字符串,定义:String data
  char[] c = data.toCharArray();
  outStream.write(c, 0, c.length);
  }
  outStream.flush();
  outStream.close();
  con.commit();
  con.close();
  (2)JNDI方式
  //通过JNDI获得数据库连接
  Context context = new InitialContext();
  ds = (DataSource) context.lookup("ORA_JNDI");
  Connection con = ds.getConnection();
  con.setAutoCommit(false);
  Statement st = con.createStatement();
  //插入一个空对象empty_clob()
  st.executeUpdate("insert into TESTCLOB (ID, NAME, CLOBATTR) values (1, "thename", empty_clob())");
  //锁定数据行进行更新,注意“for update”语句

  ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where>  if (rs.next())
  {
  //得到java.sql.Clob对象后强制转换为weblogic.jdbc.vendor.oracle.OracleThinClob(不同的App Server对应的可能会不同)
  weblogic.jdbc.vendor.oracle.OracleThinClob clob = (weblogic.jdbc.vendor.oracle.OracleThinClob) rs.getClob("CLOBATTR");
  Writer outStream = clob.getCharacterOutputStream();
  //data是传入的字符串,定义:String data
  char[] c = data.toCharArray();
  outStream.write(c, 0, c.length);
  }
  outStream.flush();
  outStream.close();
  con.commit();
  con.close();

页: [1]
查看完整版本: JAVA完全控制Oracle中BLOB、CLOB说明