• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

JdbcQuery: JdbcQuery是一个对JDBC操作进行封装,使得在JAVA中执行复杂的SQL语句和存 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

JdbcQuery

开源软件地址:

https://gitee.com/wangwei123/JdbcQuery

开源软件介绍:

JdbcQuery

技术交流QQ群:162695864

JdbcQuery是一个对JDBC操作进行封装,使得在JAVA中执行复杂的SQL语句和存储过程变得像hibernate一样的简单,并能方便的将结果集以List、Map、Array的形式返回。

  1. 调用存储过程示例:

String strSql = "{call callcenter_pack.Get_TaskCaseCount(:P_UserID,:P_ErrorInfo,:P_OutData)}";JdbcQuery query = JdbcUtils.createNativeQuery(super.getConnection(), strSql);query.setParameter("P_UserID", 5);query.setOutParameter("P_ErrorInfo", OracleTypes.VARCHAR);        query.setOutParameter("P_OutData", OracleTypes.CURSOR);query.excuteProcedure();
### params: P_UserID、 P_ErrorInfo、 P_OutData.P_ErrorInfo 是一个输出参数, 用于返回存储过程中的错误信息P_OutData 是一个游标
String strError = query.getString("P_ErrorInfo");List<TaskBarCounter> dataList = query.getResultList("P_OutData",TaskBarCounter.class);query.closeCallableStatement();
### 可以方便的获取一个List类型的结果
  1. 调用SQL语句示例:

public Result findCollect(final QueryMap qMap) {	final StringBuilder sb = new StringBuilder();	StringBuilder sbWhere = new StringBuilder();		// 汇总查询所需的列	sb.append("select c.store_id, s.name,SUM(c.total_recharge) as total_recharge,");	sb.append("SUM(c.total_payment) as total_payment,");	sb.append("SUM(c.total_reversal) as total_reversal ");		// 查询条件	sbWhere.append(" from collect c inner join store s on c.store_id = s.id ");	sbWhere.append(" where c.created >= :start ");	sbWhere.append(" and c.created <= :end "); 	sbWhere.append(" and s.parent_id = :parentId ");	sbWhere.append(" and s.name like :storeName");	sbWhere.append(" GROUP BY c.store_id,s.name ");		// 查询数量	final String countSQL = "select count(c.id)" + sbWhere.toString();		// 分页	sb.append(sbWhere).append("limit :pageStart,:pageSize");		// QueryMap 是一个功能强大的HashMap, 提供了各种类型的转换, 	// 例如: String 转 Integer、String 赚 Date 等等.	qMap.convertsInt("pageIndex", "pageSize");	// 计算分页参数: limit :pageStart,:pageSize	qMap.setProperty("pageStart", qMap.getPageIndex()*qMap.getPageSize());		// 设置参数parentId 例如SQL: and s.parent_id = :parentId	qMap.setProperty("parentId", 5); 		// getLikeValue可以格式化为 Like形式,例如: test => '%test%'	qMap.setProperty("storeName", qMap.getLikeValue("storeName")); 		final Result result = new Result();	    // 获取hibernate数据源连接,基类中获取,通过super.getSession().connection    // 设置方法的参数:数据库连接,SQL语句,参数    JdbcQuery query = JdbcUtils.createNativeQuery(super.getSession().connection, countSQL, qMap);        // 获取数量    int count = query.getCount();        // 设置方法的参数:数据库连接,SQL语句,参数    JdbcQuery querys = JdbcUtils.createNativeQuery(super.getSession().connection, sb.toString(), qMap);        // 获取结果 List<? extends HashMap>    List<?> list = querys.getResultList();        // 将结果存入result中返回    result.setTotal(count);    result.setData(list);        Log.i("result", result);	    return result;}//===========================================================================================	//============= Hibernate4.x 获取数据库连接方式 begin ============================================		super.getCurrentSession().doWork(new Work() {  	    public void execute(Connection connection) { 	    	// 获取hibernate数据源连接:    		// 设置方法的参数:数据库连接,SQL语句,参数	    	JdbcQuery query = JdbcUtils.createNativeQuery(connection, countSQL, qMap);	    		    	// 获取数量	    	int count = query.getCount();	    		    	//设置方法的参数:数据库连接,SQL语句,参数	    	JdbcQuery querys = JdbcUtils.createNativeQuery(connection, sb.toString(), qMap);	    	// 获取结果 List<? extends HashMap>	    	List<?> list = querys.getResultList();	    		    	// 将结果存入result中返回	    	result.setTotal(count);	    	result.setData(list);	    		    	Log.i("result", result);	    }	});//============= Hibernate4.x 获取数据库连接方式 end ============================================		return result;} 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
mbg-plus: MyBatis Generator 插件集发布时间:2022-03-24
下一篇:
kingshard: A high-performance MySQL proxy发布时间:2022-03-24
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap