« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9693650 建立时间:2004年12月20日 |

| |
[java语言]oracle 10g jdbc驱动的bug真多 原创空间
邢红瑞 发表于 2005/4/27 10:48:25 |
经过几天的夜战,终于知道使用spring对oracle的存储过程操作,程序死掉的真正原因,一旦执行存储过程没有任何返回值,因为“Statement.getUpdateCount() returns 1 instead of -1”,是oracle的驱动的bug,10.1.0.2的驱动就不行,听说10.1.0.3就没有问题,但是10.1.0.3的jdbc驱动不能下载。大家可以使用weblogic8.1SP3带的10.1.0.2或weblogic9beta的10.1.0.2,可以解决这个问题。不知道开发oracle jdbc的程序员是什末人,没毕业的大学生,还是拖欠了工资的程序员,开发水平远不如开源数据库的jdbc驱动的人呢,再次建议oracle驱动最好是自己命名,把文件名加上版本信息,要不会死人的。 |
|
[java语言]使用jdbc写入oracle的blob与clob字段 原创空间
邢红瑞 发表于 2005/4/26 9:24:45 |
很多人问我不使用spring,如何存取oracle的blob与clob字段,其实这样的例子很多的,只是大家没有仔细的寻找,我顺手写了存spring的imagedb的例子。
package jdbc;
import java.sql.PreparedStatement; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Blob; import java.io.OutputStream; import java.sql.Statement; import java.io.File; import java.io.InputStream; import java.io.FileInputStream; import java.sql.Clob; import java.i |
|
[j2ee]spring对于web编辑页面中POJO保持和传递的做法带来的问题 原创空间, 软件技术
邢红瑞 发表于 2005/4/25 13:08:48 |
这是个老问题,不光是spring,所有mvc都必须处理这个问题. 一般的做法是构造一个的commandObject记录需要修改的属性,并且记录主键id。 大致流程是,先load POJO,copy属性到commandObject,页面修改了后,根据主键id再load一次POJO,然后copy属性一次,再update,所以在update之前必须select一次. 通用的解决办法是把POJO放到httpSession中,页面里直接对httpSession里的POJO操作,当进行save操作的时候 从httpSession里拿到的POJO,就能直接用hibernateSession.update回数据库 ,因为hibernate的PO可以脱离hibernateSession然后再次进入,不用构造commandObject,让POJO直接传递到View再回到Controller。 spring mvc已经实现了相应的功能,我们可以直接把hibernate的PO作为commandObject类传递.
在spring的AbstractFormC |
|
[java语言]spring对oracle的clob和StoredProcedure 的处理 原创空间
邢红瑞 发表于 2005/4/21 9:16:20 |
使用spring后发现和oracle的驱动有了不解之缘,最初是spring的jdbc存取oracle的clob字段,出现
org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLException: Io 异常: Software caused connection abort: socket write error
问了Juergen Hoeller几次,也没有知道原因所在。只有加入了hibernate解决此问题,hibernate如何解决oracle的clob字段,看我以前的帖子(http://blogger.org.cn/blog/more.asp?name=hongrui&id=1171 |
|
[j2ee]在spring的initBinder()如何访问command object 原创空间, 软件技术
邢红瑞 发表于 2005/4/20 21:35:29 |
在spring的initBinder()如何访问command object 一般的情况下,不会遇到这个问题,有一次使用AbstractWizardFormController,如果是SimpleFormController, formBackingObject() 可以创建command object,但是AbstractWizardFormController在提交表单时,formBackingObject()不会被调用 只好在initBinder()中创建对象,必须使用getTarget(); public void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) { log.debug("sessionForm---------- |
|
[java语言]编写安全的代码:数据库连接池的共享 原创空间
邢红瑞 发表于 2005/4/18 12:34:23 |
最近公司用weblogic的连接池连接oracle数据库,只要是oracle死掉或网络断掉,不但重启oracle,还必须重新启动weblogic,这个问题几年前,就遇到了,听说可以设定为autoconnect,没有试过。稳定性远不如jboss的jmx的连接池,无论oracle如何重起,jboss一直保持连接,我们boss服务器最长1年没有重启。从tomcat 5.0.18之后,dbcp连接池稳定了很多,成了spring的标准配置。
看了agilejava的blog(http://agilejava.blogbus.com/logs/2005/04/1104185.html),知道还有一家比较烂的,IBM的websphere,事务处理有问题。我估计原因是这样的,是<res-sharing-scope>Sharable</res-sharing-scope>的设置,他告诉数据源,在同一事务中,事务由容器或 |
|
[数据库]java读取oracle的存储过程 原创空间
邢红瑞 发表于 2005/4/16 19:05:36 |
java读取oracle的存储过程网上的例子不少,都太简单,没有一个返回参考游标的,返回记录集,自己写一个怕日后忘了。
oracle的PLSQL
CREATE OR REPLACE package chapter_13 as TYPE rs IS REF CURSOR ; procedure founder(oFields out rs);
end;
CREATE OR REPLACE package body chapter_13 as
PROCEDURE founder(oFields out rs) IS BEGIN open oFields for select * from person; END founder; end; java代码
package jdbc;
import java.io.*; import java.sql.*; imp |
|
|