如下是servlet中验证数据库的一段代码
try {
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/jdbc_mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1";
con = DriverManager.getConnection(url);
ps = (PreparedStatement) con.prepareStatement("select * from users where username="+username+" and password="+password); 
//给问号赋值

//执行操作
rs=ps.executeQuery();
//根据结果处理
if(rs.next()){
//说明改用户合法,则跳转到主页面 
request.getRequestDispatcher("/MainFrame").forward(request, response);
}else{
request.getRequestDispatcher("/Login").forward(request, response);
}
如下是点击登陆以后报的错误信息:com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'jdbc_mysql.users' doesn't exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1467)
at com.view.LoginCtr.doGet(LoginCtr.java:31)
at com.view.LoginCtr.doPost(LoginCtr.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:619)
使用的是post提交,dopost函数里有this.doGet(reques,response);语句

解决方案 »

  1.   

    问题是:Table 'jdbc_mysql.users' doesn't exist。也就是数据库中没有这个users表!
      

  2.   

    localhost:3306/jdbc_mysql?请问你本地数据 这个jdbc_mysql库下有users这个表吗?
      

  3.   

    肯定是表不存在了:先create users 表吧。
    驱动类为什么用这个呢?Class.forName("org.gjt.mm.mysql.Driver");
    编码不能用utf8吗?String url = "jdbc:mysql://localhost:3306/jdbc_mysql?user=root&password=root&useUnicode=true&characterEncoding=8859_1";
    注意些代码的规范,以后会有体会的!!