救命啊!要疯了!怎么用con.close()就关不掉连接呢?

解决方案 »

  1.   

    找到原因了,令人惊讶的原因!
    我们是学生宿舍,整个宿舍应用Lan连上网,每台机器用Wingate连接上服务器
    我使用的是Sybase的ASA数据库,不知道别的数据库如何,我没有测试MYSQL和ACCESS
    当连接数据库时,Wingate竟然弹出来,当时ASA连接显示没有断开是因为那时我正连上网!
    所以ASA数据库也许,可能,得问SYBASE公司的人了,已经连上网络,所以当我的应用程序
    里用con.close()关闭数据库时 ,此时的数据库依然保持连接是和INTERNET的连接!
    而就在刚才我心灰意冷的断网后再次启动程序,发现连接数据库时Wingate弹了出来,原来原因是.........sybase的数据库都能连上网?????????????? faint!!!!!!天知道怎么会这样,为什么开数据库还要求连上网络?!!!!
      

  2.   

    hehe,我的结帐率近100%哦,这次就算了,呵呵
      

  3.   

    /////////////////功能描述//////////////////////作者:
    //1。connect(),close(),分别 为 连接 数据库 ;
    //2。executeQuery(),传入select的sql语句,返回数据集;
    //3。executeUpdate(),传入sql语句即可,返回boolean;
    //4.getLWPAIDStatement() eg:  org.gjt.mm.mysql.jdbc2.DatabaseMetaData@7f92f5
    //5.和getLWPAIDStatement()eg: org.gjt.mm.mysql.jdbc2.Statement@2f0d54
    //////////////////////////////////////////////////////
    //////////////////////////////////////////////////////
    //运用事例:LWDBoperator dbop=new LWDBoperator();
    //////    dbop.Connect("apple1","192.168.4.25"),dbop.executeQuery(sql)
    //////    dbop.close()等等;
    ////////////////////////////////////////////////package LWClass;import javax.swing.JComponent;
    import java.sql.*;
    import javax.swing.JWindow;
    import javax.swing.JComponent;
    import java.net.*;
    import java.lang.*;
    import java.io.*;
    import java.util.*;
    import com.borland.dx.sql.dataset.*;public class LWDBoperator extends JComponent {
      private String UserName="root";
      private String PWD="";
      private String url ;
      private Connection cn;
      private Statement stmt;
      private ResultSet rs = null;
     // private Database database1 = new Database();  public   LWDBoperator(){
        try {
         Class.forName("org.gjt.mm.mysql.Driver");
        }
       catch(java.lang.ClassNotFoundException e){
         System.err.println("mydb() org.gjt.mm.mysql.Driver: " + e.getMessage());
        }
        catch(Exception e) {
          e.printStackTrace();
        }  }
    //////////////////////////////
    ///返回mysql 连接,connection
    /////////////////////////////
      public   Connection  Connect(String dbname,String ip){
        try{
          String hostip=ip;
          Properties myP = new Properties();
          myP.setProperty("useUnicode","true");
          myP.setProperty("characterEncoding","GB2312");
          url="jdbc:mysql://"+hostip+":3306/"+dbname+"?user="+UserName+"&password="+PWD+"";
          cn=DriverManager.getConnection(url,myP);
        //stmt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
          System.out.println("db connect success");
          return cn;
        }
        catch(Exception e){
          System.err.println("db connect err"+e.getMessage());
          return null;
        }
     }
    //////////////////////////////////
    ///关闭连接
    /////////////////////////////////
      public void close(){
        try{
          cn.close();
          System.err.println("db colse success");
        }
        catch(Exception e){
          System.err.println("db colse err"+e.getMessage());
        }
      }
    /////////////////////////////////////////////
    // 用于进行记录的查询操作,用于select 语句。
    //参数:sql语句,
    //返回:ResultSet对象
    ///////////////////////////////////////////
      public ResultSet executeQuery(String sql) {
        try {
          stmt= cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
          //System.out.print("sqlis :||"+sql+"||");
          rs = stmt.executeQuery(sql);
          return rs;
        }
        catch(SQLException ex) {
          System.err.println("db.executeQuery: " + ex.getMessage());
          return null;
        }
      }
    //////////////////////////////////////////////
    //用于进行add或者update,insert,del等的记录的操作,
    //入口参数:sql语句
    //返回 :true,false
    //////////////////////////////////////////////
        public boolean executeUpdate(String sql) {
          boolean bupdate=false;
          try {
            stmt= cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            int rowCount = stmt.executeUpdate(sql);
            if (rowCount!=0) bupdate=true;
          }
          catch(SQLException ex) {
            System.err.println("db.executeUpdate: " + ex.getMessage());
          }
          return bupdate;
      }
      //////////////////////////////////////////////
    //用于进行表结构的操作,creat drop,modify等。
    //入口参数:sql语句
    //返回 :true,false
    //////////////////////////////////////////////
        public boolean executeTable(String sql) {
          boolean bupdate=false;
          try {
            stmt= cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            System.out.print("对表的操作的 sqlis :||"+sql+"||");
            stmt.executeUpdate(sql);
            bupdate=true;
          }
          catch(SQLException ex) {
            System.err.println("db.executeTable: " + ex.getMessage());
          }
          return bupdate;
      }
      //////////////////////////
      //返回数据库的信息
      //////////////////////////
        public Statement getLWPAIDStatement(){
            try{
              return cn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            }
            catch(java.sql.SQLException e){
               System.err.println("getAISPStatement():"+e.getMessage());
               return null;
            }
        }    public DatabaseMetaData getLWPAIDMetaData(){
            try{
               return cn.getMetaData();
             }
            catch(java.sql.SQLException e){
               System.err.println("getAISPMetaData():"+e.getMessage());
               return null;
             }
        }
    }给你一个免费的,这次结帐了吧。^_^