- 浏览: 502747 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
项目中每个表里都有相同的四个字段,创建时间,创建人,更新时间,更新人,这时我们可以通过拦截器在保存,更新之前设置他们的值 public class HibernateInterceptor extends EmptyInterceptor { //只要继承这个类就OK了 @Override @Override 怎么让它起作用呢,在spring里配置文件加上下面的 <bean id="hibernateInterceptor"
首先写一个类继承org.hibernate.EmptyInterceptor或者实现org.hibernate.Interceptor接口:
为了简单起见,一般直接继承org.hibernate.EmptyInterceptor就可以了。
然后重载一下onFlushDirty方法和onSave方法就可以了。
因为Hibernate会在更新数据时回调onFlushDirty方法,在插入数据时回调onSave方法。
public boolean onSave(Object entity, Serializable id, Object[] state,
String[] propertyNames, Type[] types) {//这个保存到数据库之前,会执行的代码,entity是要保存的实体类
try {
PropertyUtils.setProperty(entity, "createTime", new Date());
if (ServletActionContext.getRequest() != null) {
PropertyUtils.setProperty(entity, "createUserID",
ServletActionContext.getRequest().getSession()
.getAttribute(Constants.LOGIN_USER_ID));
}
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return super.onSave(entity, id, state, propertyNames, types);
}
public boolean onFlushDirty(Object entity, Serializable id,
Object[] currentState, Object[] previousState,//这个更新到数据库之前,会执行的代码,entity是要更新的实体
String[] propertyNames, Type[] types) {
try {
PropertyUtils.setProperty(entity, "updateTime", new Date());
if (ServletActionContext.getRequest() != null) {
PropertyUtils.setProperty(entity, "updateUserID",
ServletActionContext.getRequest().getSession()
.getAttribute(Constants.LOGIN_USER_ID));
}
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return super.onFlushDirty(entity, id, currentState, previousState,
propertyNames, types);
}
class="com.jsict.framework.interceptor.HibernateInterceptor" />
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="entityInterceptor"> //在sessionFactory里配置上这个就可以了,拦截器就起作用了
<ref local="hibernateInterceptor" />
</property>
发表评论
-
Hibernate:Envers 审计
2018-09-17 23:57 531https://blog.csdn.net/Silen ... -
【转】Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法
2016-12-13 15:07 703http://www.cnblogs.com/hoojo ... -
【转】Spring3 整合Hibernate3.5 动态切换SessionFactory (切换数据库方言)
2016-12-13 15:05 768http://www.cnblogs.com/hoojo ... -
Hibernate中的三种对象状态:
2015-11-15 18:33 416Hibernate中的三种对象状态: 1.瞬时(tr ... -
【转】Hibernate过滤器使用窍门
2015-09-08 17:13 553Hibernate过滤器(filter)是全局有效的 ... -
【转】Hibernate left join(左连接)
2015-08-26 17:27 1995如果是内连接的多表查询可以不用join关键字,在where ... -
【转】Hibernate 所有缓存机制详解
2015-08-26 14:50 655hibernate提供的一级缓存 hibernate是一个 ... -
【转】Hibernate中session的clear(),flush(),evict()方法详解
2015-08-26 14:22 10461.Clear 方法 无论是Load 还是 Get ... -
object references an unsaved transient instance - save the transient instance be
2015-04-15 10:17 912在做hibernate保存时出现异常object refer ... -
【转】An association from the table * refers to an unmapped class: *
2015-04-08 10:13 962解决方法:class路径没写正确。有三个地方需要注意1、< ... -
hibernate映射文件one-to-one 元素属性(转)
2013-01-07 19:13 835one-to-one 元素 属性: name:映射类 ... -
【转】Hibernate中重要对象的详解
2012-12-13 14:18 674★→→SessionFactory (org.hibernat ... -
【转】很详细的spirng+struts+hibernate实例
2012-12-13 14:17 2379本文并不想介绍Struts,Spring,Hiber ... -
【转】Hibernate中id标签
2012-11-19 14:32 846核心提示:Hibernate中,id标签下的可选gener ... -
【转】hibernate动态创建表,修改表字段
2012-10-22 18:50 1053我们知道,hibernate的tool工具中有个包hbm2dd ... -
【转】hibernate many-to-one(多对一)及 cascade(级联)
2012-09-19 16:18 804Model public class User { // ... -
报错:使用hibernate字符串超长
2012-09-13 17:47 1578在使用varchar2类型时必须指定其长度(最小1字节 ... -
包名不同的同名类的hibernate冲突
2012-09-13 14:38 1217在实际开发中,在有类a.b.c.POClass和a.b.c ... -
【转】hibernate自定义类型部分接口详解--用户自定义类型
2012-08-31 16:48 0UserType public interface Us ... -
ORA-00904: "THIS_"."C_UNIT": 标识符无效
2012-08-02 13:40 1577hibernate could not resolve pro ...
相关推荐
### Hibernate 拦截器使用详解 在 Java 开发领域,Hibernate 是一款非常流行的 ORM(对象关系映射)框架,它极大地简化了基于 JDBC 的数据库访问。为了更好地控制持久化行为,Hibernate 提供了一个强大的事件处理...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式处理数据库操作。在开发过程中,为了调试和优化SQL查询,有时我们需要查看Hibernate生成的完整SQL语句,包括其参数...
通过这个实例,你可以学习如何整合 Spring MVC 和 Hibernate,实现用户登录验证,以及如何设计和配置拦截器来增强应用的安全性。此外,你还能了解到如何组织一个标准的 Java Web 项目结构。这些知识对于理解企业级 ...
在进行以上步骤的同时,还需要注意检查任何自定义的Hibernate拦截器、事件监听器或者其他扩展是否兼容Hibernate 3。另外,确保所有使用的API和方法在新版本中仍然可用,因为某些API在不同版本之间可能会被废弃或修改...
- **Hibernate拦截器**: 类似于监听器,但更灵活,可以直接修改对象的状态。 总结来说,“hibernate框架基本包”包含的资源旨在帮助开发者理解Hibernate的核心概念、操作和配置,以及如何在实际项目中有效利用它。...
15. **Hibernate拦截器**:提供了更细粒度的控制,可以在对象的持久化操作前后进行干预。 16. **实体关系映射策略**:包括一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)...
1. **Hibernate拦截器** Hibernate提供了一种机制,即拦截器(Interceptor),可以在特定的生命周期事件(如加载、保存、更新、删除等)前后执行自定义逻辑。拦截器可以用来实现诸如日志记录、权限验证等额外功能。...
- 拦截器配置:在Struts2中添加Hibernate拦截器,以处理Session的生命周期,例如,开启事务、提交或回滚等。 - 实现业务逻辑:在Action类中注入SessionFactory,通过Session执行数据库操作,使用Query接口执行查询...
整合过程包括在Struts 2配置文件中添加Hibernate拦截器,配置数据源,以及在Action类中注入Hibernate的SessionFactory和服务层组件。 4. **数据库设计**:实验中涉及到的数据库表包括学生表、专业表、课程表、登录...
拦截器和过滤器的区别 1、拦截器基于动态代理 , 过滤器基于函数回调 2、拦截器不依赖于servlet容器,通过动态代理实现,过滤器依赖于servlet容器 3、拦截器在方法前后,异常前后等调用,而过滤器只能在请求前和请求...
Struts1 框架是Java Web开发中的一个经典MVC框架,它的核心组件之一就是拦截器(Interceptor)。拦截器在Struts1中扮演着重要角色,它允许开发者在动作执行前后插入自定义的逻辑,比如日志记录、权限验证、事务管理...
Hibernate拦截器允许我们在实体的生命周期事件中插入自定义行为,如在保存、更新或删除实体前/后执行某些操作。这在日志记录、权限控制等场景非常有用。 5. **hibernate_09_006_Procedure**: 在这一章,可能会...
首先,我们需要新建一个 Hibernate 拦截器类,用于拦截所有数据库操作,并替换掉其中的表名。 ```java public class AutoTableNameInterceptor extends EmptyInterceptor { private String srcName = StringUtils....
1.针对SpringMVC注解的配置,可起到入门的作用 2.Spring+JdbcTemplate事物管理 3.Spring+Hibernate事物管理 ...5.Spring配置拦截器 6.Spring通过拦截器实现防止重复提交实例 对学习,会起到非常好的效果
在Spring、Struts2和Hibernate这三大框架的组合应用中,登录拦截器的作用尤为显著,它能确保只有经过身份验证的用户才能访问受保护的页面或执行特定的业务操作。 首先,让我们来理解一下这三个框架的角色: 1. **...
Hibernate 配置文件加密解密方案 在本文中,我们将讨论如何在 Hibernate 配置文件中对数据库密码进行加密和解密,以保护数据的安全。该方案通过使用 Java 的 Cipher 类和 DES 对称加密算法来实现加密和解密操作。 ...
标题中的"ssh+aop+log4j+日志拦截器+注解"涉及到的是Java Web开发中的几个核心组件和技术,这些技术在构建大型、分布式的企业级应用时常常被使用。下面将详细介绍这些知识点: 1. SSH (Spring, Struts, Hibernate)...
在这个"ssh最新框架搭建,加入拦截器"的主题中,我们将深入探讨SSH框架的搭建过程以及如何添加拦截器来增强功能。 首先,让我们从Spring框架开始。Spring是核心,它提供依赖注入(DI)和面向切面编程(AOP)的功能,...
2. **配置拦截器**:在Struts2的配置文件(如struts.xml)中,你需要声明你的拦截器,并将它添加到拦截器栈中。例如: ```xml <result name="success">/welcome.jsp <result name="error">/login.jsp...
2012最新ssh2框架-struts2.3+hibernate4.1+spring3.1登录+注册(md5加密)带拦截器,mysql数据库,带分页功能, 只需修改com/resource/resourses.properties数据库连接即可使用