使Java类更灵活

时间:2015-01-26 15:57:31

标签: java oop jdbc interface abstract-class

到目前为止,每当我处理数据库时,我都会创建一个名为DatabaseConnector的接口和一个实现它的类DatabaseHandler。以下是DatabaseConnector(已删除参数)

的示例
public interface DBConnectorIntf 
{    
    //Conection stuff
    public void createConnection();
    public void closeConnection();
    public void checkConnection();

    public void insertUser(------);
    public void insertSubUser(----);
    public void updateUser(-----);
    public void updateSubUser(------);
    public void updateSubUserType(------);
    public void deleteUser(-----);   
    public void deleteSubUser(-----);   
    public void deleteSubUserType(------); 
}

但是我们有大约30个表(这意味着大约90个方法)所以如果我们将这些表中的每个插入,删除和更新方法(这意味着大约90种方法)添加到此interface中并使用{实现它{1}},然后会出现以下问题。

  1. 只有一个人可以开发该课程,其他人都必须等到他完成。
  2. 如果有人需要更改至少一种方法,那么他必须致电该类的开发人员。
  3. 将有大约20,000行代码。
  4. 这将是一个单人秀,所以这将耗费时间。
  5. 由于这些原因,我们需要做的是"打破"这成小块,并给它4,5人发展。我们怎么做到这一点?

    有一种建议的方法,我们在每个数据库表中创建一个类。所以会有像DatabaseHandlerUserTable,SubUserTypeTable等等的类。

    以下是一个例子。

    SubUserTable

    那么哪种方法更标准?或者像这样的任何其他方式? (否public abstract class DBMaster() { public void createConnection(){CODE HERE}; public void closeConnection(){CODE HERE}; public void checkConnection(){CODE HERE}; } public class UserTable extends DBMaster { public void insertUser(------){CODE}; public void deletetUser(------){CODE}; public void updateUser(------){CODE}; } public class SubUserTable extends DBMaster { public void insertSubUser(------){CODE}; public void deleteSubUser(------){CODE}; public void updateSubUser(------){CODE}; } 等)

    更新

    我知道有Hibernate等框架等。但这不是问题,但要知道上述哪种方式是标准的,请为我提供有关问题的答案/评论。

1 个答案:

答案 0 :(得分:0)

处理此问题的最常用方法是使用JPA,它是Java EE的一部分。 可能它最着名的实现是Hibernate,所以我建议你使用JPA / Hibernate。

您可以在Google上找到大量有关此内容的信息,例如:https://docs.jboss.org/hibernate/orm/3.6/quickstart/en-US/html/hibernate-gsg-tutorial-jpa.html