Oracle中Clob类型转换问题 ·_·! (很急!) java中创建了一个对象,例如BookModel ;数据库中有一个表,例如: MYTABLE ;MYTABLE中有一个clob类型的大字段book,我用流的方式将整个BookModel存入了该book字段中。但是读取这个字段的时候,我不知道怎么将这个clob类型的book字段,转换成我的BookModel了。请各位帮帮忙,给我想想办法,指点指点。急! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 到JAVA区吧,可能回答的人要多一点 java中创建了一个对象,例如BookModel ; 数据库中有一个表,例如: MYTABLE ; MYTABLE中有一个clob类型的大字段book,我用流的方式将整个BookModel存入了该book字段中。 但是读取这个字段的时候,我不知道怎么将这个clob类型的book字段,转换成我的BookModel了。 请各位帮帮忙,给我想想办法,指点指点。 你把整个对象都写入数据库中??是不是搞错了哟你!你应该是把该对象的各个属性的值写入数据库中,而不是把该对象写入数据库中。下面给你给关于数据库存取clob的例子:import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;import java.io.Reader;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;import oracle.jdbc.driver.OracleDriver;import oracle.jdbc.driver.OraclePreparedStatement;/** * @author ibm * */public class TestClob { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { String url = "jdbc:oracle:thin:@localhost:1521:orclu"; String username = "xxx_name"; String passwd = "xxxxx_passwd"; // -----------------------------------ORCLU_TEST_TBS Properties props = new Properties(); props.put("user", username); props.put("password", passwd); props.put("setBigStringTryClob", "true"); DriverManager.registerDriver(new OracleDriver()); Connection conn = DriverManager.getConnection(url, props); // PreparedStatement pstmt = // conn.prepareStatement("insert into clob_tab values(?)"); String str = readFile("c:\\sqltest.sql"); OraclePreparedStatement opstmt = (OraclePreparedStatement) conn .prepareStatement("insert into clob_tab values(?)"); opstmt.setStringForClob(1, str); opstmt.executeUpdate(); ResultSet rset = null; opstmt = (OraclePreparedStatement) conn.prepareStatement("select clob_col from clob_tab"); rset = opstmt.executeQuery(); String clobVal=null; while (rset.next()){ clobVal = rset.getString(1); System.out.println("CLOB LENGTH: "+clobVal.length()); } } public static String readFile(String path) throws Exception { BufferedReader reader = new BufferedReader(new FileReader(path)); String tt = ""; String content; content = reader.readLine(); while (null != content) { tt += content; content = reader.readLine(); } return tt; }} 我就是要把整个对象存在一个clob字段中,这个问题我已经解决了。谢谢 关于OCI将数据入库的一些问题,求指点 DB_LINK的创建及使用问题 请教 linux下配置orcale的双机,负载均衡? EXP-00056: 遇到 ORACLE 错误 6550 使用group by后怎么查询除分组字段外的字段? 我创建了一个用户,但不能以normal方式登陆. oracel 11g数据导入问题,急!!!!!!!! 能不能不安装ORACLE9I客户端 给视图加自增字段---- 高手吖!能在Oracle 中用 "Or" 来查询吗?生成的SQL语句什么样子吖? 小弟求助,数据重复的问题 初学者~~求个行合并SQL的写法
下面给你给关于数据库存取clob的例子:import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;import oracle.jdbc.driver.OracleDriver;
import oracle.jdbc.driver.OraclePreparedStatement;/**
* @author ibm
*
*/
public class TestClob { /**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
String url = "jdbc:oracle:thin:@localhost:1521:orclu";
String username = "xxx_name";
String passwd = "xxxxx_passwd";
// -----------------------------------ORCLU_TEST_TBS
Properties props = new Properties();
props.put("user", username);
props.put("password", passwd);
props.put("setBigStringTryClob", "true");
DriverManager.registerDriver(new OracleDriver());
Connection conn = DriverManager.getConnection(url, props); // PreparedStatement pstmt =
// conn.prepareStatement("insert into clob_tab values(?)");
String str = readFile("c:\\sqltest.sql"); OraclePreparedStatement opstmt = (OraclePreparedStatement) conn
.prepareStatement("insert into clob_tab values(?)");
opstmt.setStringForClob(1, str);
opstmt.executeUpdate();
ResultSet rset = null;
opstmt = (OraclePreparedStatement) conn.prepareStatement("select clob_col from clob_tab");
rset = opstmt.executeQuery();
String clobVal=null;
while (rset.next()){
clobVal = rset.getString(1);
System.out.println("CLOB LENGTH: "+clobVal.length());
}
} public static String readFile(String path) throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(path));
String tt = "";
String content;
content = reader.readLine();
while (null != content) {
tt += content;
content = reader.readLine();
}
return tt; }
}
我就是要把整个对象存在一个clob字段中,
这个问题我已经解决了。谢谢