使用DBUtils反射虚拟实体(实际数据库没有相对应的表)
来源:互联网 发布:阿里云 图像识别 api 编辑:程序博客网 时间:2024/04/29 04:05
使用dbutils反射虚拟实体(实际数据库没有相对应的表)
比较复杂的SQL语句:
String sql="select scope_unit.name as '单元',SUM(t_question.successNum)/SUM(t_question.num)*100 as '正确率%',SUM(t_question.num) as '完成题目次数' "+ "from t_question,t_scope as scope_section,t_scope as scope_unit "+ "where t_question.scope_pk_scope_id=scope_section.pk_scope_id "+ ......";
创建domain包:
/** * 各单元正确率分析的虚拟表 * @author Nan * */public class NameRateCount {private String ScopeName;//名称private String accuracy;//正确率private String answerCount;//答题次数public String getAnswerCount() {return answerCount;}public void setAnswerCount(String answerCount) {this.answerCount = answerCount;}public String getAccuracy() {return accuracy;}public void setAccuracy(String accuracy) {this.accuracy = accuracy;}public String getScopeName() {return ScopeName;}public void setScopeName(String scopeName) {ScopeName = scopeName;}@Overridepublic String toString() {return "NameRateCount [ScopeName=" + ScopeName + ", accuracy="+ accuracy + ", answerCount=" + answerCount + "]";}}
其中id为年级、教材版本以及科目所对应的唯一标识,可以查出该年级的版本科目的所有单元的名称,正确率,答题次数
List<NameRateCount> lists=getForList(sql, id);
其中getForList核心代码如下:
/** * 返回 T 所对应的 List * @param sql * @param args * @return */public List<T> getForList(String sql, Object ... args){try {connection = JdbcUtils.getConnection();//System.out.println(connection);return queryRunner.query(connection, sql, new BeanListHandler<>(clazz), args); } catch (Exception e) {e.printStackTrace();} finally{JdbcUtils.releaseConnection(connection);}return null;}然而运行结果却报空指针异常:
而且查出来的lists的值为空,然而却有长度。即有查询记录,但值为空。
以上证明,虚拟表的字段的值没有被插入,但实际上有尝试执行插入操作,只不过没成功。
原因可能是sql语句别名与虚拟实体的字段名称不相匹配造成的,试改之:
String sql="select scope_unit.name as ScopeName,SUM(t_question.successNum)/SUM(t_question.num)*100 asaccuracy,SUM(t_question.num) asanswerCount ......“
成功!
myeclise每次修改代码,都要重新发布,好麻烦?
答:Window-Show View-Service
0 0
- 使用DBUtils反射虚拟实体(实际数据库没有相对应的表)
- 使用hibernate创建相对应的数据库表(@注解配置)
- 无法连接虚拟设备ide1:0,主机上没有相对应的设备... 解决
- 使用MyBatis指定返回结果与实体属性相对应的方法
- vmware启动虚拟机提示"无法连接虚拟设备ide1:0,主机上没有相对应的设备"
- 查询数据库中的表,返回字段相对应的数据类型!
- 使用DbUtils访问数据库
- dbutils的使用(二)
- Java-反射-实际使用
- 不使用反射的实体类
- 显示相对应的图案
- 使用commons-dbutils简化JDBC操作(二) dbutils+反射
- 反射的实际应用
- 没有实际的限制
- php操纵mysql的类(与odbc相对应)
- php操纵mysql的类(与odbc相对应)
- 13、使用DBUtils操作数据库
- JavaWeb之DButils(二)使用DBCP实现数据库的连接池
- 1034: [ZJOI2008]泡泡堂BNB
- ERROR: dependency ‘plyr’ is not available for package ‘scales’
- 【Js】深入学习作用域与作用域链
- spark搭建
- 欢迎使用CSDN-markdown编辑器
- 使用DBUtils反射虚拟实体(实际数据库没有相对应的表)
- ImageButton点击改变图片
- BZOJ_P1067&Codevs_P2439 [SCOI2007]降雨量(线段树)
- Android实战(五)------Myeclipse新建运行Android项目
- android开发步步为营之88:基于LruCache和AsyncTask的网络相册开发
- 黑马程序员——java学习起始
- 【C】使用位运算符写一个整数计算器(图解)
- 关于interrupt,interrupted,isInterrupted的一点看法。
- mybatis报错:当要返回刚刚插入数据的id时