Object强转为实体类类型失败!!!!!!

我这是运用回调内部类的方法,实现对数据库的查询
废话不多说,先上代码:
Impl:

//用户登录
    @Override
    public User login(String username, String password) throws Exception {
        String sql = "select * from user where username=? and password=? ";
        return (User)jdbcTemplete.query(sql, new ResultSetHandler() {
            @Override
            public Object doHandler(ResultSet rs) throws SQLException {
                User user = null;
                if (rs.next()) {
                    user = new User();
                    user.setUserId(rs.getInt(1));
                    user.setUserName(username);
                    user.setPassWord(password);
                    user.setUserType(rs.getInt(4));
                    user.setCreatedDate(rs.getDate(5));
                    user.setLastmodifyDate(rs.getDate(6));
                }
                return user;
            }
        }, username, password);
    }

jdbcTemplete.query方法:

/**
	 * 查询方法的实现
	 * @param sql
	 * @param handler
	 * @param args
	 * @return                    ResultSetHandler接口     **其实接口也是一个类**
	 */
	public Object query(String sql, ResultSetHandler handler, Object...args) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			conn = DBUtils.getConnection();
			//预编译
			ps = conn.prepareStatement(sql);
			//赋值
			if(args != null){
				for (int i = 0; i < args.length; i++) {
					//用setObject是因为object是所有类型的父类
					ps.setObject(i+1, args[i]);
				}
			}
			//执行
			rs = ps.executeQuery();
			Object result = handler.doHandler(rs);
			return  result;
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		} finally {
			DBUtils.close(rs, ps, conn);
		}
	}

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值