java命令从一个类调用getconnection方法到另一个类
我有这两个类,B类纯粹用于创建表。我需要从类A中获取连接方法才能在类B中继续。当我使用此语法时,它要求我在此类中再次创建getConnection方法。有没有可能从类A中获取方法并在类B中使用它???您可能需要重新考虑代码的结构。为什么您希望内部类执行一些代码,而这些代码可以放在原始类a的方法中。java命令从一个类调用getconnection方法到另一个类,java,database,h2,Java,Database,H2,我有这两个类,B类纯粹用于创建表。我需要从类A中获取连接方法才能在类B中继续。当我使用此语法时,它要求我在此类中再次创建getConnection方法。有没有可能从类A中获取方法并在类B中使用它???您可能需要重新考虑代码的结构。为什么您希望内部类执行一些代码,而这些代码可以放在原始类a的方法中。 但是,如果出于任何原因,您仍然希望类B作为CalsSA中的内部类,那么您需要更改语法 public class A { // method to get connection C
但是,如果出于任何原因,您仍然希望类B作为CalsSA中的内部类,那么您需要更改语法
public class A {
// method to get connection
ComboPooledDataSource cpDataSource = new ComboPooledDataSource();
public Connection getconnection() throws Exception {
Connection con = null;
try {
// open a connection
con = cpDataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public Class B {
Statement stat = null;
Connection con = getconnection();
stat = con.createStatement();
stat.execute("create table if not exists Node1(id int NOT NULL AUTO_INCREMENT, name varchar(255), ip varchar(255), port int, site varchar(255), object_referenece varchar(255), connectivity_status varchar(255))");
closeConnection(con,stat);
public void closeConnection(Connection con, Statement stat) throws
SQLException {
stat.close();
con.close();
}
}
请注意public class B
中的小写class,因为您不想定义类型为java.lang.class
的属性。还要注意,类B中的代码现在被包装在方法public void createTable()
中,因为java类中的任何构造函数/方法外都不能有代码块。您还需要将语句创建和执行放在try/catch块中。您的代码有点凌乱,请查看。类
B
缺少smth。
public class A {
ComboPooledDataSource cpDataSource = new ComboPooledDataSource();
public Connection getConnection() {
Connection con = null;
try {
// open a connection
con = cpDataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
public class B {
public void createTable() {
Connection con = getConnection();
try {
Statement stmt = con.createStatement();
stmt.execute("create table if not exists Node1(id int NOT NULL AUTO_INCREMENT, name varchar(255), ip varchar(255), port int, site varchar(255), object_referenece varchar(255), connectivity_status varchar(255))");
} catch(SQLException ex) {
ex.printStackTrace();
}
closeConnection(con, stmt);
}
}
}