我们要在许多应用程序中隐藏常见的业务逻辑。
库需要访问DB。
我们必须考虑哪个设计决定才能做到最好的工作(以降低长期支持成本)?
?以前我只使用spring SimpleJdbcTemplate
和 plain JDBC
代码,并希望像在 SimpleJdbcTemplate
中那样获得简单性,而无需依赖巨大的框架,并避免在外部库上发生版本冲突(回想一下 - 我们说库,而不是应用程序)。
花了几个小时后,我找到了不错的项目:
- http://jdbi.org/-最令人印象深刻的
- http://www.jooq.org/
- http://www.sql2o.org/
-
使用连接池。任何服务器应用程序,连接池都非常有效地减少连接/断开DB。可以考虑DBCP或连接池的数量。
-
单独的读/写连接。如果您想扩大规模,我想建议单独阅读&写DB连接。通常,RDBMS支持读取复制品。因此,对于写入连接,它只能用于DB Write/Update/Delete,并且读取连接只能用于读取事务。您可以想象,读取交易的百分比通常为70〜90%(取决于应用程序类型)
-
在考虑弹簧JDBC或纯JDBC等之前,您最好考虑纯SQL编码或或映射(JPA,Hibernate,Mybatis等)。有专业人士&缺点取决于框架。
我将使用spring-jdbc进行数据库交互。库可能具有依赖性。使用Maven,不会有版本化问题。Spring-JDBC不大。