【发布时间】:2013-09-11 21:04:28
【问题描述】:
美好的一天,我的情况如下:我正在使用 java 设计一个小型 Web 系统,我在该领域的知识非常有限(主要来自小型教程和 Head and First Servlets 和 JSP Book),结果产生了结果以及关于如何进行良好(和高效)设计的无休止的疑问,唯一 100% 清楚的是 MVC 是必须的(至少在我的情况下)。
阅读此this 后,我大致了解了系统应该如何完成。如何实现视图和控制器(以及它们应如何通信)变得清晰。
现在,我的问题在于 MVC 模式的模型部分。 Java Beans 和 DAO 类应该在这里使用吧?我的应用程序将主要有 CRUD 操作(整个系统中只需要 2 - 3 个额外的数据操作)所以,我应该做 N(我需要访问的表数为 N)Java Bean 对象和 N DAO只有那些具有以下结构的 CRUD 操作的类?
Java Bean:
public class TableJB{
// Table attributes with their respective getters and setters
}
道:
public class TableJB{
public static void create(TableJB jb){}
public static TableJB read(int id){}
public static void update(TableJB jb){}
public static void delete(int id){}
public static List<TableJB> listAll(){}
}
我看到这种结构的问题是我将在这些方法中的每一个中进行连接管理(打开和关闭),在我看来这似乎是错误的(好像应该由其他人处理这些)而且我很远从确定这是否是更好的做法。另外我想知道是否应该在将数据写入数据库之前重新验证数据,以防客户端验证由于某种原因被禁用(例如:通过禁用 JavaScript)?
作为重要说明:我不允许为我的解决方案使用任何框架(所以不能使用 Spring、Hibernate 等)。
【问题讨论】:
-
如果我只是在一个类中将它们作为您刚刚链接的 DatabaseConnectivity 示例返回,将来会不会出现未关闭的连接问题?
-
我想知道我是否应该在将数据写入数据库之前重新验证数据,以防客户端验证由于某种原因被禁用(例如:通过禁用 JavaScript)验证必须在服务器端完成,而不是在客户端。
-
不,数据库连接池处理这个。我之前解释过:How to properly keep a DB connection from a Connection Pool opened in JBoss。该原则适用于任何体面的连接池,我假设您将使用的应用程序服务器已经有一个:)
-
您能详细说明为什么不允许您使用框架吗?这是家庭作业,还是不向项目添加新依赖项的问题,还是什么?你可以使用什么?
标签: java design-patterns dao