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

老师您好,我在测试以下代码后,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技术(旧) 156楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 158楼
JAVA 全系列/第三阶段:数据库编程/SQL 语言 161楼
JAVA 全系列/第三阶段:数据库编程/JDBC技术(旧) 162楼

老师好:

          示例三,视频里老师测试的两种结果是一样的吧,没看出有什么区别,

第一种:

SQL> select last_name,job_id from employees where job_id like 'SA_%';
LAST_NAME                 JOB_ID
------------------------- ----------
Abel                      SA_REP
Ande                      SA_REP
Banda                     SA_REP
Bates                     SA_REP
Bernstein                 SA_REP
Bloom                     SA_REP
Cambrault                 SA_MAN
Cambrault                 SA_REP
Doran                     SA_REP
Errazuriz                 SA_MAN
Fox                       SA_REP
Grant                     SA_REP
Greene                    SA_REP
Hall                      SA_REP
Hutton                    SA_REP
Johnson                   SA_REP
King                      SA_REP
Kumar                     SA_REP
Lee                       SA_REP
Livingston                SA_REP
LAST_NAME                 JOB_ID
------------------------- ----------
Marvins                   SA_REP
McEwen                    SA_REP
Olsen                     SA_REP
Ozer                      SA_REP
Partners                  SA_MAN
Russell                   SA_MAN
Sewall                    SA_REP
Smith                     SA_REP
Smith                     SA_REP
Sully                     SA_REP
Taylor                    SA_REP
Tucker                    SA_REP
Tuvault                   SA_REP
Vishney                   SA_REP
Zlotkey                   SA_MAN
35 rows selected

第二种:

SQL> select last_name,job_id from employees where job_id like 'SA\_%' escape '\';
LAST_NAME                 JOB_ID
------------------------- ----------
Abel                      SA_REP
Ande                      SA_REP
Banda                     SA_REP
Bates                     SA_REP
Bernstein                 SA_REP
Bloom                     SA_REP
Cambrault                 SA_MAN
Cambrault                 SA_REP
Doran                     SA_REP
Errazuriz                 SA_MAN
Fox                       SA_REP
Grant                     SA_REP
Greene                    SA_REP
Hall                      SA_REP
Hutton                    SA_REP
Johnson                   SA_REP
King                      SA_REP
Kumar                     SA_REP
Lee                       SA_REP
Livingston                SA_REP
LAST_NAME                 JOB_ID
------------------------- ----------
Marvins                   SA_REP
McEwen                    SA_REP
Olsen                     SA_REP
Ozer                      SA_REP
Partners                  SA_MAN
Russell                   SA_MAN
Sewall                    SA_REP
Smith                     SA_REP
Smith                     SA_REP
Sully                     SA_REP
Taylor                    SA_REP
Tucker                    SA_REP
Tuvault                   SA_REP
Vishney                   SA_REP
Zlotkey                   SA_MAN
35 rows selected


JAVA 全系列/第三阶段:数据库编程/SQL 语言 164楼
JAVA 全系列/第三阶段:数据库编程/Oracle 数据库的使用 165楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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