我的情况是:我所有数据库相关的方法都写在一个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打开的数据库连接。。怎样调用连接数据库的方法才能解决这个问题呢?

解决方案 »

  1.   

    基本的一点思路,可能不是很好,权当引子鸟~1. 封装Factory类,在其中实现注册、连接、关闭等。返回Connection到实际需要操作的类中单独操作之
    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){
       // ....
    }
      

  2.   

    Db db = new Db(); 
    con =db.getConnection();
    prepstment = con.prepareStatement(insertsql);
    prepstment.executeUpdate();
      

  3.   


    你是想在t对象里面利用db,他俩还没有关系,当然不能用
    你可以在Test类中,添加一个Db类的属性。
    class Test{
       Db db = new Db();
    }
    Test t = new Test(); 
    t.db.getConnection();
    t.db.insert();
    大概就这样,不过还是封装好点吧。
      

  4.   

    db.getConnection(); 没有写正确!去查一下代码
      

  5.   

    你应该是没把db这个对象引用给t对象 AND db.getConnection()是返回Connection对象?如果是,那db没什么变化,你需要一个Connection对象引用去指向db.getConnection()返回的Connection对象