【问题标题】:Good way to get values from Database从数据库中获取值的好方法
【发布时间】:2011-03-24 15:03:23
【问题描述】:

是否有从 Java 数据库中获取值的最佳实践? 我的特殊问题是:

  • 我如何从整个程序中访问数据库(我使用带有 init 方法的静态类,该方法被调用一次,然后是 sycronized 块)
  • 如何获得正确的对象类型?有一个像Object getSingeValue(String query)... 这样的方法然后在这个方法中使用 ResultMetaSet 来比较它是哪种类型的好方法吗?
  • 插入或更新值的最佳方法是什么?我知道类型并想将其放入...

有人知道数据库抽象层的良好实现或我可以使用的东西吗?

谢谢!

【问题讨论】:

  • 我使用 jdbc 和一些自制的抽象,但软件现在比预期的要大,数据库处理程序现在不是我需要的东西......但 ORM 看起来很棒,我会试试看!

标签: java sqlite jdbc database-connection abstraction


【解决方案1】:

你有几个选择:

  • JDBC - 用于对数据库的低级别访问
  • 类似 Hibernate 的 ORM - 用于更高级别的访问

根据您的问题,您似乎想使用 Hibernate 等对象到关系映射工具或其他基于 JPA 的 ORM 工具之一。这些通常会为您提供一种高级方式来查询您的数据库并返回完全形成的 Java 对象。

回答您的问题:

如何访问数据库 整个程序

这通常不是由数据库层解决的问题,而是由依赖注入之类的设计模式解决的,它为您提供了一种构建所有对象并将适当的依赖关系传递给它们的方法(例如数据库连接)。有关 DI 的示例,请参阅 Spring 框架。

如何获得正确的对象类型?

ORM 工具通常会在特定表和 Java 对象之间建立关系。也就是说,即使使用 ORM,您也需要提交所需对象的“模板”,因此如果您自己编写,通常会使用这样的模式:

session.createCriteria(MyMappedObject.class).list()

插入或更新值的最佳方法是什么?

同样,ORM 会有所帮助,并且该模式通常只是提交您要保存的对象。您可以使用 XML 或注释等外部配置,以便您的对象到关系映射层知道如何将您的对象转换为适当的行和列。像 Hibernate 这样的标准 ORM 中的保存或更新非常简单:

session.saveOrUpdate(myObject);

有人知道数据库抽象层的良好实现或我可以使用的东西吗?

Hibernate 或大多数其他 JPA 2.0 ORM 听起来像是您需要的。

【讨论】:

    猜你喜欢
    • 2019-02-21
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多