Spring与MyBatis整合
来源:互联网 发布:真趣网络 蔡智 编辑:程序博客网 时间:2024/05/18 15:29
MyBatis框架主要是围绕着SqlSessionFactory这个类进行的
- 定义一个Configuration对象,其中包含数据源、事务、mapper文件资源以及影响数据库行为属性设置settings
- 通过配置对象,则可以创建一个SqlSessionFactoryBuilder对象
- 通过 SqlSessionFactoryBuilder 获得SqlSessionFactory 的实例。
- SqlSessionFactory 的实例可以获得操作数据的SqlSession实例,通过这个实例对数据库进行操作
配置文件beans.xml
<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!-- 声明式事务配置 开始 -->
<!-- 配置事务管理器 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务通知 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<!-- 配置哪些方法使用什么样的事务,配置事务的传播特性 -->
<tx:method name="add" propagation="REQUIRED"/>
<tx:method name="insert" propagation="REQUIRED"/>
<tx:method name="update" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
<tx:method name="remove*" propagation="REQUIRED"/>
<tx:method name="get" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* cn.sxt.dao.impl.*.*(..))" id="pointcut"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
<!-- 声明式事务配置 结束 -->
<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis.cfg.xml"/>
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<bean id="userDao" class="cn.sxt.dao.impl.UserDaoImpl">
<property name="sqlSession" ref="sqlSessionTemplate"/>
</bean>
myBatis配置文件
<?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>
<typeAliases>
<package name="cn.sxt.vo"/>
</typeAliases>
<mappers>
<mapper resource="cn/sxt/vo/user.mapper.xml"/>
</mappers>
</configuration>
声明式事务管理
使用mybatis-spring-1.2.3整合,在spring配置文件中,不需要管理sqlSessionTemplate,在Dao实现中,需要继承SqlSessionDaoSupport
<!-- 配置sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis.cfg.xml"/>
</bean>
<bean id="userDao" class="cn.sxt.dao.impl.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
public class UserDaoImpl extends SqlSessionDaoSupportimplements UserDao{
@Override
public List<User> selectUser() {
return this.getSqlSession().selectList("cn.sxt.vo.user.mapper.selectAll");
}
}
自动扫描配置包下的所有注释
<context:component-scan base-package="cn,sxt">
dao---@Repository("userDao")
service---@Service("userService")
action---@Controller("userAction")
属性的注入:@autowired
自动
- spring与mybatis整合
- 整合spring与myBatis
- mybatis 与 spring 整合
- mybatis与spring整合
- mybatis与spring整合
- mybatis与spring整合
- spring与mybatis整合
- spring与mybatis整合
- Spring与Mybatis整合
- Mybatis与Spring整合
- spring与mybatis整合
- mybatis与spring整合
- spring与mybatis整合
- Mybatis与Spring整合
- MyBatis与Spring整合
- Spring与MyBatis整合
- Spring与MyBatis整合
- mybatis与spring整合
- React Navigation--Stack Navigator Simple Example
- Android自定义弹框Dialog和Popupwindow的封装使用
- spark 的实现简介
- 怎么解决java.lang.NoClassDefFoundError错误
- TIMESTAMP
- Spring与MyBatis整合
- 以邻接矩阵存储的图类:深度优先
- 递归算法
- Vivado进行Generate Bitstream时报错 [Drc 23-20]
- 百宝云企业版
- sql 查出一张表中重复的所有记录数据
- iOS10.3起将支持动态更换app的icon图标
- QT 获取计算机当前cup 内存 等信息
- 在web.xml注册Servlet