package Connect;
import java.sql.*;public class Connect {
 private java.sql.Connection  con = null;
     private final String url = "jdbc:microsoft:sqlserver://";
     private final String serverName= "localhost";
     private final String portNumber = "1433";
     private final String databaseName= "评估系统2";
     private final String userName = "sa";
     private final String password = "";
     private final String selectMethod = "cursor";
 private String getConnectionUrl()
{
          return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";
    }
 private java.sql.Connection getConnection(){
          try{
               Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
               
               con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);
               if(con!=null) System.out.println("Connection Successful!");
          }catch(Exception e){
               e.printStackTrace();
               System.out.println("Error Trace in getConnection() : " + e.getMessage());
         }
          return con;
      }
     public ResultSet display(String str)
     {
      ResultSet rs=null;
      DatabaseMetaData dm=null;
      try
      {
      Connection con1=this.getConnection();
      if(con1!=null)
      {
      java.sql.PreparedStatement passtmt= con1.prepareStatement(str);
      rs=passtmt.executeQuery();
      }     
      }
      catch(Exception e)
      {
      e.printStackTrace();
      }
      return rs;
     
     }
 
}
我把数据库的连接做成这样一个类,以后用的时候直接调用,不知道这样好不好,是做成一个方法好还这样好啊?
还有如果这样的话,那个connection  如何注销啊 ?
大家都来讨论啊,大家都有分的

解决方案 »

  1.   

    1楼的换一个回复好不好,都审美疲劳了
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    我把数据库的连接做成这样一个类,以后用的时候直接调用,不知道这样好不好,是做成一个方法好还这样好啊?
    ***
    没什么好不好,只是看需求有没有必要,效率问题。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    还有如果这样的话,那个connection  如何注销啊 ?
    ***
    从里到外 层层close()
      

  2.   

    to zdsdiablo
    如何注销,具体点,谢谢
    xml还不懂啊
      

  3.   


     如果是客户端程序怎么处理问题都不大。   服务器端的处理:
    1,书写Connection 产生器没有问题
    2, 连接产生点: 所有的业务处理之前,在所有的业务处理过程中使用1个连接
        当业务处理完成后将这个连接关闭。
        可以使用 ThreadLocall 对象帮助你。
      

  4.   

    java.sql.*中的问题我想把ResultSet抽出来作为一个类!简化数据库操作!可是怎么关闭??Statement;ResultSet!一般情况下数据库jdbc要
    Connection con = null;
    ResultSet rs = null;
    Statement st = null;
    访问结束了!

    st.close();
    rs.close();
    con.close();
    可是关闭不成功!有错误!怎么办??
    代码如下:(共有两个文件,已经测试!)文件1
    conn.javaimport java.sql.*;
    import java.util.*;
    import java.net.*;
    import java.io.*;
    public class conn {  public static void main(String args[]) {  
        System.out.println("hello");
      }
      
      Connection con = null;
      ResultSet rs = null;
      Statement st = null;
      public ResultSet classRs ()throws Exception{
      
      
    Class.forName("com.mysql.jdbc.Driver");
    System.out.println("OK");
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=1234");
    st=con.createStatement();
    ResultSet rs=st.executeQuery("select * from test");
    return rs;  }
      public void classRsClose()throws Exception{  
      rs.close();
      st.close();
      con.close();
      }
      
    }
    文件2testjdbc.javaimport java.io.File;
    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.sql.*;
    //请在test数据库中建立表test(字段为id和test)
    public class testjdbc{public static void main(String[] args){
    System.out.println("ok");
    try{conn thisRs = new conn();
    ResultSet thers=thisRs.classRs();
    thers.next();
    System.out.println("test:" +thers.getString("sn"));//请在test数据库中建立表test(字段为id和test)
    System.out.println("output ok" );
    thisRs.classRsClose();
    System.out.println("close ok");
    }
    catch(Exception e){
    System.out.println("sth. is wrong");}
    }
    }
      

  5.   

    http://community.csdn.net/Expert/topic/4876/4876684.xml?temp=.3233148我做过了
      

  6.   

    <serverName>localhost</serverName>  
     <portNumber >1433</portNumber >  
    这样的xml撒  到时候所有的代码读就用这个来度xml文件里面的这个信息
    万一到时候换成了其它数据库服务器 也不用修改每个页面的代码啦 
    你一定要问怎么读了 
    到baidu搜索一下不就OK 了 关键字就输入JAVA读取XML 好多帖子和现成代码的
    JDOM技术读取的吧   
    现介绍到这里  说的不好多见谅 是听说参与有分才进来的 一定要给参与分啊!!