一个简单的问题:在Java/JDBC中访问数据库的更有效方法是什么? 我是一个web开发人员,我想写一些可重用和可扩展的代码。
对我来说有趣的是使用ResultSupport这样的工具:它在资源使用方面是否过于膨胀?
你能提出什么建议?访问数据库的Java高效策略
5
A
回答
5
不仅仅是JDBC具体,只是一般的SQL东西
如果您必须重新运行一个查询多次,利用PreparedStatement。如果可用,请使用存储过程。 YMMV显然不便携。
如果您不使用它,请始终关闭您的ResultSet或Statement。关闭语句将自动关闭与该语句关联的所有ResultSet。关闭ResultSet仍然是一个好习惯。
尝试限制可查询的内容,例如:从XXX和YYY之间的order_date订单中选择*。在MySQL中,查询可能是全表扫描或“范围”,具体取决于返回的数据量。因此,决定如何'灵活'你想要你的查询
如果你正在使用MySQL,请使用解释来优化您的查询。如果您使用的是JPA,那么您不会看到生成的SQL。 (这不完全是JDBC)您可能希望在ORM管理器上启用日志记录以显示使用的SQL语句。然后使用解释来优化。如果ORM生成真正复杂的查询,则可能需要使用@NamedNativeQuery
如果您的JDBC驱动程序支持批量更新,请使用它。 PreparedStatement和ResultSet支持批量更新。
您也可以控制提交。如果您正在执行大量更新,请将其关闭。你自己调用commit()。
-1
我认为最简单和最常用的方法是使用Spring及其JDBCTemplate。
最好的方法可能取决于你用来创建你的网络应用程序的堆栈。如果你重新开始,那么Spring是一个很好的选择。
0
使用总是连接池数据源如c3p0是非常重要的。
0
有一个将java对象映射到mysql数据库的项目。 Azirt.
0
使用连接池(或者是一个从你的容器或独立连接池像c3p0或DBCP)和类似DBUtils或Spring的JdbcTemplate。
1
相关问题
- 1. 访问2007年数据库的合并策略
- 2. JPA - 访问策略
- 3. 数据库修剪策略
- 4. 从服务器获取高效数据的策略
- 5. 提高口译员绩效的策略
- 6. 策略,根据用户访问级别
- 7. 用于插入高读取表(Sql Server)的数据库策略
- 8. 在记录插入方面的高效数据库访问
- 9. MS访问数据库Java
- 10. Java安全策略:根据类加载器授予访问权
- 11. aws Lambda函数访问策略
- 12. 使用数据库序列的策略?
- 13. 从java到mongo db的数据访问的任何推荐模式或策略?
- 14. 数据库缓存失效策略和时机
- 15. 使用ajax高效地访问mysql数据库(jQuery)
- 16. 如何避免Sails.js策略和控制器的多个数据库访问?
- 17. Java - 循环访问数据库记录的有效方法
- 18. openid数据库方案或策略
- 19. WCF/Silverlight/SQL数据库缓存策略
- 20. Heroku数据库备份策略?
- 21. 策略在关系数据库中
- 22. H2数据库 - 并发连接策略
- 23. 数据库部署策略(SQL Server)
- 24. 策略处理大型数据库表
- 25. Silverlight客户端访问策略问题
- 26. nhibernate的属性访问策略
- 27. Java BufferedOutputStream策略
- 28. 访问数据库的Java JMS
- 29. 数据库如何高效?
- 30. 带有ARM和访问策略的密钥保管库
而对于可伸缩性,使用从JNDI查找的池数据源。 – gustafc 2010-04-08 17:15:21