因公司的有些项目采用hibernate的ORM框架,并且遗留下来的数据越来越多,势必需要备份或者分表,hibernate本身不支持对于分库分表的共享操作,google公司开源一个共享组件,地址:https://github.com/hibernate/hibernate-shards
现有公司的方式,采用同库水平分表的方式,那采用的分表条件是时间+其它条件,主要按时间维度进行分表,那么同样tb_user表,变为tb_user2012、tb_user2013...
import org.hibernate.EmptyInterceptor; import org.hibernate.Session; public class MCSInterceptor extends EmptyInterceptor { private static final long serialVersionUID = -878697113286355810L; public String onPrepareStatement(String sql) { String replaceSql = sql; if (sql.contains("tb_user")) { replaceSql = sql.replace("tb_user", "tb_user_bak"); } return replaceSql; } public void setSession(Session session) { // TODO Auto-generated method stub } }
spring:
<bean id="mcsInterceptor" class="ewell.dao.interceptor.MCSInterceptor"></bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="entityInterceptor"> <ref bean="mcsInterceptor" /> </property> <property name="hibernateProperties"> <props> <!-- 数据库方言 --> <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> <!-- 是否显示sql语句 --> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.jdbc.batch_size">0</prop> </props> </property> <!-- 映射实体 --> <!-- Spring自动扫描指定的路径下的映射类 --> <property name="packagesToScan"> <list> <value>ewell.bean.*</value> </list> </property> </bean>
其实操作就是在jdbc中preparestatment时候,把sql拦截下来进行重新组装,那么接下来的过程根据业务的场景,就能进行不同的封装处理。
文章是原创,ITEYE别又说我抄袭。
相关推荐
这可能包括struts2-core、struts2-convention-plugin、struts2-dojo-plugin、hibernate3、hibernate-entitymanager、jta等JAR包。 4. **配置Struts2**:在WEB-INF下创建struts.xml文件,配置Struts2的核心拦截器栈...
1. **Struts2** 相关的jar:包括`struts2-core.jar`、`struts2-convention-plugin.jar`、`struts2-spring-plugin.jar`等,这些库文件提供了Struts2的核心功能和与Spring的整合。 2. **Hibernate** 相关的jar:如`...
Struts2的核心组件包括Action、Interceptor、Result和配置文件(struts.xml)。在整合中,Struts2负责处理HTTP请求,调用业务逻辑,并返回相应的视图。 2. **Spring**:Spring是一个全面的企业级应用框架,它提供了...
- struts2-core.jar:核心库,包含Action、Result、Interceptor等核心组件。 - struts2-convention-plugin.jar:约定优于配置插件,简化Action类的配置。 - struts2-spring-plugin.jar:Spring插件,用于整合...
此外,可能还需要`struts2-convention-plugin.jar`用于自动配置,以及`struts2-spring-plugin.jar`来实现与Spring的集成。 其次,`Hibernate`是持久层框架,通过ORM(对象关系映射)技术实现了数据库操作的便捷性。...
- `struts2-core.jar`:这是Struts2框架的核心组件,包含了Action、Interceptor、Result等核心概念。 - `struts2-spring-plugin.jar`:这个插件允许Struts2与Spring框架无缝集成,使得Action类可以被Spring容器...
Struts2.3.36是Struts 2框架的一个版本,它提供了Action、Interceptor、Result等核心概念,帮助开发者组织业务逻辑和展示层。尽管这个版本较老,但其功能依然强大,能够与Spring和Hibernate协同工作,形成强大的企业...
- `struts2-core.jar`:Struts2框架的核心库,包含Action、Interceptor等主要组件。 - `struts2-convention-plugin.jar`:约定优于配置插件,简化配置文件的编写。 - `struts2-json-plugin.jar`:JSON支持插件,...
3. **Struts2框架**:Struts2是一个基于MVC设计模式的Web应用框架,它继承了Struts1的优点,并吸收了其他优秀框架的特点,如WebWork的Action和Interceptor。Struts2提供了一种强大的拦截器机制,可以方便地进行请求...
Struts2的核心组件包括配置文件(struts.xml)、拦截器(Interceptor)和结果视图(Result)。通过Action类,Struts2可以将用户请求转发给业务层进行处理,然后将处理结果返回给视图层展示。 **Spring**: Spring是...
1. **强大的拦截器(Interceptor)机制**:拦截器允许开发者定义一系列预处理和后处理操作,如权限验证、日志记录等,提高了代码的可重用性和可扩展性。 2. **灵活的配置**:通过XML或注解的方式配置Action、结果...
Struts2通过拦截器(Interceptor)机制实现了AOP(面向切面编程),提供了异常处理、数据校验、国际化等功能。 **Spring3**: Spring是一个全面的企业级应用框架,它支持依赖注入(DI)和面向切面编程(AOP)。...
此外,Struts2提供了拦截器(Interceptor)机制,允许自定义行为和扩展性,比如验证、日志等。Struts2的配置文件通常包括struts.xml,用于定义Action、结果类型和拦截器链。 **Spring2.5** Spring框架是一个全面的...
Struts2还引入了拦截器(Interceptor)机制,允许在请求处理过程中插入自定义逻辑,如权限验证、日志记录等。 **Spring4** 是一个全面的Java企业级应用框架,它不仅提供了依赖注入(DI)和面向切面编程(AOP)的...
xwork-core-2.1.6.jar是Struts2的核心库,包含Action、Interceptor等关键组件。struts2-core-2.1.8.jar则是Struts2的主框架包,包含了框架运行所需的类和资源。 Spring框架是一个全面的企业级应用开发框架,提供AOP...
- struts2-core.jar:Struts2的核心库,包含了Action、Result、Interceptor等核心组件。 - struts2-convention-plugin.jar:约定优于配置插件,简化Action类和结果的配置。 - struts2-spring-plugin.jar:与...
Java开发中的三大框架——Spring、Struts和Hibernate,是企业级应用开发的基石,它们各自承担着不同的职责,共同构建了高效、稳定的后端架构。本文将深入探讨这三大框架的核心概念、主要功能以及如何相互协作,以...
Struts 1是较老的版本,而Struts 2则引入了更多现代Web开发的最佳实践,如拦截器(Interceptor)机制。 **Hibernate框架**: Hibernate是一个强大的对象关系映射(Object-Relational Mapping,ORM)框架,它可以将...
- Struts相关的jar包:如struts2-core、struts2-convention、struts2-json-plugin等,用于核心功能、约定优于配置的加载和JSON支持。 - Hibernate的jar包:包括hibernate-core、hibernate-validator、hibernate-...
Struts2 API提供了丰富的拦截器(Interceptor)、结果类型(Result Type)以及插件(Plugin),使得开发者能够方便地控制请求处理流程、进行业务逻辑处理和视图展示。`struts2.3.1.2.chm` 文件中包含了Struts2的核心...