如何将数据库连接信息放到单独的文件中?

Jav*_*est 2 java mysql

在PHP中,我们只是创建一个文件,例如connect.php ,然后我们将此文件包含在我们喜欢的每个页面中:

在Java中,我在同一个项目文件夹中创建了一个单独的文件,connect.java并尝试在其他文件中调用它,以便这些文件获得数据库连接但到目前为止没有运气.

我上次尝试过但令我感到惊讶的是,连接页面中的一些变量我无法在主程序中使用它们.有人可以帮帮我吗 .bellow是我用来连接mysql的代码,也是我打印一些东西

但我想把它作为一个单独的文件,不打印任何东西只是连接,我只是打印我想要的不同的文件

因此,如果我在php术语中说话,我想将其包含在可能需要连接的其他文件中.

try {
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("Driver loading success!");
                String url = "jdbc:mysql://localhost:3306/saloon";
                String name = "root";
                String password = "";
                try {

                    java.sql.Connection con = DriverManager.getConnection(url, name, password);
                    System.out.println("Connected.");
             // pull data from the database 
    java.sql.Statement stmts = null;
    String query = "select  userid, username, name , address, hairstyle from saloonuser ";
    stmts = con.createStatement();
    ResultSet rs = stmts.executeQuery(query);
    int li_row = 0;
    while(rs.next()){
        mysTable.setValueAt(rs.getString("username"),li_row,0);
        mysTable.setValueAt(rs.getString("name"),li_row,1);
        mysTable.setValueAt(rs.getString("address"),li_row,2);
        mysTable.setValueAt(rs.getString("hairstyle"),li_row,3);

        int userid = rs.getInt("userid");
        String username = rs.getString("username");
        String name1     = rs.getString("name");
        System.out.println(name1);
        li_row++;
        } } catch (SQLException e) {
                    e.printStackTrace();
                }

            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }

        }

    }
Run Code Online (Sandbox Code Playgroud)

JHS*_*JHS 8

其中一个办法接近是有一个BaseDAO与它返回一个方法Connection对象,在那里你可以有下面的代码-

public class BaseDAO {

 public Connection getConnection() {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/saloon";
   String name = "root";
   String password = "";

   Connection con = DriverManager.getConnection(url, name, password);
   return con;
 }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以BaseDAO在所有其他DAO类中扩展它,或者创建类的对象BaseDAO并获取Connection对象.

您剩下的代码将在一个单独的DAO类中.(让我们称之为GetDataDAO).

public class GetDataDAO extends BaseDAO {

  Connection con = getConnection();
  Statement stmts = null;
  String query = "select  userid, username, name , address, hairstyle from saloonuser ";
  stmts = con.createStatement();
  ResultSet rs = stmts.executeQuery(query);
  int li_row = 0;
  while(rs.next()){
    mysTable.setValueAt(rs.getString("username"),li_row,0);
    mysTable.setValueAt(rs.getString("name"),li_row,1);
    mysTable.setValueAt(rs.getString("address"),li_row,2);
    mysTable.setValueAt(rs.getString("hairstyle"),li_row,3);

    int userid = rs.getInt("userid");
    String username = rs.getString("username");
    String name1     = rs.getString("name");
    System.out.println(name1);
    li_row++;
    }
  }
Run Code Online (Sandbox Code Playgroud)