我在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;
}
}
问候
答案 0 :(得分:0)
你基本上是自己实现JPA
的一部分。在JPA
中,一个类映射到数据库表,您可以根据实体而不是数据库表来思考。您可能希望稍后再探讨(除非您现在希望这样做)。
如果您只想将数据库数据映射到对象中,您可以选择一些合理的选择。正如您现在所做的那样,让每个数据库表都有一个相关的类(顺便说一句,User
是一个比UserFR17getset
更好的类名,然后您可以将数据作为对象进行操作。更高级别的方法是让类引用其他表,因此您的User
类将包含Address
引用(假设有一个表地址),并且在加载User
时,它还会加载Address
。这与JPA
的工作方式类似,然后您就可以执行单个“加载用户1”而不是“加载用户1,为用户1加载地址”。当然,你将负责实现实际的加载(与JPA
不同,那里有很多自动化)。
不要让Connection
对象成为你班级的一部分,但它没有任何业务。您应该在加载方法中使用Connection
对象,例如User u = loadUser(connection, userId);