Spring과 mybatis 통합
통합 아이디어
Spring은 싱글톤을 통해 SqlSessionFactory를 관리해야 합니다.
Spring과 myatis 통합은 프록시 개체를 생성하고 SqlSessionFactory를 사용하여 SqlSession을 생성합니다. (Spring과 mybatis의 통합은 자동으로 완료됩니다.)
Persistence 레이어의 Mapper와 dao는 관리를 위해 Spring이 필요합니다.
환경 통합 및 새로운 Java 프로젝트 생성(실제 개발 프로젝트 구조와 유사)
jar 패키지:
mybatis3.2.7 jar 패키지
spring 4.3.9 jar 패키지
mybatis 및 spring 통합 패키지: 초기 ibatis 및 spring 통합 공식 제공 봄에는 mybatis와 spring 통합이 mybatis에 의해 제공됩니다.
sqlSessionFactory
applicationContext.xml에서 sqlSessionFactory 구성
<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>
원래 dao 개발(spring과 통합 후)
mapper.xml
<!-- 加载映射文件 --> <mappers> <mapper resource="sqlmap/User.xml"/>
dao
public interface UserDao { //根据id查询用户信息 public User findUserById(int id)throws Exception;
dao 인터페이스 구현 클래스는 spring Inject를 통해 SqlsessionFactory를 주입해야 합니다.
여기서 spring은 구성 방법을 선언하고 dao bean을 구성합니다.
UserDaoImpl 구현 클래스가 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; } }
dao를 구성하세요
applicationContext.xml에서 dao를 구성하세요.
<!-- 原始dao接口 --> <bean id="userDao" class="cn.itcast.ssm.dao.UserDaoImpl"> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean>
테스트 실행
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); }
위 내용은 Java 개발에서 SSM 통합을 위한 Spring+mabatis의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!