Java 创建数据库类

Java 创建数据库类,java,mysql,Java,Mysql,我有以下课程: public class Database { private Connection connection; private MyApp instance = MyApp.getInstance(); private String database, host, username, password, port; private Config config = new Config(); public Connection Databa

我有以下课程:

public class Database  {
    private Connection connection;
    private MyApp instance = MyApp.getInstance();
    private String database, host, username, password, port;
    private Config config = new Config();

    public Connection Database() {
        database = config.get("database.database");
        host = config.get("database.host");
        username = config.get("database.username");
        password = config.get("database.password");
        port = config.get("database.port");
        try {
            connection = openConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return connection;
    }

    private Connection openConnection() throws SQLException, ClassNotFoundException {
        if (connection != null && !connection.isClosed()) {

        }

        synchronized (instance) {
            if (connection != null && !connection.isClosed()) {

            }
            Class.forName("com.mysql.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, username, password);
        }
        return connection;
    }

}
我希望能够在此类上返回连接,以便在其他类中执行
connection=newdatabase()
。然后
Statement=connection.createStatement()

这可能并不是最好的方法,我不确定创建数据库类的更好方法是什么。我的尝试是尝试做
返回连接,但该错误已被清除


我该怎么做呢?

你可以试试这样的方法:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Baza {

private static java.sql.Connection conect = null;
private static final String url = "jdbc:mysql://localhost/Application?autoReconnect=true&useSSL=false";
private static final String username = "root";
private static final String password = "";
private final String urlWithoutBase= "jdbc:mysql://localhost:3306/";

public Baza() {
    try {
        conect = DriverManager.getConnection(urlWithoutBase, username, password);
        createDataBase();
        conect.close();
        openConnection();
        createTablePeople();
        conect.close();


    } catch (SQLException ex) {
       ex.printStackTrace();
    }    
}

public Connection openConnection() {
    try {
        conect = DriverManager.getConnection(url, username, password);
        return conect;
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    return conect;
}

public void closeConnection() {
    try {
        conect.close();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
}

 private void createDataBase() throws SQLException {
    Statement statement = conect.createStatement();
    String query = "CREATE DATABASE IF NOT EXISTS Application;";
    statement.execute(query);
}
 private void createTablePeople() throws SQLException{
      Statement statement = conect.createStatement();
    String query = "CREATE TABLE IF NOT EXISTS Osobe("
            + "id INT NOT NULL AUTO_INCREMENT,"
            + "name VARCHAR(30) NOT NULL,"
            + "surname VARCHAR(30) NOT NULL,"
            + "date VARCHAR(30) NOT NULL,"               
            + "PRIMARY KEY(id));";
    statement.execute(query);
 }       

}

看起来您想编写一个类似于ConnectionPool的类?通常不建议这样做,因为这样您就无法访问数据库对象。如果数据库类/实例确实只是用于构建连接,则可以使用静态工厂方法,例如
connection=database.createConnection()
不要编写自己的ConnectionPool实现,只需使用或