spring和mybatis整合(三)
其他
2018-06-20 16:54:42
阅读次数: 2
一、方法:
1、导入jar包
2、配置数据信息
1)Spring加Mybatis的第一种整合方法
<!-- 描述数据源信息 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="0000"/> </bean> <!-- 描述会话工厂对象 --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:configuration.xml"/> <property name="mapperLocations"> <list> <value>com/entity/*.xml</value> </list> </property> </bean> <!-- 描述一个会话对象 --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"/> </bean> |
测试类
public static void main(String[] args) { ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml"); SqlSession session = (SqlSession)txt.getBean("sqlSession"); List<Type> list = session.getMapper(TypeMapper.class).findAll(); System.out.println(list.size()); } |
2)Spring加Mybatis的第二种整合方法
<!-- 描述数据源信息 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="0000"/> </bean> <!-- 描述会话工厂对象 --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:configuration.xml"/> <property name="mapperLocations"> <list> <value>com/entity/*.xml</value> </list> </property> </bean> <!-- 创建接口的实现类 --> <bean id="typeMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/> <property name="mapperInterface" value="com.mapper.TypeMapper"/> </bean> <!-- 描述service --> <bean id="typeService" class="com.service.TypeService"> <property name="typepMapper" ref="typeMapper"></property> </bean> |
测试类
public static void main(String[] args) { ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml"); TypeService typeService = txt.getBean(TypeService.class); System.out.println(typeService.findAll().size()); } |
3)Spring加Mybatis的第三种整合方法
<!-- 描述数据源信息 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="0000"/> </bean>
<!-- 描述会话工厂对象 --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:configuration.xml"/> <property name="mapperLocations"> <list> <value>com/entity/*.xml</value> </list> </property> </bean>
<!-- 为包下的所有接口创建对应的实现类对象 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.mapper"></property> </bean>
<bean id="typeService" class="com.service.TypeService"> <property name="typepMapper" ref="typeMapper"></property> </bean> |
测试类
public static void main(String[] args) { ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml"); TypeService ts = (TypeService)txt.getBean("typeService"); System.out.println(ts.findAll().size()); } |
二、spring 声明式事物
声明事物的配置文件
<!-- 描述数据源信息 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="0000"/> </bean> <!-- 描述会话工厂对象 --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:configuration.xml"/> <property name="mapperLocations"> <list> <value>com/entity/*.xml</value> </list> </property> </bean> <!-- 为包下的所有接口创建对应的实现类对象 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.mapper"></property> </bean> <bean id="typeService" class="com.service.TypeService"> <property name="typepMapper" ref="typeMapper"></property> </bean> <!-- 添加事物 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 定义一个通知 --> <tx:advice id="m1"> <tx:attributes> <tx:method name="add*"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* com.service.*.*(..))" id="txt1"/> <aop:advisor advice-ref="m1" pointcut-ref="txt1"/> </aop:config> |
测试类
public static void main(String[] args) { ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml"); TypeService ts = txt.getBean(TypeService.class); List<Type> list = new ArrayList<Type>(); Type t1 =new Type(); t1.setTname("哈哈"); list.add(t1); Type t2 =new Type(); t2.setTname("呵呵"); list.add(t2); Type t3 =new Type(); t3.setTname("嘿嘿"); list.add(t3); ts.addBatch(list); } |
注解式事物
<!-- 描述数据源信息 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="0000"/> </bean> <!-- 描述会话工厂对象 --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:configuration.xml"/> <property name="mapperLocations"> <list> <value>com/entity/*.xml</value> </list> </property> </bean> <!-- 为包下的所有接口创建对应的实现类对象 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.mapper"></property> </bean> <bean id="typeService" class="com.service.TypeService"> <property name="typepMapper" ref="typeMapper"></property> </bean> <!-- 添加事物 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- 加载声明驱动 --> <tx:annotation-driven/> <!-- 定义一个通知 --> <!-- <tx:advice id="m1"> <tx:attributes> <tx:method name="add*"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* com.service.*.*(..))" id="txt1"/> <aop:advisor advice-ref="m1" pointcut-ref="txt1"/> </aop:config> --> |
方法类中
public class TypeService { private TypeMapper typeMapper; public void setTypepMapper(TypeMapper typeMapper) { this.typeMapper = typeMapper; } public List<Type> findAll(){ return typeMapper.findAll(); } public int add(Type type){ return typeMapper.add(type); } @Transactional public void addBatch(List<Type> list){ for (int i = 0; i < list.size(); i++) { int row = add(list.get(i)); } } } |
转载自www.cnblogs.com/newbest/p/9204522.html