2011-03-24 52 views
1

是否有从java中的数据库中获取值的最佳做法? 我的特殊的问题是:从数据库中获取值的好方法

  • 我如何可以访问整个PROGRAMM数据库(我用init方法静态类被称为一次,然后sycronized块)
  • 我怎么能得到正确的对象类型?是否有一种方法,像Object getSingeValue(String query)...这样的方法,然后在该方法中使用ResultMetaSet进行类型化,从而实现兼容性?
  • 什么是插入或更新值的最佳方式?我知道是什么类型,并希望把它...

做任何人都知道一个好的实现数据库抽象层或一些东西,我可以使用?

谢谢!

+0

我用一点自制抽象jdbc但软件现在比预期的大,数据库处理程序现在不是我需要的东西...但ORM看起来不错,我会尝试它! – reox 2011-03-24 18:13:36

回答

3

你这里有几个选项:

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

根据您的问题,这听起来像您希望使用像Hibernate这样的Object to Relational映射工具或其他基于JPA的ORM工具之一。这些通常会为您提供一种查询数据库并返回完全形成的Java对象的高级方法。

回答您的问题:

如何从 整个程序

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

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

ORM工具通常会建立特定表和Java对象之间的关系。这就是说,即使有奥姆斯,你会在你需要的对象的“模板”出手,所以如果你写你自己的,这样的模式经常使用:

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

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

同样,一个ORM会帮助和模式通常只是交出你想保存的对象。您可以使用外部配置(如XML或注释),以便关系映射图层的对象知道如何将对象转换为适当的行和列。在一个标准的ORM保存或更新,如Hibernate是如此的简单:

session.saveOrUpdate(myObject); 

做任何人都知道一个好的实现数据库抽象层或一些东西,我可以使用?

休眠或大多数其他JPA 2.0 ORM听起来像你所需要的。