zoukankan      html  css  js  c++  java
  • JDBC:从数据库中取数据的一个bug

    先看错误信息:

     1 java.sql.SQLException: Before start of result set
     2     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
     3     at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:720)
     4     at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:5624)
     5     at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5544)
     6     at hw5servlet.doGet(hw5servlet.java:38)
     7     at hw5servlet.doPost(hw5servlet.java:62)
     8     at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
     9     at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    10     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    11     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    12     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    13     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    14     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    15     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    16     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    17     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    18     at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
    19     at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617)
    20     at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1760)
    21     at java.lang.Thread.run(Thread.java:745)

    再看编写的JDBC查看代码(如下):

     1 Class.forName("com.mysql.jdbc.Driver");
     2             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/day36","root","root");                    
     3             String insertString="select password from register where email="+email+";";
     4             //String insertString="insert into  register values(?,?,?)";
     5             //System.out.println("hw5servlet.doGet()"+insertString);
     6             Statement ps = connection.createStatement();
     7             boolean execute = ps.execute(insertString);
     8             //ps.executeQuery(insertString);
     9             if(execute){
    10                 ResultSet rs = ps.getResultSet();
    11                 //rs.beforeFirst();
    12                 //rs.next();
                //本以为从数据库中去代码只有一行,默认应该是在第一行的,然后直接rs.getString(1)就可以。
    //但事实不然,getString()时一定要有rs.next().
    13 String password1 = rs.getString(1); 14 System.out.println("hw5servlet.doGet()"+password1); 15 if(password.equals(password1)){ 16 response.getWriter().write("登陆成功"); 17 }else { 18 response.getWriter().write("密码错误,请重新登录"); 19 response.sendRedirect("/Day36_JDBC_hw4/index.jsp"); 20 } 21 }

    找了许久没找到,然后百度:http://blog.csdn.net/killua_hzl/article/details/6073618

    原创作品,转载请注明出处!
  • 相关阅读:
    java-connect-mysql
    搜索框提示列表问题
    方法中的函数会掩盖this,解决办法!
    关于W3C盒子布局
    将类数组转化成数组
    js获取元素宽高
    使用gulp添加版本号
    flex布局
    排序-冒泡排序
    js事件、自定义dom事件、自定义事件
  • 原文地址:https://www.cnblogs.com/yidijimao/p/5199340.html
Copyright © 2011-2022 走看看