- 浏览: 289776 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chenchangqun:
这段示例代码没有客户端 没法实验
Java NIO原理和使用 -
congjl2002:
误,整理好了在发phk070832 写道垃圾代码,一大推的编译 ...
snmp trap的接收(jdmk方式) -
phk070832:
垃圾代码,一大推的编译错误,整理好了在发表吧。
snmp trap的接收(jdmk方式) -
zhangcctao:
我也遇到线程池的内存溢出问题。。不知道是不是这个原因呀?
多线程中使用静态方法 -
新入职:
分享了,这个eclise版本有没有讲究?我的3.3的可以么
windows下安装android及eclipse配置
网上发现这篇文章,转过来学习一下,好不好用还没有实践,需要自己检验一下。
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>AppConfigServlet</servlet-name> <servlet-class>com.test.ConfigServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
ApplicationContext.xml
Ibatis.xml<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="businessTarget"
class="com.test.BusinessInterfaceImpl" />
<bean id="businessBean"
class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="singleton">
<value>true</value>
</property>
<property name="proxyInterfaces">
<value>com.test.BusinessInterface</value>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
<value>businessTarget</value>
</list>
</property>
<property name="proxyTargetClass"><value>true</value></property>
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>gissys</value>
</property>
</bean>
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>
classpath:com/emaptech/persistence/SqlMapConfig.xml
</value>
</property>
<property name="dataSource" ref="dataSource"></property>
</bean>
ConfigServlet.java<insert id="testInsert" parameterClass="string">
insert into corebase.cc select 6,#value# from dual
</insert>
<insert id="testInsertWrong" parameterClass="string">
insert into corebase.cc select 6,#value#,7 from dual
</insert>
public class ConfigServlet extends HttpServlet {
/**
* UID
*/
private static final long serialVersionUID = 5118794568550751611L;
public void init() throws ServletException {
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());
BaseService.getInstance().init(ctx);
super.init();
}
}
BaseService.java
public class BaseService implements ApplicationContextAware {
private static ApplicationContext ctx;
private static SqlMapClient sqlMapClient;
private static SqlMapClient sqlMapClientProxy;
private static BusinessInterface businessBean;
private static BaseService instance = new BaseService();
/**
* @return 返回 静态类
*/
public static BaseService getInstance(){
return instance;
}
/**
* @return 返回 初始化BaseService,存于内存
*/
public void init(ApplicationContext ctx) {
setApplicationContext(ctx);
setSqlMapClient(ctx);
setBusinessBean(ctx);
// setSqlMapClientProxy(ctx);
System.out.println(" INFO - 初始化baseservice成功");
}
public void setSqlMapClient(ApplicationContext ctx){
sqlMapClient = (SqlMapClient) ctx.getBean("sqlMapClient");
}
/**
* @return 返回 sqlMapClient。
*/
public SqlMapClient getInstanceSqlMapClient() {
return this.sqlMapClient;
}
/**
* 通过spring注入ApplicationContext
*
* @param ApplicationContext
* @return null
*/
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
ctx = arg0;
}
public Object getBean(String beanName) {
return ctx.getBean(beanName);
}
/**
* @return 返回 sqlMapClient。
*/
public SqlMapClient getSqlMapClient() {
return (SqlMapClient) ctx.getBean("sqlMapClient");
}
public void setSqlMapClientProxy(ApplicationContext ctx) {
sqlMapClientProxy= (SqlMapClient) ctx.getBean("sqlMapClientProxy");
}
public SqlMapClient getSqlMapClientProxy() {
return sqlMapClientProxy;
}
public static BusinessInterface getBusinessBean() {
return businessBean;
}
public static void setBusinessBean(ApplicationContext ctx) {
businessBean = (BusinessInterface) ctx.getBean("businessBean");
}
}
BusinessInterface.java
public interface BusinessInterface { public void hello() throws SQLException; }
BusinessInterfaceImpl.java
public class BusinessInterfaceImpl implements BusinessInterface { public void hello() throws SQLException { System.out.println("hello Spring AOP."); SqlMapClient sqlMapClient = BaseService.getInstance().getInstanceSqlMapClient(); sqlMapClient.startTransaction(); sqlMapClient.insert("testInsert","7"); System.out.println("1"); sqlMapClient.insert("testInsert","8"); System.out.println("2"); sqlMapClient.insert("testInsert","9"); System.out.println("3"); sqlMapClient.insert("testInsertWrong","10"); sqlMapClient.commitTransaction(); } }
发表评论
-
java阻塞队列学习(转帖)
2010-06-06 11:50 3471import java.util.concurrent.Arr ... -
httpclient链接关闭问题(转帖)
2010-03-11 22:09 2137HttpClient client = new HttpCli ... -
J2EE集群原理(转贴)
2010-03-09 19:57 1213J2EE集群原理 什么是集群呢?总的来说,集群包括两个概念: ... -
java 可变参数
2009-12-14 20:50 14128vararg的意思是变量参数,它是与Jav ... -
java中的string
2009-11-25 14:45 1308从javaeye的论坛里看到这 ... -
使用JDBC对BLOB和CLOB进行处理
2009-11-12 20:33 4849从网上看到这篇文章,转过来做为学习用 设有表:create ... -
避免或最小化 Servlet 中的同步
2009-09-24 21:02 973servlet 是多线程的。基于 servlet 的应用程序必 ... -
httpclient 使用小记
2009-09-03 21:05 3383最近学习apache的httpclient 在使用postm ... -
httpclient 学习笔记
2009-08-23 16:52 1530前阵子,学习了一下APACHE 的httpclient,感觉h ... -
log4j使用
2009-06-19 21:08 1546从网上看到得,发现写 ... -
java虚拟机的一些概念
2009-05-24 10:22 1339从网上看到这篇文章,感觉适合初学jvm,就转来作为以后学习参考 ... -
xmlbean 生成带包路径的jar
2009-05-23 23:12 3283因为使用xmlbean生成 ... -
多线程中使用静态方法
2009-05-14 19:54 6635终于把内存泄漏问题解决了,不是多线程访问静态函数的问题,事实证 ... -
java Annotation入门
2009-04-16 21:22 1245因为偶然的原因需要使用Annotation,所以从网上找了这篇 ... -
MINA2.0简单使用
2009-04-12 16:12 5136一直知道MINA是apache 开发的一个开发socket编程 ... -
log4j参数配置说明
2009-03-22 20:31 2001前几天用到log4j,到网上查了一下他的参数配置,发现还是比较 ... -
portal之SSO开发文档
2009-03-02 20:12 4057前两天看到别人写的,感觉不错,就转了过来做为参考 ... -
cas在tomcat中的配置
2009-02-25 21:22 2830cas在tomcat上配置时,需要打开tomc ... -
SSO 原理浅谈
2009-02-25 19:41 2109SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从 ... -
ajax iframe 无刷新上传文件
2009-02-04 09:53 8671首先要说的就是 ajax 是无法实现上传文件的,可以想 ...
相关推荐
根据提供的文件信息,本文将详细解析如何在Spring与ibatis框架整合时,通过特定配置来保留ibatis事务处理机制,并实现对事务的自定义控制。文章将围绕标题、描述及部分代码片段展开讨论。 ### Spring与ibatis整合...
- 事务回滚(如`Spring实现iBATIS事务回滚.htm`):在Spring中,如果在事务范围内发生异常,Spring会自动回滚事务,保证数据一致性。 - 事务配置问题(如`spring&ibatis事务配置问题.htm`):整合过程中常见的问题...
本示例“spring+ibatis声明式事务Demo”将探讨如何在Spring与iBatis集成环境中使用声明式事务管理。声明式事务管理允许开发者通过配置来控制事务,无需在代码中显式处理事务开始、提交和回滚。 **Spring框架** 是一...
2. "Spring实现iBATIS事务回滚.htm" - 这篇文章很可能详细解释了如何在Spring框架中配置和使用iBATIS,特别是在出现异常时如何自动或手动回滚事务。 3. "Spring实现iBATIS事务回滚_files" - 这可能是一些相关的资源...
本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...
根据提供的文件信息,本文将详细解析Spring与iBatis整合时如何保留并使用iBatis事务管理机制,以及如何在应用程序中实现手动控制事务的方法。 ### Spring与iBatis整合 Spring框架是一个全面的企业级应用开发框架,...
当我们谈论"spring+ibatis声明式事务Demo"时,我们关注的是如何在Spring框架中利用iBatis实现声明式事务管理。 声明式事务管理是Spring框架提供的一种方便、高效的方式,使得开发者无需手动控制事务的开始、提交、...
6. **事务管理**:Spring提供了声明式事务管理,我们可以在方法上添加@Transactional注解,让Spring自动处理事务的开启、提交和回滚。 7. **使用Service和DAO**:在Spring的业务逻辑层Service中,通过@Autowired...
6. **事务管理**:Spring 提供了声明式事务管理,可以在配置文件中设置事务边界,由 Spring 自动处理事务的开启、提交、回滚等操作。在整合 iBATIS 时,通常会使用 Spring 的 PlatformTransactionManager 接口。 7....
本篇文章将详细讲解如何利用Spring+iBatis+JOTM来实现JTA事务。 首先,我们需要理解JTA的核心概念。JTA定义了一组接口和规范,允许应用程序在不同的事务边界之间进行协调,确保原子性和持久性。JOTM作为JTA的一个...
只需在需要事务的Service层方法上添加@Transactional注解,Spring会自动管理事务的开始、提交或回滚。 5. **高可用性和负载均衡**:在Spring中,可以使用Ribbon或Hystrix组件实现对MySQL集群的负载均衡。这些组件会...
使用 SpringBoot 注解方式处理事务回滚实现 在本文中,我们将介绍使用 SpringBoot 注解方式处理事务回滚实现的方法,并通过示例代码进行详细的讲解。本文对于学习 SpringBoot 的开发者或者工作中需要实现事务回滚的...
同时,Spring的事务管理确保了数据的一致性,比如在处理数据库操作时进行自动的回滚和提交。 **iBatis** 是一个持久层框架,它简化了SQL操作,将SQL语句与Java代码分离。在本demo中,iBatis可能会被用来执行员工...
由于配置了事务管理,当出现异常时,Spring会自动回滚事务。 ```java @Service public class UserService { @Autowired private UserMapper userMapper; @Transactional public void addUser(User user) {...
5. **事务管理**:Spring的PlatformTransactionManager接口负责处理事务,通过配置,可以将iBatis的数据库操作纳入Spring的事务管理范围。这样,当发生异常时,可以自动回滚事务,保证数据的一致性。 6. **DAO层...
同时,Spring的事务管理能力确保了对数据库操作的原子性和一致性,通过声明式事务管理,可以在XML配置文件中轻松设置事务边界,如开启、提交、回滚等操作。 Ibatis是轻量级的持久层框架,它简化了JDBC的繁琐工作,...
3. **事务控制**:通常在Service层使用@Transactional注解进行事务控制,Spring会自动管理事务的开启、提交和回滚。 4. **异常处理**:在Controller层捕获并处理可能抛出的异常,确保正常响应。 这些jar包的集合...
综上所述,Spring+iBatis的配置归类文档详细讲解了如何在Spring应用中集成和配置iBatis,包括JavaBean实体、映射文件、iBatis配置、DAO实现以及Spring的事务管理。通过这样的集成,开发人员可以利用Spring的高级特性...
4. 事务管理:Spring的TransactionManager负责事务的开启、提交、回滚等操作。 5. 编写Mapper XML文件:定义SQL语句和结果映射,与Mapper接口对应。 6. 使用注解或XML编写SQL:在Mapper接口的方法上使用@Select、@...
数据源配置确保了Spring能够连接到数据库,事务管理器则用于处理事务的提交和回滚,SqlSessionFactory是IBatis的核心,它创建SqlSession对象,用于执行SQL语句。 接着,我们需要创建MyBatis的Mapper接口和XML配置...