Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何有效地实现数据库功能?_Java_Mysql_Database_Swing - Fatal编程技术网

Java 如何有效地实现数据库功能?

Java 如何有效地实现数据库功能?,java,mysql,database,swing,Java,Mysql,Database,Swing,我正在开发一个使用MySQL数据库的Java桌面应用程序。数据库有6个表。和往常一样,每个表都应该允许CRUD(创建、读取、更新和删除)操作 我设计了6*4=24个JPanel,每个表4个JPanel。每个JPanel都有用于获取用户输入并执行其设计的CRUD操作的组件。例如,JPanel3是为表1的创建操作而设计的 现在我想知道以下几点: 问题1。写24个函数,每个函数为一个特定的表执行一个特定的函数会更好吗 问题2。这种情况非常正常,因为每个应用程序通常都有许多表。那么,所有这些应用程序都使

我正在开发一个使用MySQL数据库的Java桌面应用程序。数据库有6个表。和往常一样,每个表都应该允许CRUD(创建、读取、更新和删除)操作

我设计了6*4=24个JPanel,每个表4个JPanel。每个JPanel都有用于获取用户输入并执行其设计的CRUD操作的组件。例如,JPanel3是为表1的创建操作而设计的

现在我想知道以下几点:

问题1。写24个函数,每个函数为一个特定的表执行一个特定的函数会更好吗

问题2。这种情况非常正常,因为每个应用程序通常都有许多表。那么,所有这些应用程序都使用这种为每个表的每个操作编写每个函数的方法吗

第三季度。因为它是一个Swing应用程序,并且每个CRUD操作都需要数据库连接,所以在用户启动应用程序时连接到数据库会更好吗

在用户单击“保存”或“编辑”或“删除”或“创建”按钮时建立数据库连接是否更好

第四季度。引用由所有24个函数共享的实例变量的连接是否更好?还是让每个功能都有自己的连接更好


欢迎您提出任何其他建议。

应用程序的作用是什么


我希望您使用的对象名称比“JPanel3”和“Table1”更具描述性?

如果您能与经验丰富的人员一起参与项目,那就太好了。你的问题可以理解,但是。。。大多数项目已经有了解决方案

我相信问题比你描述的要多得多,你可以花几个月的时间来发现问题;-)

你可能需要很多建议,我们甚至无法开始

<>强>你能考虑一个框架,比如Hibernate吗? 虽然学习起来很复杂,但在这个过程(以及推荐)中,您会学到很多关于数据库层问题和解决方案的知识。


但要回答您的一些问题:

问题1:不,编写24个函数会有很多重复

问题2:当然不是

问题3:数据库连接通常超时。我建议在适当的时候要一个……例如在你描述的案例中

问题4:获取连接应该是共享代码。

请参阅DAO模式,然后 请参阅,以便创建一个通用的、可重用的DAO


简言之,将数据库访问功能包装在一个类中,并从任何地方重用该类,从而有效地使应用程序不显式地依赖于数据库操作-仅依赖于DAO类(接口)。

A1。否。设计应以需求和域逻辑为指导,不是出于技术考虑。通常,让用户对每个表分别访问所有CRUD操作是没有意义的。编写函数以一起执行属于一起的操作

A2。不。现在,大多数应用程序都使用类似对象/关系映射器的方法来实现这类功能。但是,上面应该有一个应用程序逻辑,它一起执行相关的操作


A3/4.使用。O/R映射程序通常会自动执行此操作。

Q1:您是否可以使用较少的JPanel并使用JComboBox让用户选择要操作的wich表?这可能会为您节省一些代码

问题2:在某种程度上,是的。但请看我对第四季度的回答

问题3:在用户单击时进行连接,并在需要时尽可能短的时间内保持打开状态。数据库连接占用资源


问题4:如果您在一个名为Data Access Object的类中完成所有数据库代码并进行交互,那么会更好,如果您愿意,那么从MySQL更改数据库会更容易。请参见

如果不编写代码会更好。 对拖放即可。 数据验证、报告和图表。 创建一个完整的数据库程序,无需编写一行代码。 常见事项,如新建/编辑/删除/搜索/更新。 使用JDeveloper