[Hibernate] - Interceptors and events

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;
    }

}
时间: 2024-12-14 18:42:07

[Hibernate] - Interceptors and events的相关文章

hibernate官方新手教程 (转载)

hibernate官方新手教程第一部分 - 第一个Hibernate程序 首先我们将创建一个简单的控制台(console-based)Hibernate程序.我们使用内置数据库(in-memory database) (HSQL DB),所以我们不必安装不论什么数据库server. 让我们如果我们希望有一个小程序能够保存我们希望关注的事件(Event)和这些事件的信息. (译者注:在本教程的后面部分,我们将直接使用Event而不是它的中文翻译“事件”,以免混淆.) 我们做的第一件事是建立我们的开

Hibernate 第一个Hibernate应用程序

Chapter 1. Tutorial   第一章 使用说明书 Table of Contents   目录 1.1. Part 1 - The first Hibernate Application   第一节 第一个Hibernate应用程序 1.1.1. Setup   设置开发环境 1.1.2. The first class  创建第一个类 1.1.3. The mapping file  创建类与数据库表的映射文件 1.1.4. Hibernate configuration  Hi

maven配置hibernate

本文为原创,转载请注明 来至: http://blog.csdn.net/j903829182/article/details/38147659 1.进入cmd创建一个web项目并导入myeclipse中修改好目录结构和配置好项目的属性,详细的我这里就不说了,具体请参照我的博客:http://blog.csdn.net/j903829182/article/details/38128777里面有具体的创建配置的方法和步骤,这这里我主要讲解下怎么使用maven来配置管理hibernate 我这里主

hibernate4实战1—入门

1.下载hibernate-release-4.3.7.Final.zip 2.内置: 文档:hibernate-release-4.3.7.Final/documentation jar文件:hibernate-release-4.3.7.Final/lib 源代码:hibernate-release-4.3.7.Final/project 其中lib又分为:envers + jpa + optional + required 真正的hibernate是指core文件: hibernate-r

手动配置hibernate4.3.4的步骤

1:创建一个web项目或者java项目 2:找到hibernate包lib目录下面的required下面的包把包放到lib目录下面,在导入buidler path里面 3:写java类,我写的java bean类,代码如下: package org.hibernate.domain; import java.util.Date; public class Event { private Long id; private String title; private Date date; publi

Hibernate 3.3.2 文档翻译 Day01

Hibernate 3.3.2 文档翻译 翻译人:微冷的雨 第一次书写:2015年11月29日 本人呕心沥血之作,请细心阅读领悟! Day01-1.1 项目描述 微冷的雨翻译:例如,我们将要建立一个可以存储我们关注的events(注:实体集合)和相关信息的小型数据库应用. 注意(Tip):虽然你可以使用任何你感觉合适的数据库,我们将使用HSQLDB(内存级别)这款数据库,以避免对数据库服务器的安装. Day01-1.1.1 项目构建 微冷的雨翻译:我们的首要工作是搭建开发环境.我们将使用我们提倡

spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置

先从persistence.xml开始: <?xml version=”1.0″ encoding=”UTF-8″?><persistence version=”2.1″ xmlns=”http://java.sun.com/xml/ns/persistence” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/persistence

Hibernate中的inverse属性

Inverse属性 一.Inverse是hibernate双向关系中的基本概念.inverse的真正作用就是指定由哪一方来维护之间的关联关系.当一方中指定了“inverse=false”(默认),那么那一方就有责任负责之间的关联关系,说白了就是hibernate如何生成Sql来维护关联的记录! Hibernate仅仅按照主控方对象的状态的变化来同步更新数据库.按照原来的映射文件,people.getAddresses().add(address),即主控方对象的状态发生了改变,因此数据库会跟着对

spring + springMVC +hibernate 配置2

这种方式比较精简 配置项不多 spring采用自动扫描配置 ,分spring_springMVC.xml  . hibernate_config.xml 两个文件 web.xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.o