zoukankan      html  css  js  c++  java
  • atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型执行期获得Dialect

    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)
     
     
     

  • 相关阅读:
    ubuntu下/etc/rc.local和/etc/init.d/rc.local的区别
    Shell 中的中括号用法总结
    基于C语言sprintf函数的深入理解
    linux下查看十六进制文件方法
    oracle load data infile
    linux bash中too many arguments问题的解决方法
    关于促进问题解决
    SYSTEM表空间过大问题
    01 Oracle分区索引
    oracle 11gR2 ASM添加和删除磁盘 转
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7213917.html
Copyright © 2011-2022 走看看