OR-Mapping 设计改进(统计查询改进) | 学习笔记

简介: 简介:快速学习 OR-Mapping 设计改进(统计查询改进)

开发者学堂课程【DAO 开发实战业务分析:OR-Mapping 设计改进(统计查询改进】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/399/detail/5183


OR-Mapping 设计改进(统计查询改进)

 

内容介绍:

一、简要说明

二、具体内容

三、总结


一、简要说明

统计查询的操作较为固化。而且统计查询个数往往只返回一个结果。因为转换的操作形式使用不多,所以建议直接将其在 AbstractDAO 里面进行部分实现。


二、具体内容

1、在 AbstractDAO 里面追加有一个 getSupport()方法:

public <T> getSupport(String sql,Class<T> cls,Object …args) {

this.pstmt = this.conn.preparedStatement(sql) ;

if (args.length > 0) {

}

2、在 ResultSetToVO 类里面追加有一个转换的控制方法。

转换的一定是单个值,所以找到public static <T>

converteStat(PreparedStatement pstmt,Class<T> cls) {,

首先进行判断为if (” Integer”.equals(type) || ”

int”.equals(type)){,结果转为整型,则再跟上Result rs = pstmt.executeQuery();,进行return new Integer(rs.getInt(1));。此时位型不好操作,而 Resultset 可以直接用 String 接收,则先写入 String val = null;,

跟上 if(rs.next()) {

再跟上 val = rs.getString(1) ;,

但如果根据T来操作结果是不承认的,所以将<T> 改为 Object,将 Class<T> cls 删除掉,也不用判断位型,直接返回 return rs.getString(1);,否则 return“0”,

如下:

public static Object converteStat(PreparedStatement pstmt) throws Exception {

Result rs = pstmt.executeQuery();

if(rs.next()){

return rs.getString(1);

}

return“0”

}

3、在 AbstractDAO 里要进行转换处理

直接 return ResultSetToVOUtil.converteStat(this.pstmt) ,将 Object 强制变为 T ,直接跟上

return super.getSupport(sql,Long.class,args) ;,如果返回的是 String,则跟上

Object val = ResultSetToVOUtil.converteStat(this.pstmt);,且val = Long. parseLong(val.toString());,则return val

再跟上}else if (“int”.equals(cls.getSimpleName()) ||

“Integer”.”int”.equals(cls.getSimpleName());,再跟上val =Integer. parseInt(val.toString());,最终结果只需要将val强制变为T,即return T) val;就可以完成操作了。此时的结果也可以正常通过,

如下:

public <T> getSupport(String sql,Class<T> cls,Object …args) {

this.pstmt = this.conn.preparedStatement(sql) ;

if (args.length > 0) {

}

Object val = ResultSetToVOUtil.converteStat(this.pstmt)

if ”Long“.equalsIgnoreCase(cls.getSimpleName())) ;

val = Long. parseLong(val.toString()) ;

}else if (“int”.equals(cls.getSimpleName()) || “Integer”.”int”.equals(cls.getSimpleName()) ;

val =Integer. parseInt(val.toString())

}

return (T)val  

}

可以适用于所有的单表数据操作。


三、总结

程序调用处理和之间查询全部数据类似。所有的功能只是最基本的实现,如果要想将其应用在生产环境,还需要编写更多的代码,对整个的结构进行更加详细的改变。

相关文章
|
前端开发 Java UED
通用分页集模糊,全部查询,分页查询为一体(2)演示,优化上篇通用查询分页
通用分页集模糊,全部查询,分页查询为一体(2)演示,优化上篇通用查询分页
|
存储 SQL 缓存
|
存储 SQL 缓存
四.全文检索ElasticSearch经典入门-字符串查询&批量查询&DSL查询过滤&乐观锁
四.全文检索ElasticSearch经典入门-字符串查询&批量查询&DSL查询过滤&乐观锁
|
数据挖掘
白话Elasticsearch42-深入聚合数据分析之案例实战__bucket filter:统计牌品最近一个月的平均价格(Filter Aggregation)
白话Elasticsearch42-深入聚合数据分析之案例实战__bucket filter:统计牌品最近一个月的平均价格(Filter Aggregation)
147 0
|
SQL 监控 NoSQL
网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析|学习笔记
快速学习网站流量日志分析--统计分析--sql补充扩展--group by 语法限制解析
182 0
|
SQL 移动开发 开发者
OR-Mapping 设计改进(查询全部改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(查询全部改进)
105 0
|
SQL Oracle Java
OR-Mapping 设计改进(结果集元数据) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(结果集元数据)
|
SQL Java 数据库连接
OR-Mapping 设计改进(主键查询改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(主键查询改进)
|
SQL 开发框架 数据处理
OR-Mapping 设计改进(数据增加改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据增加改进)
115 0
|
SQL Java 开发者
OR-Mapping 设计改进(数据删除改进) | 学习笔记
简介:快速学习 OR-Mapping 设计改进(数据删除改进)
100 0