我即将创建一个项目,我希望有一个将我的应用程序连接到数据库的类。
我想以最好的面向对象的方式做到这一点,遵循 Solid 原则!
我对你的问题是:
将您的 Provider 划分为子类是否明智,例如从数据库获取信息的子类和可以将数据插入数据库的子类?还是您将这些功能保留在一个大类中?
我建议您看一下 Martin Fowler 的企业应用程序架构模式。他有一个关于持久性模式的精彩章节。
这个问题已经解决了很多很多次了:JPA 和 Hibernate 等 ORM 解决方案、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);
}
我不同意 ORM总是要走的路。
如果你想在靠近数据库的地方编程,像mybatis这样的查询映射器是 ORM 方法的有用替代方案。
MyBatis 数据映射器框架使得使用面向对象应用程序的关系数据库变得更加容易。MyBatis 使用 XML 描述符或注释将对象与存储过程或 SQL 语句耦合。简单性是 MyBatis 数据映射器相对于对象关系映射工具的最大优势。
mybatis受 Spring 支持,让你的生活更轻松。
通常最好按对象(即客户、客户、汽车)而不是功能(即读写)来拆分这些类。这是ORM使用的方法,对于java,具体看一下Hibernate ORM Framework
http://docs.jboss.org/hibernate/orm/3.5/api/
上面的文档,毫无疑问你可以在谷歌上找到好的教程