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:[email protected]

转载请注明来源: 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)

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

时间: 2024-10-08 12:26:18

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

关系型数据库工作原理-时间复杂度(翻译自Coding-Geek文章)

本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 本文翻译了如下章节: 一. 前言 谈到关系型数据库,我想不到有什么东西能缺少它,可以说关系型数据已经无处不在.存在各种不同的关系型数据库:从轻量有用的SQLite到功能强悍的数据仓库. 但是,这只是一篇介绍关系型数据库工作原

控制台查看原生sql

情况:当tomcat运行时,项目运行过程中,控制台没有打印出原生sql语句: 解决办法如下: 在 META-INF  文件夹下,查找 persistence.xml 这个文件(这里注意可能一个项目不止一个这样的文件,要全找出来全修改),打开后,找到消息日志等级配置 <!-- 消息配置 Logging --> <!-- <property name="eclipselink.logging.level" value="OFF" /> --

atitit.查看预编译sql问号 本质and原理and查看原生sql语句

atitit.查看预编译sql问号 本质and原理and查看原生sql语句 1. 预编译原理. 1 2. preparedStatement 有三大优点: 1 3. How to look  gene  sql 2 1. Hb cfg all debug ,cant see... 2 2. WSExplorer按照进程抓取pack可以看见.. 2 3. Mysql 5.6 开放日志可以看见 2 4. Mysql and msssql的不同实现 2 4. MYSql的实现是jdbc连接完全的sql

Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道

Atitit.软件GUIbutton与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Server Version : 50524 3.mysql的max_allowed_packet限制[phpmyadmin | source] Show vari like '%%' Set max..=111111 Set global maxxx=1111 作者::老哇的爪子Attilax

Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道

Atitit.软件GUI按钮与仪表盘--db数据库区--导入mysql sql错误的解决之道 Keyword::截取文本文件后部分 查看提示max_allowed_packet限制 Target Server Version : 50524 3.mysql的max_allowed_packet限制[phpmyadmin | source] Show vari like '%%' Set max..=111111 Set global maxxx=1111 作者::老哇的爪子Attilax艾龙,E

SQL Server 2014 无法打开用户默认数据库 登录失败错误4064的解决方法

SQL Server 2014 无法打开用户默认数据库 登录失败错误4064的解决方法 晚上干了件蠢事,删除了管理员账户的默认数据库,紧接着就出现了标题里面的报错. 解决办法如下: 第一步:打开命令控制台 Win+R打开运行,输入CMD 第二步:复制粘贴如下命令 sqlcmd -E -d"master" -Q"exec sp_defaultdb N'PC\Admin', N'master'" 注意:把上条命令PC\Admin改成自己实际的账户,使用BackSlash

解决SQL Server管理器无法连接远程数据库Error: 1326错误

解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,错误描述信息摘录如下: An error has occurred while establishing a connection to the server. (provider: Named Pipes Provider, error: 40 – Could not open a con

paip.导入数据英文音标到数据库mysql为空的问题之道解决原理

#---原因:mysql 导入工具的bug #---解决:使用双引号不个音标括起来. 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax from log import * iniLog (r"c:\enWzPhonetic.log") n=0 for line in lines: if(n>100000 ):break; if( not isContain(lin

Laravel5.1 数据库--DB运行原生SQL

Laravel操作数据库有三种:DB原生SQL.构建器.Model.这三种依情况而决定使用哪种更合适. 那么今儿咱就从DB原生SQL说起: 1 用DB门面原生SQL语句操作 用DB门面操作的话呢 无非就是:insert.select.update.delete 另外附加一个statement(通用语句 比如drop之类的). 1.1 insert public function getInsert() { DB::insert('INSERT INTO articles (title, body