写的真乱 !!!
-----------------
1、代码段的运行结果是什么,请帖出来,再来分析你的问题?
2、说一个跟你程序无关的问题,你这个Checkpasswd一直都是static ,我只能说呵呵了 ... 
从我个人的理解来看,如果不是为了获取些什么必要的“封装”信息 , 何必用static ?
3、先看(2、),然后要说,你这里很多函数其实就一两句话的事,整这么多你不嫌累我们看得都郁闷!
可读性不好,所以我说你这个程序"写的真乱!"

解决方案 »

  1.   

    你的这个函数public static  void exe()里面都被注释掉了啊,当然不执行了
      

  2.   

    但是checkpasswd重写了SQLconnectionde exe()方法了啊
      

  3.   


    conn
    com.microsoft.sqlserver.jdbc.SQLServerConnection@c75e4fc
    stmt
    com.microsoft.sqlserver.jdbc.SQLServerStatement@11bbf1ca
    rs
    com.microsoft.sqlserver.jdbc.SQLServerResultSet@6a8c436b
    query
    exe
    close
    isexist
    上面是执行过程
    刚学完面向对象的JAVA,见谅
      

  4.   

    conn
     com.microsoft.sqlserver.jdbc.SQLServerConnection@c75e4fc
     stmt
     com.microsoft.sqlserver.jdbc.SQLServerStatement@11bbf1ca
     rs
     com.microsoft.sqlserver.jdbc.SQLServerResultSet@6a8c436b
     query
     exe
     close
     isexist
    上面是执行过程
      

  5.   

    出错误没。debug 调试看看。
      

  6.   

    conn
     com.microsoft.sqlserver.jdbc.SQLServerConnection@c75e4fc
     stmt
     com.microsoft.sqlserver.jdbc.SQLServerStatement@11bbf1ca
     rs
     com.microsoft.sqlserver.jdbc.SQLServerResultSet@6a8c436b
     query
     exe
     close
     isexist
    上面是执行过程建议你调试,一步步走,看哪一步出问题了,注意控制台打印出的异常
      

  7.   

    没看到rs.next()方法,rs是指针,next方法后才是第一个值。
      

  8.   

    为什么这么乱...
    public class UserDaoImpl implements UserDao { @Override
    public User findWithLoginnameAndPassword(String loginname, String password)
    throws SQLException {
    Connection con = null;
    PreparedStatement pstm = null;
    ResultSet rs = null;
    try {
    con = ConnectionFactory.getConnection();
    StringBuffer sql = new StringBuffer();
    sql.append(" SELECT * FROM tb_user ");
    sql.append(" WHERE loginname = ?  ");
    sql.append(" AND password = ?  ");
    System.out.println(sql.toString());
    pstm = con.prepareStatement(sql.toString());
    pstm.setString(1, loginname);
    pstm.setString(2, password);
    rs = pstm.executeQuery();
    if(rs.next()){
    User user = new User();
    user.setId(rs.getInt("id"));
    user.setPassword(password);
    user.setLoginname(loginname);
    user.setUsername(rs.getString("username"));
    user.setAddress(rs.getString("address"));
    user.setPhone(rs.getString("phone"));
    user.setRole(rs.getInt("role"));
    return user;
    }
    return null;
    } catch (Exception e) {

    }finally{
    ConnectionFactory.close(con, pstm, rs);
    }
    return null;
    }}
    数据库连接工厂
    public class ConnectionFactory {
    private static DataSource ds;

    static{
    try {
    Context context = new InitialContext();
    ds = (DataSource) context.lookup("java:/comp/env/jdbc/bookDB");
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    public static Connection getConnection(){
    try {
    return ds.getConnection();
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }

    public static void close(Connection con,Statement stm,ResultSet rs){
    try {
    if (rs != null) rs.close();
    if (stm != null) stm.close();
    if (con != null) con.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }tomcat的context配置:
    <Resource name="jdbc/bookDB" auth="Container" type="javax.sql.DataSource"
                   maxActive="100" maxIdle="30" maxWait="10000"
                   username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
                   url="jdbc:mysql://localhost:3306/buy"/>
      

  9.   


    难得还有人有耐心看这么一堆乱七八糟的方法。JDBC的API都不熟悉你封装这么一堆东西干P。
      

  10.   

    private static int i =0;i怎么能用static呢?这个错误非常严重。
      

  11.   

    大哥,你说对了,结果集不管是几个,都得用游标来取出,我这里因为特殊就一行数据,没写next,所以取不出来。感谢12楼的大哥,static方法重新看了,多态理解点了。后辈我大学刚刚学java,自己做个程序玩玩。