Integración de IBATIS con la gestión de transacciones declarativas de Spring
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
*/ p>
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>