mybatis集成spring:
事务自动提交。
步骤:
1、新建maven项目。
2、加入依赖
1、spring
2、mybatis
3、mysql
4、spring事务的依赖
5、mybatis和spring集成的依赖,mybaits官方体用的
用来在spring项目中创建mybatis的sqlsessionfactory和dao对象
3、创建实体类
4、创建dao接口和mapper 文件
5、创建mybatis的主配置文件
6、创建Service接口和实现类,属性是dao
7、创建spring的配置文件:声明mybatis的对象交给spring创建
1、数据源
2、sqlsessionfactory
3、dao对象
4、声明自定义的service
8、创建测试类,获取service对象,通过service调用dao对象完成数据库的访问
Maven依赖:
<dependencies>
<!-- 单元测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- Spring核心 ioc依赖-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- 做spring事务-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- aspectJ依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- mybatis和spring集成的依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--把数据库的配置信息写在一个独立的文件中 便于修改-->
<!-- 让spring知道文件位置-->
<context:property-placeholder location="jdbc.properties"></context:property-placeholder>
<!-- 声明数据源DataSource 作用是连接数据库-->
<bean id="myDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<!-- 连接数据库信息-->
<!-- set注入-->
<!-- 使用属性配置文件中的位置 语法 ${属性名}-->
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.name}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="maxActive" value="${jdbc.max}"></property>
</bean>
<!--<!– 声明的是mybatis中sqlsessionfactorybean类 这个类内部创建Sqlsessionfactory-->
<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- set注入 数据库连接池-->
<property name="dataSource" ref="myDataSource"></property>
<!-- mybatis主配置文件的位置 -->
<!-- configLocation属性是resource类型 读取配置文件
他的赋值 使用value 指定文件的路径 使用classpath:-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<!-- 创建dao对象 使用sqlsession的getmapper-->
<!-- 在内部调用getmapper() 生成每个dao接口的对象-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定sqlsessionfactory对象的id-->
<property name="sqlSessionFactoryBeanName" value="SqlSessionFactory"></property>
<!-- 指定包名,dao接口所在的包名-->
<!-- MapperScannerConfigurer扫描包中的所有接口。把每个接口都执行一次getmapper方法 得到dao对象-->
<!-- 创建好的spring对象放入到spring的容器 dao对象的默认名称 接口首字母小写-->
<property name="basePackage" value="dao"></property>
</bean>
<!-- 声明service对象-->
<bean id="studentService" class="impl.StudentServiceImpl">
<property name="studentdao" ref="studentDao"></property>
</bean>
</beans>