kristenlee1218 2017-03-17 07:34 采纳率: 0%
浏览 1069

java.lang.NullPointerException

方法:
public static List query(String sql, Class clazz,
Object[] parameters) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
ResultSetMetaData metaData = null;
List list = new ArrayList();
int index = 1;
try {
pstmt = conn.prepareStatement(sql);
if (parameters.length != 0) {
for (int i = 0; i < parameters.length; i++) {
// pstmt.setObject(第几个参数, 替换成什么);
pstmt.setObject(index, parameters[i]);
}
}
rs = pstmt.executeQuery(sql);
// 封装resultset
metaData = rs.getMetaData();
// 取出列的信息
int columnLength = metaData.getColumnCount();
// 获取列数
while (rs.next()) {
// 通过反射机制创建一个对象
T result = clazz.newInstance();
for (int i = 0; i < columnLength; i++) {
String metaDataKey = metaData.getColumnName(i + 1);
Object resultsetValue = rs.getObject(metaDataKey);
if (resultsetValue == null) {
resultsetValue = "";
}
Field field = clazz.getDeclaredField(metaDataKey);
field.setAccessible(true);
field.set(result, resultsetValue);
}
list.add(result);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBCloseUtils.closeCSR(conn, pstmt, rs);
}
return list;
}

测试:
sql = "select * from user_info where id > ? order by id asc";
    list = databaseFactory.query(sql,User.class,new Object[]{2});
    if (list != null) {
        for (User user : list) {
            System.out.println("username=" + user.username);
            System.out.println("password=" + user.password);
        }
        System.out.println(sql);
        System.out.println("inquiry4");
        System.out.println("---------------------------");
    }
  • 写回答

3条回答 默认 最新

  • 关注

    你应该贴的是你的错误信息,那样方便看错误些

    评论

报告相同问题?

悬赏问题

  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。