http://www.csdn.net/develop/read_article.asp?id=18900
给你一个我写的java调用sql server数据源的例子
看一看你就知道如何改你的了
给你点提示init()初始化就是取连接相当于我给你例子中的构造函数至于你后两个方法我觉得完全可以合并为一个,看一看例子中处理update insert select的吧

解决方案 »

  1.   

    自己搞定了。
    package foo;
    import javax.naming.*;
    import javax.sql.*;
    import java.sql.*;
    public class DBTest {
    Connection conn = null;
    ResultSet rst = null;
    Statement stmt=null; 
    String ConStr="Not Connect";
    Context ctx=null; 
    DataSource ds=null;  
     
    public void init() {
        try{
          ctx = new InitialContext();
          if(ctx == null ) 
              throw new Exception("Boom - No Context");      ds =(DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");
          if (ds != null) //{
            conn = ds.getConnection();                  
          }
        catch(Exception e) 
          {
          e.printStackTrace();
          }
    }public ResultSet Open(String sql) 

        try
          {         
            if(conn != null)  {//ConStr = "Got Connection "+conn.toString();            
                stmt = conn.createStatement();
                rst =  stmt.executeQuery(sql);
                //return rst;
            }      
          }
        catch(Exception e) 
          {
          e.printStackTrace();
          }  
        return rst; 
    }
    public int Excute(String sql) throws SQLException,java.io.UnsupportedEncodingException 
    { int i=0;
        try
          {         
            if(conn != null)  
              {            
           conn.setAutoCommit(false); 
       stmt = conn.createStatement();
           i=stmt.executeUpdate(sql);  
           conn.commit();        
           stmt.close();  
           conn.close();
             }
      }  
      catch(SQLException e)  
          { conn.rollback(); 
            e.printStackTrace(); 
          } 
      return i ;
    }}
      

  2.   

    测试用的JSP文件。
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><jsp:useBean id="dataset" scope="request" class="foo.DBTest"/>  <html>
      <head>
        <title>DB Pool Test</title>
      </head>
      <body><%
     int t;
     int mtotal;
     int size;
     t=0;
     
     dataset.init() ;                //初始化,无返回值。  
     String sql="select * from news"; 
     ResultSet rs=dataset.Open(sql);
     while(rs.next()) {%> 
     您的第1字段:<%=rs.getString(1)%> 
     您的第2字段:<%=rs.getString(2)+"<br>"%> 
     <%}%>   </body>
    </html>
      

  3.   

    为知道为什么,我无法成功执行Excute(sql);
    每次都是Excute false ;
    (曾经成功过。但大部分时间不成功)
    如下:
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <jsp:useBean id="dataset" scope="request" class="foo.DBTest"/>  <html>
      <head>
        <title>DB Pool Test</title>
      </head>
      <body><%
     int t;
     int mtotal;
     int size;
     t=88;
     String sql;
     dataset.init() ;                //初始化,无返回值。  
     sql="select * from members"; 
     ResultSet rs=dataset.Open(sql);
     while(rs.next()) {%> 
     您的第1字段:<%=rs.getString(1)%> 
     您的第2字段:<%=rs.getString(2)%>  
     您的第3字段:<%=rs.getString(3)+"<br>"%> 
     
     <%}%> 
    <%
    sql="insert members (xm,mm) values('33','44')";
    t=dataset.Excute(sql);
    if (t>0) 
      out.println("Updated="+t);
    else 
      out.println("Excute false");
    dataset.Close();
    %> 
      </body>
    </html>