oracle long string类型,java读取显示/写入oracle long类型

使用jsp和oracle过程中遇到如下的问题

(1)在oracle中写存储过程并且在java中读取 发现没法用getString获取long类型.而一起取出的其他varchar2都能作为String值取出

String content=rs.getString("content"); //取不到值 显示null

问下如何做才能将long类型值取出 并且在一个textarea中显示?

(2)在jsp中我用String类型来获取textarea的值并且将其写入long字段。这样是可行的

cstmt.setString(9,content); //输入第九为long类型字段,content为字符串。

但是不知道这样输入会不会对输入的数据造成什么破坏。

是不是有更好的方法来将textarea的数据输入oracle的long字段。

Code for inserting Long Data

public void insertData(String code, String name, String partner,

String textfile) throws Exception {

// Create a File to read data from the specified text file (textfile)

File file =

new File(getClass().getClassLoader().getResource(textfile).getFile());

// Prepare the statement for inserting a row into the OTN_AIRLINES_LONG

PreparedStatement pstmt = connection.prepareStatement(" INSERT INTO "+

"otn_airlines_long( code, name, partner,"+

"airline_insurance_data) VALUES(?, ?, ?, ?)");

// Bind the parameter values for the above statement

pstmt.setString(1, code);

pstmt.setString(2, name);

pstmt.setString(3, partner);

// Bind the AIRLINE_INSURANCE_DATA column to an input Ascii stream that

// returns the Ascii data to be inserted into the LONGRAW columnpstmt.setCharacterStream(4, new FileReader(file), (int)file.length());

// Execute the statement

pstmt.execute();

}

}

................

................

Code for retrieving Long Data

public void displayLongData(String code) {

........

........

// Create a PreparedStatement object to execute the QUERY

PreparedStatement pst =

connection.prepareStatement("SELECT airline_insurance_data"+

" FROM otn_airlines_long WHERE code = ?");

// Bind the airline code to the querypst.setString(1, code);

gui.putStatus("Reading Long Column from the DB, Please wait...");

// Excute the Query

ResultSet resultSet = pst.executeQuery();

// Populate the ResultSetwhile(resultSet.next()) {

InputStream insurancedata; // Holds the LONG data

StringBuffer dataBuffer = new StringBuffer();

/* Obtain the LONG data into a byte array. LONG data can be accessed in

two ways: 1) By retrieving all the data in one shot (getBytes method)

2) By using streams. The LONG data is made available to the program

as an Ascii or Unicode stream, and the data can be retrieved chunk by

chunk, which is more eficient in terms of memory usage

In this sample we illustrate retrieval using streams */

insurancedata = resultSet.getAsciiStream(1);

while((chunk = insurancedata.read()) != -1) {

dataBuffer.append((char)chunk);

}

................................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值