SQL提供程序与Java

时间:2012-11-06 12:45:31

标签: java database provider

我即将创建一个项目,我想要一个将我的应用程序连接到数据库的类。

我希望以最佳的面向对象的方式执行此操作,遵循Solid原则!

我的问题是:

将Provider划分为子类是否明智,例如从数据库获取信息的子类和可以将数据插入数据库的子类?或者你将这些功能保存在一个庞大的课程中?

4 个答案:

答案 0 :(得分:3)

我建议您看一下Martin Fowler的Patterns of Enterprise Application Architecture。他对持久性模式有一个很好的章节。

这个问题已经解决了许多很多次:ORM解决方案,如JPA和Hibernate,iBatis映射,Spring JDBC。我无法想象你将如何改进以前所做的事情。如果你不能清楚地表达出与众不同的东西,我建议你在投资新东西之前使用已经编写,测试和验证过的东西。

如果必须,我建议使用通用DAO。这是一个非常简单的问题:

package persistence;

public interface GenericDao<K, V> {
    V find(K key);
    List<V> find();
    K save(V value);
    void update(V value);
    void delete(V value);
}

答案 1 :(得分:3)

我不同意ORM 始终的方式。

如果要编程靠近数据库,mybatis之类的查询映射器是ORM方法的有用替代方法。

  

MyBatis数据映射器框架使关系数据库与面向对象的应用程序的使用变得更加容易。 MyBatis使用XML描述符或注释将对象与存储过程或SQL语句结合在一起。简单性是MyBatis数据映射器相对于对象关系映射工具的最大优势。

mybatis supported by Spring让您的更多更容易。

答案 2 :(得分:1)

您可以先阅读DAO pattern。完成后,请进一步深入研究ORM frameworks

简短回答:是的,一定要将特定对象/类的持久性代码保存在一起。

干杯,

答案 3 :(得分:1)

通常最好通过Object(即Customer,Client,Car)而不是功能(即读写)来拆分这些类。这是ORM使用的方法,对于java专门看一下Hibernate ORM Framework

http://docs.jboss.org/hibernate/orm/3.5/api/

上面的文档,你无疑可以在谷歌找到好的教程