是逻辑为数据库表创建单独的Java类吗?

时间:2014-04-16 08:49:03

标签: java sql-server database jdbc

我在MS SQL Server 2012上的数据库中有5个不同的表。我已经为我的UserTable创建了类,并填写了下面显示的setter和getter,将其他表的setter和getter放在同一个玻璃中或创建单独的是合乎逻辑的具有setter和getter的其他表的类。

 import java.math.BigDecimal;
 import java.sql.Connection;


public class UserFR17setget {

    Connection cn;
    BigDecimal userID;
    String UserName;
    String UserPassword;
    int UserSecurity;
    BigDecimal ProjectID;


    public BigDecimal getUserID() {
        return userID;
    }

    public void setUserID(BigDecimal userID) {
        this.userID = userID;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String UserName) {
        this.UserName = UserName;
    }

    public String getUserPassword() {
        return UserPassword;
    }

    public void setUserPassword(String UserPassword) {
        this.UserPassword = UserPassword;
    }

    public int getUserSecurity() {
        return UserSecurity;
    }

    public void setUserSecurity(int UserSecurity) {
        this.UserSecurity = UserSecurity;
    }

    public BigDecimal getProjectID() {
        return ProjectID;
    }

    public void setProjectID(BigDecimal ProjectID) {
        this.ProjectID = ProjectID;
    }

}

问候

1 个答案:

答案 0 :(得分:0)

你基本上是自己实现JPA的一部分。在JPA中,一个类映射到数据库表,您可以根据实体而不是数据库表来思考。您可能希望稍后再探讨(除非您现在希望这样做)。

如果您只想将数据库数据映射到对象中,您可以选择一些合理的选择。正如您现在所做的那样,让每个数据库表都有一个相关的类(顺便说一句,User是一个比UserFR17getset更好的类名,然后您可以将数据作为对象进行操作。更高级别的方法是让类引用其他表,因此您的User类将包含Address引用(假设有一个表地址),并且在加载User时,它还会加载Address。这与JPA的工作方式类似,然后您就可以执行单个“加载用户1”而不是“加载用户1,为用户1加载地址​​”。当然,你将负责实现实际的加载(与JPA不同,那里有很多自动化)。

不要让Connection对象成为你班级的一部分,但它没有任何业务。您应该在加载方法中使用Connection对象,例如User u = loadUser(connection, userId);