我正在寻找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{

这是一个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{

          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并在数据库上运行未经授权的查询

  • 这样做会在应用程序中引入一个称为“全局状态”的概念。这通常是不可取的。相反,我建议使用依赖注入框架将此对象注入到类中。这样,代码就不需要了解数据库的详细信息;它都存储在一个配置文件中


您有一个SQL注入漏洞。我有一个名为hospital management system的netbeans项目,您能帮我找出设计模式吗。源代码链接:对不起,恐怕不行。我只回答这里的问题,我不倾向于一对一的支持。