我需要连接SQLserver 在网上查了这段代码,可看不懂呀? 连接SQLServer 总应该有地方输入账号、密码与要连接的数据库吧?
package com.db.DataSqlserver;
import java.sql.Connection;
import java.sql.ResultSet; 
import java.sql.Statement; 
import java.sql.SQLException; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import javax.sql.DataSource; public class DataSqlserver {
private Connection m_conn=null; 
private Statement m_stmt=null; 
private boolean isAutoCommit; 
public DataSqlserver() throws Exception 

    try 
    { 
     Context initCtx=new InitialContext(); 
     Context envCtx=(Context)initCtx.lookup("java:comp/env"); 
     DataSource ds=(DataSource)envCtx.lookup("jdbc/SqlServer"); 

     m_conn=ds.getConnection(); 
     initCtx.close(); 
     envCtx.close(); 
    } 
    catch(Exception ex) 
    { 
       ex.printStackTrace(); 
       System.out.println("数据库连接错误!"); 
       throw ex; 
    } 

public void close()  throws SQLException 

     try 
     { 
         if(m_stmt !=null) m_stmt.close(); 
         if(m_conn !=null) m_conn.close(); 
     } 
     catch(SQLException ex) 
     { 
      ex.printStackTrace(); 
      System.out.println("数据库关闭错误!"); 
      throw ex; 
     } 

public ResultSet executeQuery1(String sql) throws SQLException 

       try 
       { 
        m_stmt=m_conn.createStatement(); 
        return m_stmt.executeQuery(sql); 
       } 
       catch(SQLException ex) 
       { 
        ex.printStackTrace(); 
        System.out.println("执行SQL:'"+sql+"' 错误! '"); 
        System.out.println(ex.toString()); 
        System.out.println(ex.getMessage()); 
        throw ex; 
       } 

public ResultSet executeQuery2(String sql) throws SQLException 

        try 
        { 
         m_stmt=m_conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); 
            return m_stmt.executeQuery(sql); 
        } 
        catch(SQLException ex) 
        { 
         ex.printStackTrace(); 
         System.out.println("执行SQL:'"+sql+"' 错误!'"); 
         System.out.println(ex.toString()); 
         System.out.println(ex.getMessage()); 
         throw ex; 
        } 

public int executeUpdate(String sql) throws SQLException 

      try 
      { 
       Statement stmt=m_conn.createStatement(); 
       int rt=stmt.executeUpdate(sql); 
       stmt.close(); 
       return rt; 
      } 
      catch(SQLException ex) 
      { 
       ex.printStackTrace(); 
       System.out.println("执行SQL:'"+sql+"' 错误'"); 
       System.out.println(ex.toString()); 
       System.out.println(ex.getMessage()); 
       throw ex; 
      } 

//  开始新事务 
public void beginTrans() throws SQLException     

       try 
       { 
        isAutoCommit=m_conn.getAutoCommit(); // 获得当前自动提交状态 
        m_conn.setAutoCommit(false);// 禁止自动提交 
       } 
       catch(SQLException ex) 
       { 
        ex.printStackTrace(); 
        System.out.println("开始新事务错误!"); 
        throw ex; 
       } 
}  //  保存任何更改并结束当前事务。它也可能启动新事务 
public void commitTrans() throws SQLException   

       try 
       { 
           m_conn.commit();  
           m_conn.setAutoCommit(isAutoCommit); 
       } 
       catch(SQLException ex) 
       { 
        ex.printStackTrace(); 
        System.out.println("更改当前事务错误!"); 
        throw ex; 
       } 

//  取消当前事务中所作的任何更改并结束事务。它也可能启动新事务。 
public void rollbackTrans() throws SQLException 

       try 
       { 
        m_conn.rollback(); 
        m_conn.setAutoCommit(isAutoCommit); 
       } 
       catch(SQLException ex) 
       { 
        ex.printStackTrace(); 
        System.out.println("取消当前事务错误!"); 
        throw ex; 
       } 

}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【IPvECMS】截止到2008-07-17 19:06:28的历史汇总数据(不包括此帖):
    发帖的总数量:4                        发帖的总分数:160                      每贴平均分数:40                       
    回帖的总数量:2                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:1                        结贴的总分数:20                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:3                        未结的总分数:140                      
    结贴的百分比:25.00 %               结分的百分比:12.50 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主该结一些帖子了
      

  2.   

      Context envCtx=(Context)initCtx.lookup("java:comp/env"); 
                DataSource ds=(DataSource)envCtx.lookup("jdbc/SqlServer"); [/color]
    用了连接池的jndi技术
      

  3.   

    Context initCtx=new InitialContext(); 
    Context envCtx=(Context)initCtx.lookup("java:comp/env"); 
    DataSource ds=(DataSource)envCtx.lookup("jdbc/SqlServer"); 
    m_conn=ds.getConnection(); 
    initCtx.close(); 
    envCtx.close(); 这一段...我现在需要连接到temp数据库  账号是sa 密码是sa 怎么利用这个类呢?
      

  4.   

    是不是还需要一个配置文件之类的呀?
    web.xml??
    还是别的什么?
      

  5.   

    这个是连接池,要配置 web.xml,还有tomcat里的server.xml如果您单纯的连接数据库的话,建议先学习JDBC连接
      

  6.   

    如果你用的是tomcat服务器的话,那个server.xml文件是要配置连接池的,配置连接池里面是要配置数据库连接的.