Home  >  Article  >  Database  >  atitit.hb原生sql跨数据库解决原理获得hb数据库类型运行期获得Di

atitit.hb原生sql跨数据库解决原理获得hb数据库类型运行期获得Di

WBOY
WBOYOriginal
2016-06-07 15:56:131329browse

atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect #-----原理 Hibernate 运行期获得Dialect 2010-07-28 12:59:58| 分类: 软件开发 |举报 |字号 订阅 String dialect = ((SessionFactoryImpl) session.getSessionFactory()).getDialec

atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect


#-----原理

Hibernate 运行期获得Dialect

2010-07-28 12:59:58| 分类: 软件开发 |举报 |字号 订阅

String dialect = ((SessionFactoryImpl) session.getSessionFactory()).getDialect()
.getClass().getName();
// //org.hibernate.dialect.MySQLDialect


如果是spring + hibernate则可以:

String dialect = ((SessionFactoryImpl) getHibernateTemplate().getSessionFactory()).getDialect()
.getClass().getName();



作者 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax


#----实际代码

private boolean ifMysql() {
// attilax 老哇的爪子 上午10:24:49 2014年5月10日
String dialect = ((SessionImpl) getSession()).getFactory().getDialect()
.getClass().getName();
// org.hibernate.dialect.MySQLDialect
System.out.println(dialect);
if (dialect.contains("MySQLDialect"))
return true;
else
return false;
}


Session session = getSession();
String sqlString = "SELECT * FROM t_mb_awardweixin where activityId="
+ actid
+ " and openId='"
+ uid
+ "' and DATEDIFF(d,createTime,GETDATE())=0";
// 以SQL语句创建SQLQuery对象
if(ifMysql())
sqlString= "SELECT * FROM t_mb_awardweixin where activityId="
+ actid
+ " and openId='"
+ uid
+ "' and date(createTime) = curdate(); ";

List l = session.createSQLQuery(sqlString)




Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn