Sobre la base de la integración de MapperFactoryBean
MapperFactoryBean mybatis-resorte se proporciona por una generación interfaz de equipo según la clase de objeto Mapper Mapper, la clase puede ser configurado utilizando los siguientes parámetros archivo de configuración de primavera:
MapperInterface: especifica la interfaz
SqlSessionFactory: sirve para especificar SqlSessionFactory
SqlSessionFactory: sirve para especificar sqlSessionTemplate, si se utiliza en conjunción con SqlSessionFactory, sólo entonces comenzar SqlSessionFactory
Código de ejemplo:
CustomerMapper código de la interfaz:
com.bdqn.cn.dao empaquetar;
com.bdqn.cn.pojo.Customer importación;
CustomerMapper interfaz pública {
// consulta por id de usuario
findCustomerById pública del cliente (entero id);
}
CustomerMapper.xml código fichero de configuración:
<? Xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE asignador PÚBLICA "- // ibatis.apache.org//DTD Mapper 3.0 // EN"
"Http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<Asignador de espacio de nombres = "com.bdqn.cn.dao.CustomerMapper">
<Select id = "findCustomerById" parameterType = "entero" resultType = "cliente">
seleccionar * de atención al cliente donde id = # {id}
</ Select>
</ Mapeador>
applicationContext.xml perfil:
<! - la introducción del perfil de origen de datos externo ->
<Context: ubicación de la propiedad-marcador de posición = "db.properties" />
<! - 1, la fuente de datos de configuración ->
<Bean id = "dataSource"
class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<! -
Con bases de datos
$ {Conductor}: $ {} indica un efecto expresión EL: el acceso directo a los datos
->
<Property name = "driverClassName" value = "$ {} piloto" />
<! - enlace a la URL de base de datos ->
<Property name = "url" value = "$ {url}" />
<! - nombre de usuario enlace a la base de datos ->
<Property name = "nombre de usuario" value = "$ {usuario}" />
<! - Contraseña vincular la base de datos ->
<Property name = "contraseña" value = "$ {password}" />
</ Bean>
<! - Configurar el administrador de transacciones, dependiendo de la fuente de datos ->
<Bean id = "transactionManager"
class = "org.springframework.jdbc.datasource.DataSourceTransactionManager">
<Property name = "dataSource" ref = "origen de datos" />
</ Bean>
<! - comentario transacción abierta ->
<Tx: anotación impulsada transacción-manager = "transactionManager" />
<! - Configurar mybatis planta ->
<Bean id = clase "SqlSessionFactory" = "org.mybatis.spring.SqlSessionFactoryBean">
<! - la inyección de origen de datos ->
<Property name = "dataSource" ref = "origen de datos" />
<! - Especifica el perfil de la base ->
<Nombre de propiedad = valor "configLocation" = "ruta de clases: SqlMapConfig.xml" />
</ Bean>
<! - Mapper Agente de Desarrollo ->
<Bean id = clase "customerMapper" = "org.mybatis.spring.mapper.MapperFactoryBean">
<Nombre de propiedad = valor "mapperInterface" = "com.bdqn.cn.dao.CustomerMapper" />
<Property name = "SqlSessionFactory" ref = "SqlSessionFactory" />
</ Bean>
Mybatis código fichero de configuración:
<Configuration>
<! - Tipo alias ->
<TypeAliases>
<Nombre del paquete = "com.bdqn.cn.pojo" />
</ TypeAliases>
<Mappers>
<Asignador de recursos = "com / bdqn / cn / DAO / CustomerMapper.xml" />
</ Mappers>
</ Configuration>
Código de clase de prueba:
@Prueba
método public void () {
ApplicationContext aplicación = nuevo ClassPathXmlApplicationContext ( "applicationContext.xml");
CustomerMapper cd = (CustomerMapper) app.getBean (CustomerMapper.class);
Cliente findCustomerById = cd.findCustomerById (1);
System.out.println (findCustomerById);
}
Sobre la base de la integración de MapperScannerConfigurer
CustomerMapper Interfaz:
com.bdqn.cn.dao empaquetar;
com.bdqn.cn.pojo.Customer importación;
CustomerMapper interfaz pública {
// consulta por id de usuario
findCustomerById pública del cliente (entero id);
// add usuarios
AddCustomer public void (Customercustomer);
}
CustomerMapper.xml código del archivo:
<? Xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE asignador PÚBLICA "- // ibatis.apache.org//DTD Mapper 3.0 // EN"
"Http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<Asignador de espacio de nombres = "com.bdqn.cn.dao.CustomerMapper">
<Select id = "findCustomerById" parameterType = "entero" resultType = "cliente">
seleccionar * de atención al cliente donde id = # {id}
</ Select>
<Inserto id = "AddCustomer" parameterType = "cliente">
inserción en Cliente (nombre de usuario, puestos de trabajo, teléfono) Valores (# {username}, {#} puestos de trabajo, teléfono # {})
</ Insert>
</ Mapeador>
CustomerServiceImpl códigos de clase de aplicación:
com.bdqn.cn.service empaquetar;
org.springframework.beans.factory.annotation.Autowired importación;
org.springframework.stereotype.Service importación;
org.springframework.transaction.annotation.Transactional importación;
com.bdqn.cn.dao.CustomerMapper importación;
com.bdqn.cn.pojo.Customer importación;
@Servicio
@Transactional
clase pública implementa CustomerServiceImpl CustomerService {
@Autowired
customerMapper CustomerMapper privado;
@Anular
AddCustomer pública vacío (Customercustomer) {
// generada-Auto TODO Stub
this.customerMapper.addCustomer (cliente);
// int i = 1/0;
}
}
applicationContext.xml Código:
<! - la introducción del perfil de origen de datos externo ->
<Context: ubicación de la propiedad-marcador de posición = "db.properties" />
<! - 1, la fuente de datos de configuración ->
<Bean id = "dataSource"
class = "org.springframework.jdbc.datasource.DriverManagerDataSource">
<! -
Con bases de datos
$ {Conductor}: $ {} indica un efecto expresión EL: el acceso directo a los datos
->
<Property name = "driverClassName" value = "$ {} piloto" />
<! - enlace a la URL de base de datos ->
<Property name = "url" value = "$ {url}" />
<! - nombre de usuario enlace a la base de datos ->
<Property name = "nombre de usuario" value = "$ {usuario}" />
<! - Contraseña vincular la base de datos ->
<Property name = "contraseña" value = "$ {password}" />
</ Bean>
<! - Configurar el administrador de transacciones, dependiendo de la fuente de datos ->
<Bean id = "transactionManager"
class = "org.springframework.jdbc.datasource.DataSourceTransactionManager">
<Property name = "dataSource" ref = "origen de datos" />
</ Bean>
<! - comentario transacción abierta ->
<Tx: anotación impulsada transacción-manager = "transactionManager" />
<! - Configurar mybatis planta ->
<Bean id = clase "SqlSessionFactory" = "org.mybatis.spring.SqlSessionFactoryBean">
<! - la inyección de origen de datos ->
<Property name = "dataSource" ref = "origen de datos" />
<! - Especifica el perfil de la base ->
<Nombre de propiedad = valor "configLocation" = "ruta de clases: SqlMapConfig.xml" />
</ Bean>
<! - Mapper Agente de Desarrollo (basado MapperScannerConfigurer) ->
<Clase bean = "org.mybatis.spring.mapper.MapperScannerConfigurer">
<Nombre de propiedad = valor "basePackage" = "com.bdqn.cn.dao" />
</ Bean>
<Context: componente-scan base paquete = "com.bdqn.cn.service" />
categorías de prueba:
@Prueba
método public void () {
ApplicationContext aplicación = nuevo ClassPathXmlApplicationContext ( "applicationContext.xml");
CustomerService cd = (CustomerService) app.getBean (CustomerService.class);
Customercustomer = new Cliente ();
customer.setUsername ( "Chao 2");
customer.setJobs ( "运 维");
customer.setPhone ( "1234567890");
cd.addCustomer (cliente);
System.out.println ( "aumentar el éxito!");
}