回 帖 发 新 帖 刷新版面

主题:[讨论]javabean连接mysql的问题

小弟新手,遍了一个JAVABEAN连接MYSQL的代码,不知道那里有问题,麻烦大哥大姐帮忙看看,代码有点长,十分感谢那些耐心看完帖子并给出回复的人....

JAVABEAN的包如下

package opendb; 

import java.sql.*; 


public class opendb 

String dbdriver="org.gjt.mm.mysql.driver"; 
String url="jdbc:mysql:/localhost/staffinfo"; 
String user="root"; 
String password="Lee_0593"; 

Connection conn=null; 
ResultSet rs=null; 
Statement stmt; 

public opendb() 

try{ 
Class.forName(dbdriver); 
conn= DriverManager.getConnection(url,user,password); 
stmt=conn.createStatement(); 

catch(java.lang.ClassNotFoundException e) 

System.err.println("dbconnaccess():"+e.getMessage()); 

catch(java.sql.SQLException exp) 

System.err.println("dbconnaccess():"+exp.getMessage()); 


public Statement getstmt() 

return stmt; 



public ResultSet exesql(String sql) 

rs=null; 
try {rs=stmt.executeQuery(sql);} 
catch (SQLException ex) { System.err.println("aq.excutequery:"+ex.getMessage());} 
return rs; 



public boolean executeupdate(String sql) 

try{ 
stmt.executeUpdate(sql); 
return true; 

catch(SQLException ea) {System.err.println("aq.executeupdate:"+ea.getMessage()); } 
return false; 

public void closedb() 

try{ 
if(rs != null) 
rs.close(); 
if(stmt != null) 
stmt.close(); 
if(!conn.isClosed() || conn != null) 
conn.close(); 

catch(Exception e){System.out.println(e.toString());} 




JSP代码如下

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="db" scope="page" class="opendb.opendb"/>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>用户登录</title> 
  </head>  
  <body >
  <center>
<%    
    String uid=request.getParameter("staff_name");
    String pwd=request.getParameter("password");
    String query="select * from staff where staff_name='"+uid+"' and password='"+pwd+"'";
    ResultSet rs = db.exesql(query); 
    if(rs.next())
    {
      rs.close();
     
      %>
      welcome <%=uid %>
      <%     
    }
    else
    {
      rs.close();
    %>
     <p>sorry!the password is incorrect!</p>
     <p><input type="button" name="Button2" value="back" onClick="backward()"></p>
    <%}
%>     
  </center>
  </body>
</html>

错误信息

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: opendb/opendb (Unsupported major.minor version 49.0)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:244)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.UnsupportedClassVersionError: opendb/opendb (Unsupported major.minor version 49.0)
    java.lang.ClassLoader.defineClass0(Native Method)
    java.lang.ClassLoader.defineClass(ClassLoader.java:539)
    java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
..........
..........
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

回复列表 (共1个回复)

沙发

问题已经解决,正确的代码如下.

JAVABEAN代码

package opendb;

import java.sql.*; //完成环境设置,导入java.sql包

public class opendb {

//declare variable
private Connection conn = null;
private ResultSet rs = null;
private String server = "localhost"; // Can't use localhost , you must use IP or CNAME 
private String db = "staffinfo"; //change to your db name
private String user = "root"; //change to your username
private String pass = "Lee_0593"; //change to your password
private String drivername="org.gjt.mm.mysql.Driver"; //mysql driver
private String URL="jdbc:mysql://"+server+"/"+db+"?useUnicode=true&characterEncoding=GBK&user="+user+"&password="+pass;

public opendb() 
{
}

public Connection getConn(){ //get database connection
try{
Class.forName(drivername).newInstance(); //载入驱动器
conn = DriverManager.getConnection(URL); //连接到数据库
}
catch(Exception e){
e.printStackTrace();
}
return conn ;
}

public ResultSet executeSQL(String str) {
try{
Statement stmt = conn.createStatement(); //语句接口
rs = stmt.executeQuery(str); //获得结果集
}
catch(Exception e){
e.printStackTrace();
}
return rs;

}

JSP代码

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="db" scope="page" class="opendb.opendb"/>

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>用户登录</title> 
  </head>  
  <body >
  <center>
<%  
    ResultSet rs=null;
    Connection conn=null;
    conn=db.getConn();
    String uid=request.getParameter("staff_name");
    String pwd=request.getParameter("password");
    rs=db.executeSQL("select * from staff where staff_name='"+uid+"' and password='"+pwd+"'");
    if(rs.next())
    {
      rs.close();    
      %>
      welcome <%=uid %>
      <%     
    }
    else
    {
      rs.close();
    %>
     <p>sorry!the password is incorrect!</p>
     <p><input type="button" name="Button2" value="back" onClick="history.back()"></p>
    <%}
%>     
  </center>
  </body>
</html>

值得注意的是上面的这个错误
exception 
javax.servlet.ServletException: opendb/opendb (Unsupported major.minor version 49.0)
专门找了个帖子详细解释Unsupported major.minor version 49.0错误以及解决方法,
连接如下
http://www.blogjava.net/Unmi/archive/2007/12/04/165035.html
如果有类似的错误,请参考上面连接

我来回复

您尚未登录,请登录后再回复。点此登录或注册