不知道你为什么不使用org.gjt.mm.mysql.Driver,
如果你的哪个驱动可用,问题一定不是出现在数据库上,不知道能不能把你程序贴出来看看。

解决方案 »

  1.   

    1.你的数据库可以连接吗???
    2.如果连接成功的话那应该是你的程序的问题...把代码贴出来看看...
    3.我用MYSQL的时候是可以用这些方法的...
      

  2.   

    <!-- jsp程序如下 --><%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import = "java.sql.*" %><jsp:useBean id="basicDB" class="bbs.basicDBBean" scope="page" />
    <html>
    <head>
    <title>
    main
    </title>
    <link href="css/main" rel="stylesheet" type="text/css">
    </head>
    <body bgcolor="#ffffff" leftmargin="0" topmargin="0" align=center valign=middle>
    <br><div align="center" style="font-size:14pt;color:black">我的留言板</div><br>
    <table width="760" border="0" align="center" cellpadding="2" cellspacing="2" class="n9pt">
     <tr>
      <td width="500" bgcolor="#cccccc">
    <div align="center"><font color="#ffffff">标题</font></div>
    </td>
    <td width="130" bgcolor="#cccccc">
    <div align="center"><font color="#ffffff">作者</font></div>
    </td>
    <td width="130" bgcolor="#cccccc">
    <div align="center"><font color="#ffffff">发表时间</font></div>
    </td>
     </tr>
     
    <%
    String sql;
    ResultSet rs;

             //lyb表中字段为id(int),title(varchar),author(varchar),addtime(datetime)
             sql = "select * from lyb order by addtime desc";

    basicDB.DBConnect();
    rs = basicDB.executeQuery(sql); while (rs.next())
    {
    out.print("<tr><td width=500 bgcolor=#eeeeee><a href=view.jsp?id=");
    out.print(rs.getInt("id"));//换成rs.getInt(1)就行了
    out.print(" target=bottom>&nbsp;&nbsp;");
    out.print(rs.getString("title"));//换成rs.getString(2)就行了
    out.print("</a></td><td width=130 bgcolor=#eeeeee><div align=center>");
    out.print(rs.getString("author"));//换成rs.getString(3)就行了
    out.print("</div></td><td width=130 bgcolor=#eeeeee><div align=center>");
    out.print(rs.getString("addtime"));//换成rs.getString(4)就行了
    out.print("</div></td></tr>");

    %>
    </table>
    </body>
    </html><!-- 
    另外,如果我要得到ResultSetMetaData对象的话将得到一个null型值
    -->
      

  3.   

    org.gjt.mm.mysql.Drive
    换这个驱动看看
      

  4.   


    用org.gjt.mm.mysql.Drive驱动结果还是一样,仍然不能用字段名访问数据!!!
    还会有其他原因吗????
      

  5.   

    可能是你的bean有问题,楼主可以先写段简单的代码测试一下你那个BEAN是否可用
    或者把你的bean贴出来让大家看看
      

  6.   

    package bbs;
    import java.sql.*;/**
     * 一个简单而基本的数据库连接类
     * 缺省使用JDBC-MYSQL桥接驱动程序
     *缺省使用jdbc:mysql://localhost:3306/basiclyb
     * @author zhou
     * @version 0.1
     * @see java.sql.Connection
     * @see java.sql.ResultSet
     */public class basicDBBean {
      //成员变量
      private String DBLocation = "jdbc:mysql://localhost:3306/basiclyb?useUnicode=true&characterEncoding=8859_1";
      //使用JDBC-MYSQL桥接驱动程序
      private String DBDriver = "com.mysql.jdbc.Driver";
      //查询结果的记录集
      private ResultSet rs = null;
      //数据库连接
      private Connection conn = null;  /**构造函数*/
      public basicDBBean() {
      }  /**
       *执行一个查询
       * @param sql 需要执行的查询字符串
       * @return 查询的结果集
       * @see java.sql.ResultSet
       * @see java.sql.Connection
       */
      public ResultSet executeQuery(String sql){
        if (conn == null){
          DBConnect();
        }    if (conn == null){
          rs = null;
        }
        else {
          try {
            Statement s = conn.createStatement();
            rs = s.executeQuery(sql);
          }
          catch (SQLException e){      }
        }    return rs;
      }  /**
       * 试着建立连接过程中的异常信息,如果一切正常,返回一个空字符串
       * @see java.sql.Connection
       */
      public String DBConnect(){
        String strExc = "";
        try {
          Class.forName(DBDriver);
          conn = DriverManager.getConnection(DBLocation,"root","");
        }
        catch (ClassNotFoundException e) {
          strExc = e.toString();
        }
        catch (SQLException e) {
          strExc = e.toString();
        }    return strExc;
      }  /**
       * 设置一个可用的数据地址
       * @param location 数据源地址
       */
      public void setDBLocation(String location){
        DBLocation = location;
      }  /**
       * 设置一个JDBC驱动程序
       * @param driver 一个JDBC驱动器
       */
      public void setDBDriver(String driver){
        DBDriver = driver;
      }  /**
       * 设置一个已经可用的数据库连接
       * @param conn 一个数据库连接对象
       * @see java.sql.Connection
       */
      public void setConn(Connection conn){
        conn = conn;
      }  /**
       * 获得当前的数据源地址
       * @return 当前的数据源地址
       */
      public String getDBLocation(){
        return DBLocation;
      }  /**
       * 获得当前的JDBC驱动器
       * @return 当前的JDBC驱动器
       */
      public String getDBDriver(){
        return DBDriver;
      }  /**
       * 获得当前的结果记录集
       * @return 当前的结果记录集
       * @see java.sql.ResultSet
       */
      public ResultSet getRS(){
        return rs;
      }  /**
       *获得当前的数据库连接
       * @return 当前的数据库连接
       * @see java.sql.Connection
       */
      public Connection getconn(){
        return conn;
      }
    }
    //我认为和BEAN没关系,因为我没用BEAN时也是一样!你们是不是都可以的?
      

  7.   

    驱动程序有问题,用org.gjt.mm.mysql.Driver就应该没问题了的。
      

  8.   

    org.gjt.mm.mysql.Driver是在哪下载的?
    我下载了一个使用后,好象还有这样的问题存在,就是不能通过getString(String fieldname)
    进行访问数据,抛出的异常还是找不到fieldname。
    有没有人把自己写的这样的代码贴出来让我看看?
      

  9.   

    我也曾经碰到过你一样的问题。我猜你的问题就出现在注册数据库url上。
    你下载mysql驱动的时候应该还有一个readme文件。注意了,你最好仔细阅读这个文件。里面有连接数据库url的各种附加参数。如果你仅仅用:jdbc:mysql://localhost:3306/your_database来连接,就会出现你的问题。应该加参数encoding=gb2312&character=true(具体我也记的很清楚了^_^),也就是:jdbc:mysql://localhost:3306/your_database?encoding=gb2312&character=true(好像还要一个参数).
    另外,假设你不加参数,你可以用getString(1),getString(2)...,等来获得记录的值,但是会乱码的。
      

  10.   

    补充:个人认为mysql的驱动中COM.MYSQL.JDBC.DRIVER是做得最好的,关键是你要会用.
      

  11.   

    ResultSet rs=databean.Query(sql); 
    ResultSetMetaData rsm=rs.getMetaData();