Maison  >  Article  >  Java  >  Spring+mabatis pour l'intégration SSM dans le développement Java

Spring+mabatis pour l'intégration SSM dans le développement Java

无忌哥哥
无忌哥哥original
2018-07-23 10:35:281736parcourir

Intégration Spring et mybatis

Idées d'intégration
Spring doit gérer SqlSessionFactory via un singleton.
L'intégration Spring et myatis génère des objets proxy et utilise SqlSessionFactory pour créer SqlSession. (L'intégration de spring et mybatis se termine automatiquement)
Le mapper et le dao de la couche de persistance nécessitent spring pour la gestion.
Intégrez l'environnement et créez un nouveau projet Java (proche de la structure actuelle du projet de développement)
Package jar :
Package jar de mybatis3.2.7
Package jar du printemps 4.3.9
mybatis et package d'intégration Spring : l'intégration précoce d'ibatis et spring est officiellement assurée par spring, et l'intégration de mybatis et spring est assurée par mybatis.

sqlSessionFactory

Configurer sqlSessionFactory dans applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
	
	<!-- 加载配置文件 -->
	<context:property-placeholder location="classpath:db.properties" />
	
	<!-- 数据源,使用dbcp -->        
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"   destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}"/>
		<property name="url" value="${jdbc.url}"/><!-- jdbc:mysql://localhost:3306/test?characterEncoding=utf8 -->
		<property name="username" value="${jdbc.username}"/>
		<property name="password" value="${jdbc.password}"/>
		<property name="maxActive" value="10"/>
		<property name="maxIdle" value="5"/>
	</bean>

	<!-- sqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 加载mybatis的配置文件 -->

		<property name="configLocation" value="mybatis/SqlMapConfig.xml"/>
		<!-- 数据源 -->
		<property name="dataSource" ref="dataSource"></property>
		
	</bean>
	<!-- 原始dao接口 -->
 	<bean id="userDao" class="cn.itcast.ssm.dao.UserDaoImpl">
		<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
	</bean> 

</beans>

Développement dao original (après intégration avec Spring)

mapper.xml

 <!-- 加载映射文件 -->
 <mappers>
 <mapper resource="sqlmap/User.xml"/>

dao

public interface UserDao {

	//根据id查询用户信息
	public User findUserById(int id)throws Exception;	

la classe d'implémentation d'interface dao doit être injectée dans SqlsessionFactory, qui est injectée jusqu'au printemps.

Ici, spring déclare la méthode de configuration et configure les beans dao.

Laissez la classe d'implémentation UserDaoImpl hériter de la classe SqlSessionDaoSupport

	public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{

        @Override
	public User findUserById(int id) throws Exception {
		//继承SqlSessionDaoSupport ,通过this.getSqlSession()得到sqlSession
		SqlSession sqlSession = this.getSqlSession();
		User user = sqlSession.selectOne("test.findUserById", id);
		//释放资源
		//sqlSession.close();
		return user;
	}
        }

Configurer dao

Configurer dao dans applicationContext.xml.

	<!-- 原始dao接口 -->
 	<bean id="userDao" class="cn.itcast.ssm.dao.UserDaoImpl">
		<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
	</bean>

Faire le test

public class UserDaoImplTest {
	
	private ApplicationContext applicationContext;
	//在setUp这个方法中得到spring容器
	@Before
	public void setUp()throws Exception{
		applicationContext=new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
		
	}
	
	@Test
	public void testFindUserById() throws Exception {
		UserDao userDao=(UserDao) applicationContext.getBean("userDao");
//		//调用userDao的方法
		User user=userDao.findUserById(1);
		System.out.println(user);
	}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn