- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 JDBC分布式事务
在没有开始JDBC分布式事务前,先来回顾一下J2EE平台的数据源的整体构加:在上面的介绍中,可能大家会过于限入理解如何实现ConnectionPoolDataSource和PooledConnection,而忘记了它的整体结构.为了帮助大家更快地理解,我从以下几点进行总结.声明:本文完全是作者根据SUN的文档从实践中总结,没有参考(事实上目前我还没有找到这方面的参考)任何文章:1. Data
2006-07-07 08:57:00 3969 2
原创 oracle一个该死的BUG,后来查它的文档说叫限制.
我KAO,这种限制还不叫BUG?如果你 PreparedStatement ps = conn.prepareStatement("select * from tb_test", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE
2006-07-07 08:45:00 2466 1
原创 Best scheme of oracle multiPage
select /*+first_rows*/ * from test tinner join ( select rid from (select rownum num,rowid rid from test) where num >= start and num ) t1on t.rowid = t1.rid这个语句比
2006-07-07 08:42:00 1717
原创 mysql,sqlserver,oracle三种数据库的大对象存取
mysql 大对象存取:类型一般应该用mediumblod,blob只能存2的16次方个byte,mediumblod是24次方,一般来说够用了.longblob是32次方有些大.MYSQL默认配置只能存1M大小的文件,要修改配置,
2006-07-07 08:41:00 3099 1
原创 为什么要尽量使用PreparedStatement代替Statement?
在JDBC应用中,如果你已经是稍有水平开发者,你就应该尽量以PreparedStatement代替Statement.也就是说,在绝大多数时候都不要使用Statement.基于以下的原因:一.代码的可读性和可维护性.虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次:stmt.e
2006-07-07 08:39:00 5544 1
原创 JDBC高级应用三
JDBC高级应用三再谈JDBC连结为什么要反复谈JDBC连结,因为所以JDBC的性能,最主要的就是JDBC连结,而SQL语句的优化,和JAVA编程无关,你的一个查询语句的效率,是你对于SQL语法的使用技巧,这一方面你就可请教DBA,而不是来看我这种程序设计者的文章.我们已经知道,取得数据库连结,有几种层次的实现方法,一是直接得到物理连结,而是通过传统的连结池(没有多大区别),三是通过java的扩展
2006-07-07 08:34:00 2178 2
原创 常见的几个数据库insert into操作的主键返回值
这几天做管理工具,有一个操作很令人头痛. 当插入一条记录时,我们很多时候都想马当前插入的主键返回出来.作为另一个操作的条件.如果主键是自动生成的(大多数时候是这样),那么取回主键是一种比较困难的事.可能对于一些特殊的数据库必须把in
2006-07-07 08:27:00 12327 1
原创 Spring 调用ORACLE存储过程的结果
Spring 调用ORACLE存储过程的结果oracle 对于高级特性总是与众不同(我极度力讨厌这一点,如果使用它的产品就要对这种产品进行特定的编程,这也是我从不看好weblogic之类的平台的原因),大对象存取一点要用它自己的LOB对象,所幸我还能通过LONG RAW来代替.以便能使程序不需要特定的编码.但对于存储过程(我是说返回结果集的存储过程),我还没有什么方法能用一个通用的程序来处理ORA
2006-07-07 08:26:00 4619 2
原创 DataSource高级应用
在前面的介绍中,我们可以看出, DataSource才能提供最高性能的对数据库的并发访问,但是,对DataSource的引用,也还有很多知识要弄清楚,获取Connection的方式是数据库性能最相关的技术,而对DataSource的调用对数据库性能起着很大的决定作用。 一般对于DataSource的引用是通过以下流程来进行: Context ct = new I
2006-07-07 08:23:00 3043 3
原创 关于多结果集的存储过程的处理
对于一个存诸过程,如果返回的结果是我们预先知道的,那么可以根据存储过程定义的顺序来进行处理(事实上一般不会这样),但对于复杂的多结果集的处理,如何定义一个通用的流程?我们先看一下JDBC本身能为我们提供什么?一个存储过程执行后返回的是boolean型:boolean flag = callableStatement.execute();如果flag为true,那么说明返回了一个结果集(Result
2006-07-07 08:22:00 2838 1
原创 JDBC高级应用二
JDBC高级应用(二)本来想继续谈JDBC的高级连结方式,事务模式.但发现关于大对象存储有很多人在问,所以先来插入一节关于大对象存储的内容,然后再接着原来的思路写下去.JDBC的大对象存储听起来复杂,其实如果你明白了原理以后,就非常简单,网上有关这方面的教材很少,而SUN的文档中,我从1.2开始看到一在仍然是错误的,不知道写文档的人长脑子没有,就那几行代码你试试不就知道了,这么多次重抄下来还是错误
2006-07-07 08:18:00 2691 3
原创 JDBC高级应用一
关于数据库连结我们所说有JDBC高级应用,并不是说它的技术含量很高(也许JAVA平台上不存在什么"技术含量"的说法,因为JAVA是给大家用的而不是给某些人用的).说它是高级应用,是因为它是对于JDBC基础应用来说的扩展,也就是可以优化你的应用性能,或方便于应用的实现.所以说它是一种高级应用而不叫高级技术. JDBC中,java.sql包是基础的,也是核心的功能,javax.sql包则是高级的
2006-07-07 08:16:00 2581 1
原创 JDBC中鲜为人知的"中级应用"
在没有进入JDBC的高级应用前,我先来介绍一下一些"鲜为人知"的中级应用,说它是中级应用,因为对JDBC有所了解的人都应该知道,说它"鲜为人知",我却没有在任何人的代码中或我所见过的任何讲JDBC的书中有提到过,非常奇怪,这本来是JDBC规范啊. select * from table where datetimecol 可是在另的数据库呢? select * from tab
2006-07-07 08:14:00 2350 3
原创 JDBC初级应用实例(二)
JDBC初级应用实例(二)[动态访问数据库] 上面有一位朋友问了,如果在已经连结的情况下,知道当前连结的库的表的情况呢?其实只你已经连结了,你就能知道这个库中所以情况而不仅仅上表的情况: 有时(我到目前只见到过一次),我们对一种新的数据库根本不知道它的结构或者是其中的内容,好坏么我们如何来获取数据库的情况呢? 真实的例子是这样的,我的朋友的公司接到了一个单子,对方使用的数据库是叫
2006-07-07 08:11:00 2080
原创 JDBC初级应用实例(一)
JDBC初级应用实例(一) 在了解JDBC基础知识以后,我们先来写一个数据库操作的类(Bean)以后我们会在这个类的基础上,随着介绍的深入不断提供优化的方案. 要把一个数据库操作独立到一个类(Bean)中,至少要考虑以下几个方面: 1.对于不同层次的应用,应该有不同的得到连结的方法,如果得到连结的方法要随着应用层次的不同而改变,我们就应该把他独立成一个专门的类中,而把在任何应用
2006-07-07 08:09:00 2493 5
原创 JDBC基础(四)
作为基础知识的最后部分,我们来说一说结果集的处理,当然是说对一般结果集的处理.至于存储过程返回的多结果集,我们仍然放在高级应用中介绍. SQL语句如何执行的是查询操作,那就要返回一个ResultSet对象,要想把查询结果最后明白地显示给用户,必须对ResultSet进行处理.ResultSet返回的是一个表中符合条件的记录,对ResultSet的处理要逐行处理,而对于每一行的列的处理
2006-07-07 08:05:00 2202
原创 JDBC基础(三)
关于Statement对象: 前面说过,Statement对象是用来绑定要执行的操作的,在它上面有三种执行方法:即用来执行查询操作的executeQuery(),用来执行更新操作的executeUpdate()和用来执行动态的未知的操作的execute(). JDBC在编译时并不对要执行的SQL语句检测,只是把它看着一个String,只有在驱动程序执行SQL语句时才知道正确与否.
2006-07-07 08:03:00 2278 1
原创 JDBC基础(二)
因为是基础篇,所以还是对每一步骤简单说明一下吧: 前面说是,注册驱动程序有多方法,Class.forName();是一种显式地加载.当一个驱动程序类被Classloader装载后,在溶解的过程中,DriverManager会注册这个驱动类的实例.这个调用是自动发生的,也就是说DriverManager.registerDriver()方法被自动调用了,当然我们也可以直接调用DriverMan
2006-07-07 07:59:00 2104 2
原创 JDBC基础(一)
本来不想写这部份入门级的内容,但既然栏目定为JDBC专栏,还是简单写一些吧.JDBC基础(一) 来,我们认识一下! JDBC,JAVA平台的DATABASE的连通性.白话一句,什么意思啊? 就是JAVA平台上和数据
2006-07-07 07:56:00 2493
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人