博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java.lang.NoSuchFieldException
阅读量:2081 次
发布时间:2019-04-29

本文共 927 字,大约阅读时间需要 3 分钟。

java.lang.NoSuchFieldException: img_path	at java.lang.Class.getDeclaredField(Class.java:2070)	at com.atguigu.preparedStatement.crud.BookForQuery.queryForBook(BookForQuery.java:81)	at com.atguigu.preparedStatement.crud.BookForQuery.testQueryForBook(BookForQuery.java:50)	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)	at java.lang.reflect.Method.invoke(Method.java:498)

找不到此字段,主要是数据库表字段和java类属性的不匹配导致的问题,一般Java类的属性都是驼峰命名,但是字段名有可能带下划线,我们在用反射获取该结果集的字段名时候,就会因为找不到相对应的字段而报错,即ResultSetMetaData类取列的字段名的时候:

//要写成rsmd.getColumnLabel(i + 1);//不要rsmd.getColumnName(i + 1);

学过mysql的都知道可以取别名,即给sql语句取和Java类属性名一样的别名,如果没有别名getColumnLabel方法会默认取原来的字段名

String sql = "select id, name, price, author, sales, stock, img_path as imgPath from t_book where id = ?";

转载地址:http://pakqf.baihongyu.com/

你可能感兴趣的文章
flask_migrate
查看>>
解决activemq多消费者并发处理
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>