欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识

十个 JDBC 劳务派遣管理系统 的最佳实践

点击: 次  来源:宝鼎软件 时间:2017-08-04

原文出处: 王爵nice

JDBC是Java为多种干系型数据库提供的统一的会见接口,以下是我恒久利用JDBC总结的十个最佳实践

1. 利用PrearedStatement

任何一个利用过JDBC的Java措施员险些都知道这个,PreparedStatment可以通过预编译的方法制止我们在拼接SQL时造成SQL注入。

2. 利用ConnectionPool(毗连池)

利用毗连池作为最佳实践险些都成了公认的尺度。一些框架已经提供了内建的毗连池支持, 譬喻Spring中的Database Connection Pool,假如你的应用陈设在JavaEE的应用处事器中, 譬喻JBoss,劳务派遣管理系统,WAS,这些处事器也会有内建的毗连池支持,譬喻DBCP。 利用毗连的原因简朴的说就是因为建设JDBC毗连耗时较量长,假如每次查询都从头打开一个毗连, 然后封锁,机能将会很是低,而假如事先建设好一批毗连缓存起来,利用的时候取出, 不利用的时候仍不封锁,将会节减大量的建设封锁毗连的时间。

3. 禁用自动提交

这个最佳实践在我们利用JDBC的批量提交的时候显得很是有用,将自动提交禁用后, 你可以将一组数据库操纵放在一个事务中,而自动提交模式每次执行SQL语句都将执行本身的事务, 而且在执行竣事提交。

4. 利用Batch Update

JDBC的API提供了通过addBatch()要领向batch中添加SQL查询,然后通过executeBatch()执行批量的查询。 JDBC batch update可以淘汰数据库数据传输的来回次数,从而提高机能。

5. 利用列名获取ResultSet中的数据,从而制止invalidColumIndexError

JDBC中的查询功效封装在ResultSet中,我们可以通过列名和列序号两种方 式获取查询的数据, 当我们传入的列序号不正确的时候,就会抛出invalidColumIndexException, 譬喻你传入了0,就会堕落,因为ResultSet中的列序号是从1开始的。 别的,假如你变动了数据表中列的顺序,你也不必变动JDBC代码,保持了措施的结实性。 有一些Java措施员 大概会说通过序号会见列要比列名会见快一些,确实是这样,可是为了措施的结实性、可读性,我照旧更推荐你利用列名来会见。

6. 利用变量绑定而不是字符串拼接

在第一条最佳实践中,劳务派遣管理系统,我们已经说过要利用PreparedStatment可以防备注入,软件开发,而利用? 可能其他占位符也会晋升机能,因为这样数据库就可以利用差异的参数执行沟通的查询, 这个最佳实践带来更高的机能的同时也防备了SQL注入。

7. 要记着封锁Statement、PreparedStatement和Connection

凡是的做法是在finally块中封锁它们,这样做的长处是岂论语句执行正确与否, 不管是否有异常抛出,都能担保资源被释放。在Java7中,可以通过Automatic Resource Management Block来自动的封锁资源。

8. 选择符合的JDBC驱动

有四种JDBC驱动,别离是

  1. JDBC-ODBC Bridge driver (bridge driver)
  2. Native-API/partly Java driver (native driver)
  3. AllJava/Net-protocol driver (middleware driver)
  4. All Java/Native-protocol driver (Pure java driver)

9. 只管利用尺度的SQL语句,从而在某种水平上制止数据库对SQL支持的差别

差异的数据库厂商的数据库产物支持的SQL的语法会有必然的进出,为了利便移植,我推荐利用尺度的ANSI SQL尺度写SQL语句。

10. 利用正确的getXXX()要领

当从ResultSet中读取数据的时候,固然JDBC答允你利用getString()和getObject()要领获取任何数据范例, 推荐利用正确的getXXX要领,这样可以制止数据范例转换。