最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
优化JDBC编程-多提提意见
时间:2022-07-02 18:21:20 编辑:袖梨 来源:一聚教程网
优化JDBC编程
这是我根据MS SQL SERVER 2000 JDBC DRIVER HELP,并参考其它资料整理而成。ms的这个帮助文件实在有失大家风范,示例代码很.....有兴趣者可以去下载http://download.microsoft.com/download/SQLSVR2000/jdbc/2000/NT45XP/EN-US/setup.exe。由于本人水平有限,文中不当之处请大家批评指正。
1.尽量减少对数据库元数据方法的使用
同样是产生一个ResultSet对象,DatabaseMetaData 对象的方法比其它JDBC方法相对要慢,因此平繁使用该方法会降低系统的性能。
在程序中应当对产生的结果集信息进行高速缓存,比如将getTypeInfo()返回的结果集存入Vector或Hashtable中,这样可大大提高程序的效率。
2.应避免的方法调用模式
在方法调用时应当尽量避免传入null做为参数,虽然有时能执行成功,但这对DB Server负担很重。其实在很多情况下所需的参数是已知的。比如:
//这里略去了捕获违例代码(下同)。
DatabaseMetaData md=...;
ResultSet rs=md.getTables(null,null,"authors",null);//取得MS SQL SERVER pubs数据库中authors表的信息.
应当写成:
ResultSet rs=md.getTables("northwind","dbo","authors",new String[]{"TABLE"});
这样使程序更有效可靠。
3.使用哑查询语句来取得表的相关特征信息
一个哑查询语句(Dummy Query,译为哑查询不知是否恰当,愿与大家探讨)不会产生有记录的结果集,比如:select * from tableName where 1=0,因为条件永不成立,DB Server 不会执行这条语句。因此,在不需产生记录行的情况下,哑查询能极大地提高程序的执行效率。比如我们要了解一个表的有关列信息时,上面的语句比select * from tableName这个语句要高效得多,后者数据库服务器要检索所有的行并返回一个记录集,而前者不需要。针对这一问题,JDBC可以有以下两种方法:
case 1:使用getColumns()方法
//getColumns()是DatabaseMetaData的一个方法,其有关信息请查阅JDK1.3文档
这是我根据MS SQL SERVER 2000 JDBC DRIVER HELP,并参考其它资料整理而成。ms的这个帮助文件实在有失大家风范,示例代码很.....有兴趣者可以去下载http://download.microsoft.com/download/SQLSVR2000/jdbc/2000/NT45XP/EN-US/setup.exe。由于本人水平有限,文中不当之处请大家批评指正。
1.尽量减少对数据库元数据方法的使用
同样是产生一个ResultSet对象,DatabaseMetaData 对象的方法比其它JDBC方法相对要慢,因此平繁使用该方法会降低系统的性能。
在程序中应当对产生的结果集信息进行高速缓存,比如将getTypeInfo()返回的结果集存入Vector或Hashtable中,这样可大大提高程序的效率。
2.应避免的方法调用模式
在方法调用时应当尽量避免传入null做为参数,虽然有时能执行成功,但这对DB Server负担很重。其实在很多情况下所需的参数是已知的。比如:
//这里略去了捕获违例代码(下同)。
DatabaseMetaData md=...;
ResultSet rs=md.getTables(null,null,"authors",null);//取得MS SQL SERVER pubs数据库中authors表的信息.
应当写成:
ResultSet rs=md.getTables("northwind","dbo","authors",new String[]{"TABLE"});
这样使程序更有效可靠。
3.使用哑查询语句来取得表的相关特征信息
一个哑查询语句(Dummy Query,译为哑查询不知是否恰当,愿与大家探讨)不会产生有记录的结果集,比如:select * from tableName where 1=0,因为条件永不成立,DB Server 不会执行这条语句。因此,在不需产生记录行的情况下,哑查询能极大地提高程序的执行效率。比如我们要了解一个表的有关列信息时,上面的语句比select * from tableName这个语句要高效得多,后者数据库服务器要检索所有的行并返回一个记录集,而前者不需要。针对这一问题,JDBC可以有以下两种方法:
case 1:使用getColumns()方法
//getColumns()是DatabaseMetaData的一个方法,其有关信息请查阅JDK1.3文档
相关文章
- 明日之后步枪兵技能怎么点攻略 06-15
- 奇迹暖暖花语藤蔓午夜玫瑰获得方式有哪些 06-15
- 深空之眼Roguelike模式多维变量怎么样 06-15
- SQD币怎么操作?2025OKX交易所新手投资 06-15
- HOME币购买步骤-2025币安交易所快速教程 06-15
- 奇迹暖暖第三卷第三章支线1怎么怎么搭配最强 06-15