读书人

ResultSet为空的有关问题

发布时间: 2012-09-07 10:38:15 作者: rapoo

ResultSet为空的问题
登录网站访问数据库的过程中……

Serevlet 代码如下




Java code
package ser;import impl.AccountImpl;import it.shopping.dao.IAccount;import it.shopping.pojo.Account;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AccountSer extends HttpServlet{       private IAccount accountImpl = new AccountImpl();      private static final long serialVersionUID = -3708568559174453120L;      public AccountSer()   {       super();   }         public void destroy()    {        super.destroy(); // Just puts "destroy" string in log        // Put your code here    }        public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException    {    this.doPost(request, response);    }        public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException    {                 String status = request.getParameter("status");        if(status.equals("login"))        {                Account account = new Account();        account.setAlogin(request.getParameter("alogin"));        account.setApass(request.getParameter("apass"));                      account =accountImpl.queryAccount(account);                            if(account == null)        {            request.setAttribute("error", "登录失败");            request.getRequestDispatcher("/alogin.jsp").forward(request, response);            System.out.println("doPost is invoked");        }                else        {                      request.getSession().setAttribute("account", account);          response.sendRedirect("/t31/admin/index.jsp");                              }        }    }                 public void init() throws ServletException    {        // Put your code here        System.out.println("init is invoked");    }}


访问数据库:

Java code
package impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import utils.JdbcUtils;import it.shopping.dao.IAccount;import it.shopping.pojo.Account;public class AccountImpl implements IAccount{    @Override    public Account queryAccount(Account account)     {                     Account temp = null;         Connection conn = null;         PreparedStatement pre = null;         String sql = "SELECT * FROM students WHERE alogin=? AND apass=?";          ResultSet rs = null;                try       {                  conn = JdbcUtils.getConnection();        pre= conn.prepareStatement(sql);        pre.setObject(1,"alogin");        pre.setObject(2,"apass");        System.out.println("pre is invoked");        rs = pre.executeQuery();        System.out.println(rs.getString(1));                                                  if(rs.next())        {                          temp = new Account();             temp.setAid(rs.getInt("aid"));             temp.setAlogin(rs.getString("alogin"));             temp.setApass(rs.getString("apass"));                            }                            } catch (SQLException e){                    e.printStackTrace();        }  finally{            JdbcUtils.free( rs,pre,conn);         }     return temp;    }}


数据库工具类

Java code
package utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** *  * 2008-12-6 *  * @author <a href="mailto:liyongibm@hotmail.com">????</a> *  */public final class JdbcUtils {    private static String url = "jdbc:mysql://localhost:3306/shopping";    private static String user = "root";    private static String password = "593295570dr";    private JdbcUtils() {    }    static {        try {            Class.forName("com.mysql.jdbc.Driver");        } catch (ClassNotFoundException e) {            throw new ExceptionInInitializerError(e);        }    }    public static Connection getConnection() throws SQLException {        return DriverManager.getConnection(url, user, password);    }    public static void free(ResultSet rs, Statement pre, Connection conn) {        try {            if (rs != null)                rs.close();        } catch (SQLException e) {            e.printStackTrace();        } finally {            try {                if (pre != null)                    pre.close();            } catch (SQLException e) {                e.printStackTrace();            } finally {                if (conn != null)                    try {                        conn.close();                    } catch (SQLException e) {                        e.printStackTrace();                    }            }        }    }} 



Java code
package it.shopping.pojo;public class Account{    private int aid;    private String alogin;    private String apass;    public int getAid()    {        return aid;    }    public void setAid(int aid)    {        this.aid = aid;    }    public String getAlogin()    {        return alogin;    }    public void setAlogin(String alogin)    {        this.alogin = alogin;    }    public String getApass()    {        return apass;    }    public void setApass(String apass)    {        this.apass = apass;    }            }


Java code
package it.shopping.dao;import it.shopping.pojo.Account;public interface IAccount{ public Account queryAccount(Account account);}


[解决办法]
Java code
 public Account queryAccount(Account account)     {                     Account temp = null;         Connection conn = null;         PreparedStatement pre = null;         String sql = "SELECT * FROM students WHERE alogin=? AND apass=?";          ResultSet rs = null;                try       {                  conn = JdbcUtils.getConnection();        pre= conn.prepareStatement(sql); // 你的用户名和密码不是都放在account里的吗,怎么下面直接写死了?        pre.setObject(1,"alogin");    // 是否是pre.setString(1,account.getAlogin());?        pre.setObject(2,"apass");     // pre.setString(1,account.getApass());
[解决办法]
你传过来的是个对象,直接用它的属性怎么行呢,应该这样account.getAlogin());就行了

读书人网 >Java Web开发

热点推荐