我的情况是:我所有数据库相关的方法都写在一个Db类里面,包括连接和关闭连接其他类中的方法(如test)都调用Db这个类里面的方法来实现对数据库操作
比如
Db db = new Db();
public boolean insert(){
db.insert();
}那我在控制流程的类中比如
Db db = new Db();
db.getConnection();
Test t = new Test();
t.insert();目前的情况是t这个对象并不能利用db打开的数据库连接。。怎样调用连接数据库的方法才能解决这个问题呢?
比如
Db db = new Db();
public boolean insert(){
db.insert();
}那我在控制流程的类中比如
Db db = new Db();
db.getConnection();
Test t = new Test();
t.insert();目前的情况是t这个对象并不能利用db打开的数据库连接。。怎样调用连接数据库的方法才能解决这个问题呢?
ConnectionFactory.java
public static Connection getConnection(){
// ....
return <Connection>
}
Test.java
....
Connection conn = ConnectionFactory.getConnection();
PreparedStatement stmt = conn.prepareStatement("update .....");
stmt.executeUpdate();
...
2. 传Connection、sql语句到Factory中去操作,需要一个桥梁。
public boolean insert(Connection conn,String sql){
// ....
}
con =db.getConnection();
prepstment = con.prepareStatement(insertsql);
prepstment.executeUpdate();
你是想在t对象里面利用db,他俩还没有关系,当然不能用
你可以在Test类中,添加一个Db类的属性。
class Test{
Db db = new Db();
}
Test t = new Test();
t.db.getConnection();
t.db.insert();
大概就这样,不过还是封装好点吧。