当前位置: 技术问答>java相关
用jsp连接oracle数据库的大文本问题,问题解决,立刻结贴。(分不够可加)
来源: 互联网 发布时间:2015-07-22
本文导语: 我有一张表test,三个字段, id name info ------------------- 类型分别为Number,Vhrchar2,Clob 怎样写一段jsp程序插入数据和读取数据, 最好有完整的源程序。 如果info字段可以改为其它类型,并且可以存大文本也行。 ...
我有一张表test,三个字段,
id name info
-------------------
类型分别为Number,Vhrchar2,Clob
怎样写一段jsp程序插入数据和读取数据,
最好有完整的源程序。
如果info字段可以改为其它类型,并且可以存大文本也行。
谢谢!
测试成功马上结贴。
-------------------------------------
我想给200分但是,csdn程序不准,不知为何?
id name info
-------------------
类型分别为Number,Vhrchar2,Clob
怎样写一段jsp程序插入数据和读取数据,
最好有完整的源程序。
如果info字段可以改为其它类型,并且可以存大文本也行。
谢谢!
测试成功马上结贴。
-------------------------------------
我想给200分但是,csdn程序不准,不知为何?
|
import java.io.OutputStream;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Types;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;
import java.io.*;
import com.brjl.database.*;
public class DatabaseClob{
public String getClob(String sqlStr){
Connection conn = null;
Statement stmt = null;
CLOB lob_loc = null;
String buf="";
int len=0;
try{
JdbcConnect myConn=new JdbcConnect();
conn=myConn.getConn();
conn.setAutoCommit (false);
stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery (sqlStr);
if (rset.next())
{
lob_loc = ((OracleResultSet)rset).getCLOB (1);
}
len =(int)lob_loc.length ();
buf = lob_loc.getSubString(1,len);
}catch(SQLException e){
System.out.println("建立Statement时错误:"+e.toString());
}
try{
stmt.close();
conn.commit();
conn.close();
}catch(Exception e){
System.out.println("关闭数据库连接时错误:"+e.toString());
}
return buf;
}
public String setClob(String sqlStr,String clobName,String info){
String result=null;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
java.io.Writer writer;
char[] data=new char[info.length()];
try{
JdbcConnect myConn=new JdbcConnect();
conn=myConn.getConn();
conn.setAutoCommit(false);
stmt = conn.prepareStatement(sqlStr,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery();
if (rs.next())
{
try{
Clob clob = rs.getClob(clobName);
writer=((CLOB)clob).getCharacterOutputStream();
info.getChars(0,info.length(),data,0);
writer.write(data);
writer.flush();
writer.close();
conn.commit();
}catch(Exception e)
{
conn.rollback();
result=e.toString();
System.out.println(e.toString());
}
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
System.out.println("建立Statement时错误:"+e.toString());
result="建立Statement时错误:"+e.toString();
}
return result;
}
}
上面是完整的clob的操作,如果肯给200分,那真太高兴了。
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Types;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.*;
import oracle.jdbc.driver.*;
import oracle.sql.*;
import java.io.*;
import com.brjl.database.*;
public class DatabaseClob{
public String getClob(String sqlStr){
Connection conn = null;
Statement stmt = null;
CLOB lob_loc = null;
String buf="";
int len=0;
try{
JdbcConnect myConn=new JdbcConnect();
conn=myConn.getConn();
conn.setAutoCommit (false);
stmt = conn.createStatement ();
ResultSet rset = stmt.executeQuery (sqlStr);
if (rset.next())
{
lob_loc = ((OracleResultSet)rset).getCLOB (1);
}
len =(int)lob_loc.length ();
buf = lob_loc.getSubString(1,len);
}catch(SQLException e){
System.out.println("建立Statement时错误:"+e.toString());
}
try{
stmt.close();
conn.commit();
conn.close();
}catch(Exception e){
System.out.println("关闭数据库连接时错误:"+e.toString());
}
return buf;
}
public String setClob(String sqlStr,String clobName,String info){
String result=null;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
java.io.Writer writer;
char[] data=new char[info.length()];
try{
JdbcConnect myConn=new JdbcConnect();
conn=myConn.getConn();
conn.setAutoCommit(false);
stmt = conn.prepareStatement(sqlStr,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery();
if (rs.next())
{
try{
Clob clob = rs.getClob(clobName);
writer=((CLOB)clob).getCharacterOutputStream();
info.getChars(0,info.length(),data,0);
writer.write(data);
writer.flush();
writer.close();
conn.commit();
}catch(Exception e)
{
conn.rollback();
result=e.toString();
System.out.println(e.toString());
}
}
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
System.out.println("建立Statement时错误:"+e.toString());
result="建立Statement时错误:"+e.toString();
}
return result;
}
}
上面是完整的clob的操作,如果肯给200分,那真太高兴了。