Dorado7 MultiMcfBaseDao.java HibernateDao 多数据源支持(双Hibernate单数据库)

本文主要是介绍Dorado7 MultiMcfBaseDao.java HibernateDao 多数据源支持(双Hibernate单数据库),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

双Hibernate单数据库

MultiMcfBaseDao.java

package com.mini.dao;import java.util.List;
import java.util.Map;import org.apache.commons.lang.StringUtils;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.bstek.dorado.data.provider.Page;
import com.bstek.dorado.hibernate.HibernateDao;/**** MultiBaseDAO 多数据源支持(双Hibernate单数据库)* 创建日期: 20151125* @author like12* @param <T>* */
@SuppressWarnings("rawtypes")
public class MultiMcfBaseDao<T, Serializable> extends HibernateDao {/*** 保存* @param entity*/public void saveMulti(T entity, Session session) {String entityName = this.getEntityName(entity);//like12 modified,20170401,bug,保存不起,不提交Transaction tran = session.beginTransaction();try{session.saveOrUpdate(entityName, entity);//提交tran.commit();}catch (Exception e){e.printStackTrace();//回滚tran.rollback();}finally{}}/*** 更新* @param hql* @param params*/public void excuteUpdateMulti(final String hql, Object[] params,Session session) {Query query = session.createQuery(hql);//like12 modified,20170401,bug,保存不起,不提交Transaction tran = session.beginTransaction();try{if (params != null) {int i = 0;for (Object o : params) {query.setParameter(i, o);i++;}}query.executeUpdate();//提交tran.commit();}catch (Exception e){e.printStackTrace();//回滚tran.rollback();}finally{}}/*** like12 add,20200815,支持Object* 单个查询Object* @param hql* @param session* @param parameters* @return*/@SuppressWarnings("unchecked")public <X> X findUniqueMulti(String hql, Session session,Object... parameters) {//查询X X = (X) createQueryMulti(hql, session, parameters).uniqueResult();//返回return X;}/*** 单个查询* @param hql* @param parameters* @return*/@SuppressWarnings("unchecked")public <X> X findUniqueMulti(String hql, Map<String, ?> parameters, Session session) {//查询X X = (X) createQueryMulti(hql, parameters, session).uniqueResult();//返回return X;}/*** like12 add,20200815,支持Object* 全部查询Object* @param hql* @param session* @param parameters* @return*/@SuppressWarnings("unchecked")public <X> List<X> findMulti(String hql, Session session, Object... parameters) {//查询List<X> X = createQueryMulti(hql, session, parameters).list();//返回return X;}/*** like12 add,20160127* 全部查询Map* @param hql* @param parameters* @return*/@SuppressWarnings("unchecked")public <X> List<X> findMulti(String hql, Map<String, ?> parameters, Session session) {//查询List<X> X = createQueryMulti(hql, parameters, session).list();//返回return X;}/*** 分页查询* @param page* @param hql* @param parameters* @return*/@SuppressWarnings("unchecked")public void findMulti(Page<T> page, String hql, Map<String, ?> parameters, Session session) {notNull(page, "page");//总条数long totalCount = countHqlResultMulti(hql, parameters, session);//正式查询Query q = this.createQueryMulti(hql, parameters, session);page.setEntityCount((int) totalCount);setPageParameterToQuery(q, page);page.setEntities(q.list());}/*** like12 add,20200815,支持Object* 查询用子函数* @param hql* @param session* @param parameters* @return*/public Query createQueryMulti(String hql, Session session,Object... parameters) {Query q = session.createQuery(hql);if (parameters != null) {for (int i = 0; i < parameters.length; ++i) {q.setParameter(i, parameters[i]);}}return q;}/*** 查询用子函数* @param queryString* @param parameters* @param session* @return*/public Query createQueryMulti(String queryString, Map<String, ?> parameters, Session session) {Query query = session.createQuery(queryString);if (parameters != null) {query.setProperties(parameters);}return query;}/*** 分页查询用* @param hql* @param parameters* @param session* @return*/protected long countHqlResultMulti(String hql, Map<String, ?> parameters, Session session) {String countHql = generateCountHqlMulti(hql);return ((Number) findUniqueMulti(countHql, parameters, session)).longValue();}private String generateCountHqlMulti(String hql) {hql = "from " + StringUtils.substringAfter(hql, "from");hql = StringUtils.substringBefore(hql, "order by");String countHql = "select count(*) " + hql;return countHql;}
}

这篇关于Dorado7 MultiMcfBaseDao.java HibernateDao 多数据源支持(双Hibernate单数据库)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816495

相关文章

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c