![]() |
1
5
如果一个ORM没有选项,您仍然可以使用Spring的JDBC助手类: http://docs.spring.io/spring-framework/docs/4.1.0.RELEASE/spring-framework-reference/html/jdbc.html
或者您可以自己编写一些助手方法。也许是
顺便说一下,您确实应该使用日志框架,而不是“
编辑: 还有一件事:当您已经用纯JDBC编写了所有SQL时,我认为事后添加ORM有点困难。你不能重构那些东西,你必须把它扔掉再做一次。 编辑: 如果仍要关闭语句,则不必关闭结果集。这个 Java ResultSet API 阅读:
除此之外,c3p0还进行资源管理,并在返回连接时关闭语句。你也可以查一下。 |
![]() |
2
2
为了避免代码的重复,也许可以使事情变得简单。 您可以做的是创建一个数据库类。 在类中,您可以创建用于访问数据库的通用方法。 例如 如果该类称为dbmanager.java,则在 创建方法
Connect方法的原因很明显,您可以使用它来获取连接。因为它是私有的,所以您可以在dbmanager的构造函数中调用它。 然后,使用update()方法可以执行SQL插入、更新、删除等操作,基本上,除了更新方法的成功状态之外,任何不返回任何数据的SQL操作都可以完成。 当要执行选择查询时,将使用查询方法。您可以返回结果集,然后在调用方法/类中迭代结果。 如何处理异常取决于您自己。用这种方式处理dbmanager类中的异常可能会更好,因为在进行查询的各种类中,您不必处理这些异常。 因此,而不是
您将在查询方法中使用一个try-catch,就像在上面的示例中那样。 在dbmanager类中处理它的明显优点是,在使用SQL连接的所有其他类中,您不必担心它。 希望这有帮助 回应您的评论: 这取决于你返回什么,返回结果集只是一个主意,但也许最好返回某种类型的集合而不是数组,也许?取决于你需要什么。结果集不需要关闭。
然后你的更新会是这样的
erm,然后您可以像这样使用查询方法
但是,正如您所说,您可以更改查询方法,将结果复制到数组或集合中,然后返回集合并用
但当一个语句对象关闭时,它的当前resultset对象(如果存在)也会关闭。(来自api文档) 最好的做法是在将结果复制到集合对象后立即释放数据库资源,然后关闭语句。这又取决于你。 |
![]() |
3
0
这次不能选择Hibernate或其他ORM,我们决定暂时使用“纯SQL”。 出于好奇,坚持使用普通SQL的原因是什么?查看您提到的示例和问题,第一个明显的答案是使用ORM,不用担心——在大多数情况下,标准的ORM特性列表就足够了。 很明显,有很多理由不使用ORM,所以我对你们感兴趣? |
![]() |
4
0
我认为O级粒度始终是开发人员的决定。我的意思是,拥有如此多的异常和验证的好处在于,您可以捕获特定的错误并根据它进行操作,但是,如果您所需要的不需要那么高的健壮性,正如您所展示的那样,它只是打印出堆栈跟踪,我认为包装方法在您的情况下是有用的。 |
|
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
![]() |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
![]() |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
![]() |
Peloucvo · 用数据库中的数据填充JTable 3 年前 |
![]() |
Montaser Majid · 用于从多行中提取单行的SQL查询 3 年前 |
![]() |
Max J. · 用整数作为键将dict写入csv 3 年前 |