会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132359个问题
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1683楼

老师您好,我在测试以下代码后,columnName和value都有值,也将bean添加到了list集合中,为什么打印list集合却没有任何内容,也不报错呢?

代码区:

public <T> List<T> find(String sql, Object[] param, Class<T> clazz) {
		
		Connection conn = JdbcUtil.getConnection();
		PreparedStatement pres = null;
		ResultSet res = null;
		
		//这个集合中添加T类型表中的内容
		List<T> list = new ArrayList<T>();
		
		try {
			pres = conn.prepareStatement(sql);
		
			if(param != null) {
				for (int i = 0; i < param.length; i++) {
					pres.setObject(i+1, param[i]);
				}
			}
			
			//执行sql语句,并返回ResultSet对象
			res = pres.executeQuery();
			
			//获取该类对象,从中获取表中列名
			ResultSetMetaData rsmd = res.getMetaData();
			int count = rsmd.getColumnCount();
	
			//执行循环,创建T类型的对象,并存入list集合中
			while(res.next()) {
				//通过反射获取该表的类型
				T bean = clazz.newInstance(); //这个就相当于Departments d = new Departments();
				
				for (int i = 0; i < count; i++) {
					
					//获取到第一行数据的列名
					String columnName = rsmd.getColumnName(i+1);
System.out.print(columnName + "\t");	
					//获取第一行第一列的值
					Object value = res.getObject(columnName);
System.out.println(value);	
					//使用BeanUilts工具包,给T对象中的成员变量赋值
					BeanUtils.setProperty(bean, columnName, value);
				}

				list.add(bean);
			}
			
for (T t : list) {
    System.out.println(t.toString());
}

System.out.println(list);

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			
			JdbcUtil.close(conn, pres, res);
		}
		return list;
	}
	
以下是Departments类的toString()方法:

public String toString() {
	return department_id + "\t" + department_name + "\t" + location_id;
}

 运行截图:

BaseDao问题.gif

JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1685楼
JAVA 全系列/第三阶段:数据库编程/MySQL数据库的使用 1687楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 1688楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1689楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1690楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 1691楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1693楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 1695楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637