zoukankan      html  css  js  c++  java
  • [Hibernate]

    Hibernate的拦截器,有很大作用。比如要监控SQL的执行效率等。

    参考文档:

    http://docs.jboss.org/hibernate/orm/3.5/reference/zh-CN/html/events.html

    下面是一个简单的监控Hibernate的操作SQL打印:

    新建一个Java类:

    package com.my.dao.util;
    
    import org.hibernate.EmptyInterceptor;
    
    @SuppressWarnings("serial")
    public class AuditInterceptor extends EmptyInterceptor {
    
        @Override
        public String onPrepareStatement(String sql) {
            System.out.println(sql);
            return super.onPrepareStatement(sql);
        }
        
    }

    在Hibernate的Configuration中加入这句:

    configuration.setInterceptor(new AuditInterceptor());

    完整HibernateUtil

    package com.my.dao.util;
    
    import org.hibernate.SessionFactory;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    
    public class HibernateUtil {
    
        private static final SessionFactory sessionFactory = buildSessionFactory();
    
        private static SessionFactory buildSessionFactory() {
            try {
                // Create the SessionFactory from hibernate.cfg.xml
                Configuration configuration = new Configuration();
                configuration.setInterceptor(new AuditInterceptor());
                return configuration.configure().buildSessionFactory(
                        new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build());
            } catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
    
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
        
    }

    有一个Hibernate的插件,可以用于记录Hibernate的SQL真实数据:

    http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-solution/

  • 相关阅读:
    mysql_example
    windows 下 解决 go get 或 dep init 更新不了问题
    golang反射
    Windows下修改hosts并且让他立即生效
    Windows不重启就使环境变量修改生效
    swoole进程-2
    swoole进程
    swoole协程
    区间素数筛法
    AOJ
  • 原文地址:https://www.cnblogs.com/HD/p/3954323.html
Copyright © 2011-2022 走看看