p.setDBname("dbase"); 
p.connectDB(); 
方法不对,

解决方案 »

  1.   

    <jsp:useBean id="p" scope="page" class="DB.connectDB"/> 
    可以改成:
    <%
    DB.connectDB p=new DB.connectDB();
    %>
    下面的方法就不用改了.
      

  2.   

    为什么我不能用bean呢?我看过一些资料都是可以写一个封装链接数据库的bean,然后在jsp中用,为什么我的不可以呢??
      

  3.   

    p.connectDB(); 这种方法我一直没用成功过,书上的确有这种例子.在飞思科技的<<JSP教程>>上有.
    一般可以这样写:
    <jsp:useBean id="db" class="DB.connectDB" scope="request">
    <jsp:setProperty name="db" property="DBname" value="dbase">
    </jsp:useBean>
      

  4.   

    你的bean放在那里?必须放在服务器的classpath下
      

  5.   

    我的bean一直都是放在classpath中的。
    现在问题现在解决了,我是把bean文件connectDB.java中的conn=DriverManager.getConnection(sUrl,DBusername,DBpassword); 这句从connectDB()那个function移到queryDB()的function中的。
    改后如下:
    --------------- 
    package DB;
    import java.sql.*;
    import java.io.*;
    public class connectDB
    {
    String sDBDriver="org.gjt.mm.mysql";
    String DBname=null;
    String sUrl="jdbc:mysql://localhost/"+DBname;
    String DBusername="kafe";
    String DBpassword="81yjuly05d";
    Connection conn=null;
    public void setDBname(String DBname)
    {
    this.DBname=DBname;
    }
    public void connectDB()
    {
    try
    {
    Class.forName(sDBDriver);
    }
    catch(java.lang.ClassNotFoundException e)
    {
    System.out.println("It can't connect the Datebase!!!");
    }
    }public ResultSet queryDB(String sSql)
    {
    ResultSet RS=null;
    try
    {
    conn=DriverManager.getConnection(sUrl,DBusername,DBpassword);
    Statement stmt=conn.createStatement();
    RS=stmt.executeQuery(sSql);
    stmt.close();
    conn.close();
    }
    catch(SQLException ex)
    {
    System.out.println("It can't run this SQL:"+sSql);
    }
    return RS;
    }
      

  6.   

    出现这个错误是
    conn == null 将
     conn=DriverManager.getConnection(sUrl,DBusername,DBpassword); 改成
    conn=DriverManager.getConnection(="jdbc:mysql://localhost/"+DBname,DBusername,DBpassword); 
    再去掉
    stmt.close(); 
    这句话可能就可以了。