【发布时间】:2016-01-14 20:10:24
【问题描述】:
如何调用我的连接方法并将该方法中的变量用于其他方法。请考虑以下内容:
public final class AnApplication extends javax.swing.JFrame {
public AnApplication {
// Stuff
}
public Connection connectDB() {
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/car_rental";
String driver = "com.mysql.jdbc.Driver";
String user = "username";
String pass = "password";
try {
Class.forName(driver);
conn = (Connection) DriverManager.getConnection(url, user, pass);
if (conn == null) {
System.out.println("Connection cannot be established");
}
} catch (Exception e) {
System.out.println(e);
}
return conn;
}
}
}
public void someQuery() {
connectDB();
try
{
// Insert Statement with ? Placeholders
conn = DriverManager.getConnection(url, username, password);
System.out.print("Connected Successfully\n");
String query = "CREATE TABLE IF NOT EXISTS `tableName`";
PreparedStatement preparedStmt = conn.prepareStatement(Query);
//Execute the Prepared Statement/Query
preparedStmt.execute();
System.out.print("Tables inserted successfully");
}
catch (Exception e)
{
System.err.println("Got an exception!");
System.err.println(e.getMessage());
}
}
通过在下面的方法中调用下面的 connectDB(),我仍然无法访问创建的 someQuery 方法中的变量。我如何能够创建方法并在调用时使其在方法中可访问,而不必一遍又一遍地编写连接字符串。抱歉,如果这可能是一个愚蠢的问题,我对 Java 和 OOP 的概念还是很陌生。
【问题讨论】:
-
为什么你的变量对你的方法来说是本地的,而不是你的类的私有(和最终)成员?
-
Connection conn = connectDB(); -
所以我的变量应该直接属于类,而不是我创建的方法,因此它们可以在整个过程中访问?当我尝试这样做时,它确实工作正常,但我不确定是否有适当和更好的方法
-
我认为您的代码中存在复制和粘贴错误。您有一个额外的大括号,并且 someQuery() 似乎不在一个类中。请确保您的代码在您的问题中正确提交。
-
对不起,只是在那里做了。即使使用 Connection conn = connect();在 someQuery 方法中,url、username 和 password 变量仍然没有访问权限。我是否需要更改变量的修饰符?