Java MVC数据库控制器类
我正在尝试设置一个数据库控制器类,该类可以从任何数量的其他控制器类引用。我得到的Java MVC数据库控制器类,java,model-view-controller,jdbc,static,Java,Model View Controller,Jdbc,Static,我正在尝试设置一个数据库控制器类,该类可以从任何数量的其他控制器类引用。我得到的非静态方法无法从静态上下文引用错误。我不明白为什么,因为我的两个类都是非静态的。但我在想也许连接类是静态的 这是我的连接控制器: package Controllers; import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; impo
非静态方法无法从静态上下文引用错误。我不明白为什么,因为我的两个类都是非静态的。但我在想也许连接类是静态的
这是我的连接控制器:
package Controllers;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBConnectionController {
private Connection conn;
public Connection getConnectionPPDB(int DatabaseCode) {
Properties props = new Properties();
FileInputStream fis = null;
try {
fis = new FileInputStream("config.properties");
props.load(fis);
Class.forName(props.getProperty(DatabaseCode + "DB_DRIVER_CLASS"));
conn = DriverManager.getConnection(props.getProperty(DatabaseCode + "AGDB_URL"),
props.getProperty(DatabaseCode + "DB_USERNAME"),
props.getProperty(DatabaseCode + "DB_PASSWORD"));
} catch (IOException | ClassNotFoundException | SQLException e) {
java.util.logging.Logger.getLogger(AppViewController.class.getName()).log(java.util.logging.Level.SEVERE, null, e);
}
return conn;
}
所以我想做的是从另一个控制器调用此连接,例如:
public ListModel getTemplateCustomers() {
try {
DBConnectionController.getConnectionPPDB(VM_ID);
try {
//will be filled with a query and rs
}
} finally {
conn.close();
}
} catch (Exception e) {
return null;
}
}
此类使用整数调用连接并返回连接。但问题是非静态误差。有人能解释一下为什么我的连接控制器是静态的吗
DBConnectionController.getConnectionPPDB(VM_ID);
尝试调用类DBConnectionController
中的静态方法getConnectionPPDB
,但它不是静态的
因此,您可以:
- 创建
DBConnectionController
的实例,并对该实例调用getConnectionPPDB
- 使
static
成为getConnectionPPDB
方法
这一行
DBConnectionController.getConnectionPPDB(VM_ID);
尝试调用类DBConnectionController
中的静态方法getConnectionPPDB
,但它不是静态的
因此,您可以:
- 创建
DBConnectionController
的实例,并对该实例调用getConnectionPPDB
- 使
static
成为getConnectionPPDB
方法
getConnectionPPDB方法在哪里?@Berger被编辑以匹配描述的函数。好的,那么您在下面有一个答案:)getConnectionPPDB方法在哪里?@Berger被编辑以匹配描述的函数。好的,那么您在下面有一个答案:)