我正在寻找java开发项目的设计模式
这是一个java mysql应用程序,我将连接字符串放在Connect.java中,并从Registration.java调用它,这是哪种设计模式 Connect.java我正在寻找java开发项目的设计模式,java,mysql,swing,Java,Mysql,Swing,这是一个java mysql应用程序,我将连接字符串放在Connect.java中,并从Registration.java调用它,这是哪种设计模式 Connect.java import java.sql.*; import javax.swing.*; public class Connect { Connection con=null; public static Connection ConnectDB(){ try{
import java.sql.*;
import javax.swing.*;
public class Connect {
Connection con=null;
public static Connection ConnectDB(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hms_db","root","1474514745");
return con;
}catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null, e);
return null;
}
}
}
Registration.java
con=Connect.ConnectDB();
con=Connect.ConnectDB();
Statement stmt;
stmt= con.createStatement();
String sql1="Select PatientID from PatientRegistration where PatientID= '" + txtPatientID.getText() + "'";
rs=stmt.executeQuery(sql1);
if(rs.next()){
JOptionPane.showMessageDialog( this, "Patient ID already exists","Error", JOptionPane.ERROR_MESSAGE);
txtPatientID.setText("");
txtPatientID.requestDefaultFocus();
return;
}
String sql= "";
pst=con.prepareStatement(sql);
pst.execute();
JOptionPane.showMessageDialog(this,"Successfully Registered","Patient",JOptionPane.INFORMATION_MESSAGE);
btnSave.setEnabled(false);
}
我认为您最好使用线程安全的单例,这是拥有DB连接和处理SQL命令模式的最好方法 这就是问题所在。这种模式背后的思想是允许传递功能。典型的命令类包含一个简单的方法execute。例如:
public interface Command {
public void execute();
}
public class MyCommand implements Command {
public void execute() {
System.out.println("This is the output from MyCommand");
}
}
当您不确定在运行时需要什么功能时,这非常有用,因此您可以创建一个命令池并根据需要选择它们,通常是通过一些外部配置
此模式的另一个动机是,它允许您在动态数据结构中将命令链接在一起,从而允许您非常轻松地实现“撤消”功能。显然,在我们的示例中,这将需要一个revert()
方法
工厂模式
这也是最重要的。此模式允许您将对象创建的细节从调用它的类中抽象出来。在您的应用程序中,您不希望数据库连接详细信息的内部知识散落在整个应用程序中,因此您可以使用Factory方法将其封装起来,以便在您需要时,它可以简单地生成一个连接对象
注意
- 您的代码中存在SQL注入漏洞。这将允许用户插入自己的SQL并在数据库上运行未经授权的查询
- 这样做会在应用程序中引入一个称为“全局状态”的概念。这通常是不可取的。相反,我建议使用依赖注入框架将此对象注入到类中。这样,代码就不需要了解数据库的详细信息;它都存储在一个配置文件中