首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

使用ibatis中遇到的有关问题,请迷津

2012-02-21 
使用ibatis中遇到的问题,请高手指点迷津我最近做了一个基于web开发的java项目,其中用到了ibatis技术。我需

使用ibatis中遇到的问题,请高手指点迷津
我最近做了一个基于web开发的java项目,其中用到了ibatis技术。

我需要用java的一个方法调用ibatis的配置文件,然后往oracle数据库中写入一条记录,其中有两个字段是Clob的(大文本),就为这两个字段的读写折腾了好久,始终能正确运行。

公司要求我做项目的可以使用oracle10g的jdbc   driver(ojdbc14.jar),也可以换成oracle9i的jdbcdriver(classes12.jar),

我目前的状况是换成10g的驱动后,就可以正确对大文本字段进行读写;
但是换成9i的驱动后,读取的时候是个null,而且写入的时候抛出异常,会报的错误为:
java.sql.SQLException:   Io   异常:   Connection   reset   by   peer:   socket   write   error
                at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
                at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
                at   oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
                at   oracle.jdbc.driver.OracleConnection.rollback(OracleConnection.java:13
80)
                at   com.ibatis.common.jdbc.SimpleDataSource.pushConnection(SimpleDataSour
ce.java:527)
                at   com.ibatis.common.jdbc.SimpleDataSource.access$100(SimpleDataSource.j
ava:52)
                at   com.ibatis.common.jdbc.SimpleDataSource$SimplePooledConnection.invoke
(SimpleDataSource.java:954)
                at   $Proxy0.close(Unknown   Source)
                at   com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.close(JdbcT
ransaction.java:81)
                at   com.ibatis.sqlmap.engine.transaction.TransactionManager.end(Transacti
onManager.java:110)
                at   com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.endTransaction(S
qlMapExecutorDelegate.java:780)
                at   com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.endTransaction(SqlMap
SessionImpl.java:170)
                at   com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.endTransaction(SqlMapC
lientImpl.java:149)
                at   com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.autoEndTransacti
on(SqlMapExecutorDelegate.java:880)
                at   com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExe
cutorDelegate.java:457)
                at   com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionI
mpl.java:82)
                at   com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImp
l.java:60)
                at   com.lhcc.logging.LogSystemOpe.writeLog(LogSystemOpe.java:153)
                at   com.cltt.datainput.InputOperator.writeLog(InputOperator.java:2703)
                at   com.cltt.datainput.InputOperator.updateData(InputOperator.java:866)
                at   com.cltt.datainput.InputAction.execute(InputAction.java:48)
                at   org.apache.struts.action.RequestProcessor.processActionPerform(Reques


tProcessor.java:484)
                at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:274)
                at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:148
2)
                at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
                at   com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterC
hain.java:113)
                at   com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.ja
va:190)
                at   com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain
.java:177)
                at   com.caucho.server.dispatch.ServletInvocation.service(ServletInvocatio
n.java:221)
                at   com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:262
)
                at   com.caucho.server.port.TcpConnection.run(TcpConnection.java:315)
                at   com.caucho.util.ThreadPool.runTasks(ThreadPool.java:353)
                at   com.caucho.util.ThreadPool.run(ThreadPool.java:302)
                at   java.lang.Thread.run(Thread.java:534)

我在网上查了很多资料,都说是网络连接不好,请问如何解决这个问题啊?这又是什么原因引起的呢?

[解决办法]
你最好为两个不同的驱动写两个不同的取得连接的方法,不要简单替换
[解决办法]
不是这样的,我们是团队开发,几个人要读取同一个连接数据库的属性文件的,我这两个连接的方式都是jdbc的连接方式
[解决办法]
oracle的大文本好像是有些问题,
上次一个项目,在oracle上,数据库导入,大文本丢失,后来只有先改成VARCHAR,后来再改成大文本,
页不知道什么原因,
和java无关,就是在命令行执行
环境:linux as4 + oracle 9204
[解决办法]
我用ojdbc14.jar替换classes12.jar直接访问9i数据库很长时间了,目前没有发现什么兼容性问题,而且解决了原来一些内存溢出的错误,为什么还要用classes12.jar呢?
[解决办法]
这是公司的那帮白痴规定的,必须要用classes12.jar
我跟他们说ojdbc14.jar是向下兼容的,他们也不听
气死我了
[解决办法]
不用oracle,路过
[解决办法]
帮up

热点排行