package db;
import java.sql.*;
public class dbopen
{
private String url="jdbc:odbc:jspdb";
private Connection con=null;
private ResultSet rs=null;

public dbopen()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(url);
}catch(ClassNotFoundException e){
System.err.println("dbopen():"+e.getMessage());

}catch(SQLException a){
System.err.println("sql exception:"+a.getMessage());
}

}
    public ResultSet executeQuery(String sql)
    {
     rs=null;
    
     try{
     Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
     rs=stmt.executeQuery(sql);
     }catch(SQLException ex){
     System.err.println("stmt.executeQury():"+ex.getMessage());
     }
        return rs;
    
    
    
    }
    public void executeUpdate(String sql)
    {
    
     try{
     Statement stmt=con.createStatement();
     stmt.executeUpdate(sql);
     }catch(SQLException exx){
     System.err.println("stmt.executeQury():"+exx.getMessage());
     }
    }
}以前自己写的,能用,当然你得改程你自己的数据源名称和用户以及密码

解决方案 »

  1.   

    这个是通过JDBC-ODBC桥连接的吧,如果不用ODBC呢?就直接连JDBC呢?该怎么连?
      

  2.   

    我给你一个.曾在csdn上也列出来个,是用javabean来写的.不用连接沲
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;import javax.naming.InitialContext;
    import javax.sql.DataSource;
    public class Database extends Object implements java.io.Serializable {
        private String driver=null;
        private String url=null;
        private String user=null;
        private String pass=null;
        
        private Connection conn=null;
        private Statement stmt=null;
        ResultSet rs=null; //结果集
        public Database() {
        }
        
        //连接池
        public boolean getConnFromPool(String sourceName){
            try{
                InitialContext ctx=new InitialContext();
                DataSource ds=(DataSource)ctx.lookup(sourceName);
                conn=ds.getConnection();
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
                return true;
            }catch(Exception e){
                if (stmt!=null){ 
                    try{
                        stmt.close();
                    }catch(Exception e1){}
                }
                if (conn!=null){ 
                    try{
                        conn.close();
                    }catch(Exception e1){}
                }
                System.out.println(e.getMessage());
                return false;
            }
       }
        
        //连接数据库
        public void getConnection(){
            driver="数据库驱动";
            String connStr = "数据库连接(如jdbc:oracle:thin:@服务器IP:1521:数据库"; //thin con
            url="";
            user="username";
            pass="password";
           
            try{
                Class.forName(driver);
                // Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            }catch(Exception e){System.out.println("driver error:");}
            try{
                conn=DriverManager.getConnection(connStr,user,pass);
                
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
            }catch(Exception e){
                System.out.println("error:"+e.getMessage());
            }
            
        }
      
     
    //关闭连接
        public boolean closeConnection(){
            try{
                if(rs!=null)rs.close();
                if(stmt!=null)stmt.close();
                if(conn!=null)conn.close();
                rs=null;
                stmt=null;
                conn=null;
                return true;
            }catch(Exception e){
                System.out.println(e.getMessage());
            }finally{
                if (stmt!=null){ 
                    try{
                        stmt.close();
                        stmt=null;
                    }catch(Exception e){}
                }
                if (conn!=null){ 
                    try{
                        conn.close();
                        conn=null;
                    }catch(Exception e){}
                }
    }
            return false;
        }
        
        //查询数据库
        public ResultSet query(String sql){
            try{
                rs=stmt.executeQuery(sql);
            }catch(Exception e){
               System.out.println(e.getMessage());
                return null;
            }
            return rs;
        }
        
    //  查询数据库
        public void in_query(String sql){
            try{
                rs=stmt.executeQuery(sql);
            }catch(Exception e){
                System.out.println(e.getMessage());
            }
        }
        
        //更新数据库
        public int update(String sql){
            int i=0;
            try{
             i=stmt.executeUpdate(sql);
            }catch(Exception e){
                System.out.println(e.getMessage());
            }
            return i;
        }
        
        //插入数据库
     public int insert(String sql){
            int i=0;
            try{
                i=stmt.executeUpdate(sql);
            }catch(Exception e){
    System.out.println(e.getMessage());
    }
            return i;
        }
     //删除记录
     public boolean del(String sql){
      try{
      stmt.executeUpdate(sql);
      }
      catch(Exception e){
      System.out.println(e.getMessage());
      return false;
      }
      return true;
     }
     
     //测试
        public static void main(String[] args){
            Database db=new Database();
            try{
               ResultSet rs=null;
                db.getConnection();
    String sql="select * from test";
                rs=db.query(sql);
                while(rs.next()){
                    System.out.print(rs.getString(1));
                    System.out.print("      ");
                    System.out.print(rs.getString(2));
                    System.out.print("      ");
                    System.out.print(rs.getString(3));
                    System.out.println("      ");
                }
                db.closeConnection();
            }catch(Exception e){}
        }
    }
    适用于多种数据库
      

  3.   

    上边两个方法好像差不多嘛。我的意思是,我用JavaBean去连数据库,然后将结果保留在JavaBean中,然后再用Jsp去调用,至于SQL语句放在哪里,我觉得无所谓,放在Jsp里,可能修改起来比较方便。但是为了测试简单,就现放在JavaBean中吧,我就是想学学用JavaBean连数据库并保留结果的方法。
      

  4.   

    package com.jspdev.util;
    import java.sql.*;
    public class DataBaseConnection
    {
    public static Connection getConnection()
    {
    Connection con=null;
    String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";
        String SERVANDDB="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test";
        String USER="sa";
        String PWD="test"; 
        try
        {
        
         Class.forName(CLASSFORNAME);
    con = DriverManager.getConnection(SERVANDDB,USER,PWD);
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    return con;
    }
    }该程序只负责连接SQL server SQL 语句写在外面
      

  5.   

    经过昨天一个下午的努力,我现在已经用JavaBean成功连接上数据库并保留结果了,通过测试了。
    下一个问题就是,我要用Jsp调用JavaBean,结果放在JavaBean中,请问该怎么写Jsp的内容呢,是不是还得写一个Servlet呢?