当前位置: 代码迷 >> J2EE >> spring事务如何用
  详细解决方案

spring事务如何用

热度:206   发布时间:2016-04-22 02:45:23.0
spring事务怎么用
使用spring事务的时候遇到一个莫名其妙的问题
Java code
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Test1 {    public void test() {        System.out.println("test1");        ApplicationContext ctx =                 new ClassPathXmlApplicationContext("bean.xml");//到这里就不能继续运行了        System.out.println(ctx);        Transaction ts = (Transaction)ctx.getBean("tsa");        System.out.println("test");        ts.insert("insert into user (id,name,password,age) value(10,'sadasd','12312313',11)");            }}

输出结果是:test1
这是什么原因,bean.xml在src目录中
bean.xml
XML code
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"    xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans.xsd    http://www.springframework.org/schema/tx    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd    http://www.springframework.org/schema/aop    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><bean id="dataSource" class="org.springframework.jdbc.datasource" destroy-method="close">    <property name="driverClass" value="com.mysql.jdbc.Driver"></property>    <property name="jdbcUrl" value="jdbc:mysql://localhost/javaee"></property>    <property name="user" value="root"></property>    <property name="password" value="root"></property>    <property name="maxPoolSize" value="40"></property>    <property name="minPoolSize" value="1"></property>    <property name="initialPoolSize" value="1"></property>    <property name="maxIdleTime" value="20"></property></bean><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">    <property name="dataSource" ref="dataSource"></property></bean><bean id="tsa" class="com.daisy.dao.Transaction">    <property name="ds" value="dataSource"></property></bean><tx:advice id="txAdvice" transaction-manager="transactionManager">    <tx:attributes>        <tx:method name="*" propagation="REQUIRED" />    </tx:attributes></tx:advice><aop:config>    <aop:pointcut expression="* com.daisy.dao.Transaction.*(..)" id="daoCut"/>    <aop:advisor advice-ref="txAdvice" pointcut-ref="daoCut"/></aop:config></beans>



Transaction.java
Java code
import org.apache.tomcat.jdbc.pool.DataSource;import org.springframework.jdbc.core.JdbcTemplate;public class Transaction {    private DataSource ds;    public DataSource getDs() {        return ds;    }    public void setDs(DataSource ds) {        this.ds = ds;    }    public void insert(String sql){        JdbcTemplate jt = new JdbcTemplate(ds);        jt.execute(sql);        System.out.println(sql);        //jt.execute(sql);    }}
  相关解决方案