请 54sunboy(舍我其谁)老大 贴出 hhaibin(小海)  更加完善的程序,通过JDBC-ODBC bridge访问SQL7.0,谢谢。

解决方案 »

  1.   

    请 54sunboy(舍我其谁)老大 贴出 hhaibin(小海)  更加完善的程序,通过JDBC-ODBC bridge访问SQL7.0,谢谢。
      

  2.   

    由于时间不多,到现在为止,我只重写了一部的类对象的方法,我会继续写完的。请更多的朋友也参与进来,谢谢!以下是我的JAVABean的源代码。
    accessData.java
    /**
       Author:Zhihong SUN
              Copyright (c) 2001 ShenZhen China
       Title:accessDatabase.java
       Purpose:This is a JAVABean module,using it access Database by JDBC-ODBC bridge,You must create install
               the database ODBC driver to system and add the database Data Source in system DNS of odbc data source!
       Inputs:
              driverName:Type is String,Access database driver name,default is "sun.jdbc.odbc.JdbcOdbcDriver";
              dbURL:Type is String,Access database URL,Format is "jdbc.odbc.youDNS";
              dbUser:Type is String,Login and access database DBS use;
              dbPassword:Type is String,Database user password;
      sqlQuery:Type is String,The SQL sentence,procedure;
       Outputs:
               conn:Type is Connection,the database link object;
       stmt:Type is Statement,the execute SQL object;
       rs:Type is ResultSet,the query result object;
       Note:
           The using JSP page format:
           <jsp:useBean id="JSPdb" class="data.accessDatabase" scope="session"/>
             boolean flag = JSPdb.init("sun.jdbc.odbc.Jdbc0dbcDriver","jdbc.odbc.myDNS","sa","********");
     if(flag)
       {
         ResultSet rs = JSPdb.executeQuery("SELECT * FROM tableName");
       } 
                         .
         .
         .   Date:08/09/2001**/package data;
    import java.text.*;
    import java.util.*;
    import java.sql.*;
    import java.io.*;public class  accessDatabase
    {
      String driverName = "";//JDBC驱动器
      String dbURL = "";//被访问数据库的URL
      String dbUser = "";//数据库的访问用户
      String dbPassword = "";//数据库用户的密码
      public Driver driv = null;//driver 对象,由Class.forName(driverName).newInstance()创建;
      public Properties p=new Properties();//Properties对象,用于存储连接数所需的变量,如:用户名,密码;赋值为p.put("user","user value");
      public Connection conn = null;//Connection   对象,由DriverManager.getConnection(dbURL,dbUser,dbPassword)或driver.connect(dbURL,Proper)创建;
      public Statement stmt = null;//Statement 对象,由connection.createStatement()创建;
      public ResultSet rs = null;//ResultSet 对象,用于存储结果集;
      public int column = 0;//操作所影响的栏  public boolean init(String driverName,String dbURL,String dbUser,String dbPassword)
         {
          this.driverName = driverName;
          this.dbURL = dbURL;
          this.dbUser = dbUser;
          this.dbPassword = dbPassword;      try
            {
             Class.forName(driverName);
      return true;
            }
          catch (java.lang.ClassNotFoundException e)
              {
                System.out.println("ClassNotFoundException Error:"+e.getMessage());
                return false;
              }
         }
      
      public ResultSet executeQuery(String sqlQuery)
         {
           try
             {
               conn = DriverManager.getConnection(dbURL,dbUser,dbPassword);
               stmt = conn.createStatement();
               rs = stmt.executeQuery(sqlQuery);
             }
           catch (SQLException e)
             {
               System.out.println("SQLException Error:" + e.getMessage());
             }
           return rs;
         }  public int executeUpdate(String sqlQuery)
         {
           try
             {
               conn = DriverManager.getConnection(dbURL,dbUser,dbPassword);
               stmt = conn.createStatement();
               int column = stmt.executeUpdate(sqlQuery);
             }
           catch (SQLException e)
             {
               System.out.println("SQLException Error:" + e.getMessage());
             }
           return column;
         }    public boolean closeLink()
         {
           try
              {
               if (rs!=null)
           rs.close();
       
       if (stmt!=null)
           stmt.close();

       if (conn!=null)
           conn.close();

       return true;
      }
           catch(SQLException e)
      {
        System.out.println("SQLException Error:" + e.getMessage());
        return false;
      }
         }
    };
      

  3.   

    这一篇是他在JSP中的使用例子:
    index.jsp
    <%
      /**
         Author:Zhihong SUN
                Copyright (c) 2001 ShenZhen China
      **/
    %><%@ page language="java" %>
    <%@ page contentType="text/html;charset=gb2312" %>
    <%@ page import="java.sql.*"%><%!
          public String getStr(String str)
      {
         try
       {
         String temp_p=str;
     byte[] temp_t=temp_p.getBytes("ISO8859-1");
     String temp=new String(temp_t);
     return temp;
       }
     catch(Exception e)
      {
     
     }
    return "null";
      }  
    %>
    <%-- 设置操作数据库的通用 JavaBean --%>
    <jsp:useBean id="dbBean" class="data.accessDatabase" scope="session"/>
    <%
      ResultSet rs = null;
      String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
      String dbURL = "jdbc:odbc:MSshop";//MSshop是我的ODBC中的系统DNS名称,改为你的即可。
      String dbUser = "sa";
      String dbPassword = "sunboy";
      Connection con = null;
      
      //初始化
      dbBean.init(driverName,dbURL,dbUser,dbPassword);
      
      //关于查询的例子
      String selectQuery = "SELECT * FROM bigclass";    
      rs = dbBean.executeQuery(selectQuery);
      while(rs.next())
    {
         String bigclassid = rs.getString(1);
     String c_classname = rs.getString(2);
     String picture = rs.getString(3);
     String e_classname = rs.getString(4);
     out.println(bigclassid+"----"+c_classname+"-----"+picture+"-----"+e_classname+"<br>");
    }
      
      //关于插入的例子
      String insertQuery = "INSERT INTO bigclass VALUES(14,'球类','image/football.gif','ball')";
      dbBean.executeUpdate(insertQuery);
      
      //关闭连接
      dbBean.closeLink();%>
    我的调试环境是win2000+tomcat3.2.1+jdk1.3+SQL Server7.0,只要将accessDatabase.java编译之后放到你的JSP工作目录下的\WEB-INF\classes\data目录下,就可以调用了。
    此程序是鄙人拙作,只供学习交流,请各位多多指教!