Red de conocimiento informático - Aprendizaje de programación - Integración de IBATIS con la gestión de transacciones declarativas de Spring

Integración de IBATIS con la gestión de transacciones declarativas de Spring

Proporcionaré un ejemplo:

La base de datos es MYSQL, la fuente de datos es C3P0,

-----------

1 ) Sentencia de compilación de tabla:

DROP TABLE IF EXISTS libro;

CREAR TABLA libro(

id int(11) NOT NULL auto_increment COMMENT 'clave principal',

nombre varchar(60) default NULL COMENTARIO 'nombre del libro',

PRIMARY KEY (`id`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Mi lista de libros';

---------- ----------- -----

¡Atención!

2) Java Bean

Libro.java

-------------------

paquete com.p>

Libro de clase pública implementa Serializable {

Libro público(){}

Libro público(Nombre de cadena){

this.name = nombre;

}

/**

* ID

*/

ID entero privado

/**

* Nombre del libro

*/

nombre de cadena privada

// getter y setter

getId entero público (nombre de cadena){

this.p> getId entero público() {

ID de retorno;

}

setId público vacío (ID entero) {

this.id = id;

}

public String getName() {

devolver nombre

}

public void setName(nombre de cadena) {

this.name = nombre

}

}

------------ -- -----

3) Configuración de Book.xml

---------------------

lt;?xml version="1.0" encoding="UTF-8" ? gt;

lt;!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0 //ES"

".spring.demo.bean.Book"/gt;

l

t;!resultMap id="result_map_book" class="libro" gt;

lt; resultado propiedad="id" column="id" javaType="integer"/gt;

lt; propiedad resultado="nombre" columna="nombre" javaType="cadena"/gt;

lt;/resultMapgt

lt; ="libro" gt;

insertar valores de libro(nombre)(#nombre#)

lt;/insertgt;

lt;update id="updateBook " parámetroClass="libro"gt;

actualizar conjunto de libros nombre=#nombre# donde id=#id#

lt;/updategt;

lt; eliminar id="deleteBook" parámetroClass="int"gt; seleccione id="selectBookByName" parámetroClass="string" resultMap="result_map_book"gt;

seleccione id, nombre del libro donde el nombre es como #valor#

lt;/selectgt;

lt;/sqlMapgt;

------------------- --

4) applicationContext de Spring.

---------------

lt;?xml version=" 1.0" encoding="UTF-8"? gt;

lt;!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN 2.0//EN" ".mchange.v2.c3p0.ComboPooledDataSource"gt;

lt;;property name=" driverClass"gt;lt;valuegt;${jdbc.driverClass}lt;/valuegt;lt;/propertygt;

lt;property name= "jdbcUrl"gt;lt;valuegt;${jdbc.url}lt;/valuegt;lt;/propertygt;

lt;property name="user"gt;lt;valuegt;${jdbc. usuario}lt;/valuegt;lt;/propertygt )

lt;property name="contraseña"gt;lt;valuegt;${jdbc.password}lt;/valuegt;lt;/propertygt;

lt;nombre de propiedad="initialPoolSize"gt;lt;valuegt;${jdbc.initialPoolSize}lt;/valuegt;lt;/p

ropertygt;

lt;nombre de propiedad="minPoolSize"gt; lt;valuegt;${jdbc.minPoolSize}lt;/valuegt;lt;/propertygt;

lt;nombre de propiedad ="maxPoolSize"gt;lt;valuegt;${jdbc!

lt; nombre de propiedad="dataSource"gt

lt; ref local="dataSource"/gt

lt;/propertygt; >

lt;/beangt;

lt;! -- Configuración del interceptor de proxy de transacciones --gt;

lt; bean id="baseTransactionProxy" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"gt;

lt;property name="transactionManager"gt;

lt;ref bean="transactionManager" /gt;

lt;/propertygt;

lt ;nombre de propiedad="transactionAttributes"gt;

lt;propsgt;

lt;prop key="insert*"gt.PROPAGATION_REQUIREDlt;/propgt;

lt;prop key="update*"gt;PROPAGATION_REQUIREDlt;/propgt;

lt;prop key="delete*"gt.PROPAGATION_REQUIREDlt;/propgt;

lt;prop key ="*"gt;PROPAGATION_REQUIRED,readOnlylt;/propgt;

lt;/propertiesgt;

lt;/propsgt;

lt;/propertygt; /p>

lt;/beangt;

lt;! -- configuración de ibatis sqlMapClient --gt;

lt; bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"gt; ="configLocation"gt;

lt;valuegt;classpath:sqlMapConfig.xmllt;/valuegt;

lt;/propertygt;

lt;/propertygt;

lt; nombre de propiedad="dataSource"gt

lt; ref bean="dataSource"/gt

lt;/propertygt; >

lt;/beangt;

>

lt;! -- configuración de dao --gt;

lt; bean id="ibatis_BookDao" class="com.spring.demo.dao.Ibatis_BookDao"gt

lt; "sqlMapClient" gt;

lt;ref bean="sqlMapClient"/gt;

lt;/propertygt;

lt;/beangt;

lt;! -- Clase de gestión agregada para transacciones--gt;

lt; bean id="ibatis_BookManager" parent="baseTransactionProxy"gt

lt;

lt;bean class="com.spring.demo.manager.Ibatis_BookManager" parent="baseTransactionProxy"gt;

lt;property name="target"gt;

p>