spring 配置文件:
<?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:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <context:property-placeholder location="classpath:config.properties" /> <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>${jdbc.driverClass}</value></property> <property name="url"><value>${jdbc.jdbcUrl}</value></property> <property name="username"><value>${jdbc.user}</value></property> <property name="password"><value>${jdbc.password}</value></property> </bean> <!-- SqlSessionFactory配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!--指定mybatis mapper xml路径--> <property name="mapperLocations" value="classpath*:com/app/config/mybatis/**/*Mapper.xml"/> <!--指定mybatis config xml路径--> <property name="configLocation" value="classpath:/mybatis-config.xml"></property> </bean> <!--Mapper对象,相当于DAO--> <bean name="testUserMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <!--它只是一个接口,具体的sql配在相应的TestUserMaper.xml中--> <property name="mapperInterface" value="com.app.test.dbt.mapper.TestUserMapper" /> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <!--server服务,事务加到这上面--> <bean name="TestUserService" class="com.app.test.dbt.service.TestUserService"> <property name="testUserMapper" ref="testUserMapper"/> </bean> <!--事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!--事务配置--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="insert*" propagation="REQUIRED" isolation="DEFAULT" /> <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT" /> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="TransactionPointCut" expression="execution(* com.app.test.dbt.service.*Service.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="TransactionPointCut" /> </aop:config> </beans>
mybatis config xml配置:
mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="defaultStatementTimeout" value="120"/> <!--禁用本地缓存--> <setting name="localCacheScope" value="STATEMENT"/> </settings> </configuration>
Mapper sql配置:
TestUserMapper.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.app.test.dbt.mapper.TestUserMapper"> <insert id="insertUser" parameterType="com.app.test.dbt.entity.TestUserModel"> INSERT INTO test_user (id, name) VALUES(#{id}, #{name}) </insert> <delete id="deleteUser" parameterType="int"> delete from test_user where id= #{id} </delete> <update id="updateName" timeout="20"> update test_user set name=#{param1} where id= #{param2} </update> </mapper>
Mapper 接口:
TestUserMapper.java
/** * 方法名与上面的(TestUserMapper.xml) id一至 * 上面的Namespace == java包名+类名 */ public interface TestUserMapper { public void insertUser(TestUserModel user); public void deleteUser(int userId); public int updateName(String name,int userId); }
service类:
public class TestUserService { TestUserMapper testUserMapper; public TestUserMapper getTestUserMapper() { return testUserMapper; } public void setTestUserMapper(TestUserMapper testUserMapper) { this.testUserMapper = testUserMapper; } public void insertUser(){ int initValue=1; int times = 10; for(int i=0;i<times;i++){ TestUserModel testUserModel = new TestUserModel(); byte id = (byte)(initValue+i); testUserModel.setId(id); testUserModel.setName("me"); this.testUserMapper.insertUser(testUserModel); } } }
测试类:
public static void main(String args []){ ClassPathXmlApplicationContext classPathXmlApplicationContextTransaction = new ClassPathXmlApplicationContext("classpath*:/test.xml"); TestUserService testUserService = (TestUserService) classPathXmlApplicationContextTransaction.getBean("TestUserService"); testUserService.insertUser(); }
相关推荐
2. **配置集成**:在Spring的配置文件中,需要添加MyBatis-Spring的相关配置,包括SqlSessionFactory和MapperScannerConfigurer,以便让Spring知道如何初始化和管理MyBatis的相关组件。 3. **Mapper接口**:创建...
这使得我们可以在Spring配置文件中声明式地管理MyBatis的相关组件,避免了手动创建和管理SqlSession对象的繁琐过程。 其次,MyBatis-Spring支持Spring的事务管理。它能够自动将MyBatis的操作纳入Spring的全局事务...
它负责配置 MyBatis 的配置文件、环境信息、数据源等,并为 Spring 容器提供一个可以托管的 SqlSessionFactory 实例。 3. **MapperScannerConfigurer**:这个类用于扫描指定包下的 Mapper 接口,并自动将其注册到 ...
在具体使用时,我们需要在Spring的配置文件中添加MyBatis-Spring的相关配置,包括数据源、SqlSessionFactory和MapperScannerConfigurer等。例如: ```xml <bean id="dataSource" class="org.springframework.jdbc....
在Spring配置文件中,我们需要定义一个`SqlSessionFactoryBean`,并指定数据源、MyBatis的配置文件路径等属性。例如: ```xml <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> ...
3. **MapperFactoryBean**:用于配置MyBatis的Mapper接口,使它们可以在Spring应用中被当作bean使用。 4. **SqlSessionTemplate** 和 **SqlSessionScpoe**:提供线程安全的SqlSession实例,避免并发问题。 5. **...
【MyBatis-Spring配置教程】是一份专为初学者设计的教程,旨在帮助学习者快速掌握如何在Spring框架中整合并使用MyBatis。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,而Spring则是一个...
它扩展了 Spring 的 FactoryBean 接口,可以直接在 Spring 配置文件中声明,通过配置数据源、MyBatis 的配置文件等参数,轻松创建 SqlSessionFactory。 2. SqlSessionTemplate:这是一个线程安全的 SqlSession 实现...
配置Spring的ApplicationContext时,需要添加Mybatis-Spring的相关bean,如SqlSessionFactoryBean和MapperScannerConfigurer。 3. **SqlSessionFactory配置** SqlSessionFactory是Mybatis的核心,负责创建...
### MyBatis-Spring 整合知识点 #### 第一章:介绍 1. **什么是MyBatis-Spring?** - MyBatis-Spring是一个帮助开发者无缝整合MyBatis与Spring框架的工具库。通过使用该库提供的类,Spring能够加载必要的MyBatis...
- Mybatis-Spring 提供了Spring Bean的配置方式,使得Mybatis的SqlSessionFactory和SqlSessionTemplate可以直接作为Spring的Bean注入到其他类中。 - 使用`<mybatis-spring:sqlSessionFactory>`和`<mybatis-spring:...
它允许你在 Spring 配置中设置 MyBatis 的配置文件、数据源以及其他相关属性,使得配置更加灵活。 2. **SqlSessionTemplate**: 它是线程安全的 SqlSession 实现,提供了与 MyBatis 的 SqlSession 接口相同的API,但...
通过这个库,我们可以方便地在 Spring 应用中配置 MyBatis 数据源、SqlSessionFactory、MapperScannerConfigurer 等,使得 MyBatis 与 Spring 的协作变得更加无缝。 "mybatis-3.4.1.pdf"文件很可能是一个 MyBatis ...
这个库使得在 Spring 应用中使用 MyBatis 更加便捷,通过简化配置和提供自动化事务管理,提高了开发效率。下面我们将深入探讨 MyBatis-Spring 的核心概念、功能以及 1.2.2 版本中的关键特性。 1. **集成 MyBatis 和...
1. **自动扫描与配置**:MyBatis-Spring 可以自动扫描并配置 SqlSessionFactory 或 SqlSessionTemplate,无需在 Spring 配置文件中手动配置,简化了项目配置。 2. **事务管理**:MyBatis-Spring 提供了基于 Spring ...
只需在Spring配置文件中声明PlatformTransactionManager,MyBatis的SqlSession将在Spring的事务范围内自动打开和关闭,实现事务的一致性。 5. 示例应用 在mybatis-spring-1.1.1包中,通常会包含示例代码或者文档,...
在Spring的配置文件中,设置PlatformTransactionManager为全局事务管理器,即可实现对MyBatis操作的事务控制。 五、性能优化 MyBatis-Spring支持Spring的AOP代理,可以通过代理方式实现SqlSession的关闭和异常处理...
SqlSessionFactoryBean提供了配置数据源、配置MyBatis的配置文件路径等能力,使得SqlSessionFactory的创建过程完全在Spring的控制之下。 2. **MapperScannerConfigurer**: 这个类用于扫描应用中的Mapper接口,并...
- 配置SqlSessionFactory:在Spring配置文件中定义SqlSessionFactoryBean,指定MyBatis的配置文件路径和数据源。 - 创建Mapper接口:根据MyBatis的XML映射文件创建对应的Mapper接口。 - 配置Mapper:使用...
1. **自动扫描和配置**:它能自动扫描并配置 MyBatis 的 SqlSessionFactory 或 SqlSessionTemplate,使得在 Spring 环境中无需手动配置。 2. **MapperScannerConfigurer**:这个类允许开发者通过扫描特定包来找到并...