1.所需要导入的jar文件
!--MyBatis和Spring的整合包 由MyBatis提供--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency> <!--MyBatis的核心jar文件--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency>
2.MyBatis和Spring整合(xml版)
2.1创建Dao层接口
public interface AccountDao { //查询所有账户 public List<Account> getAllAccount(); }
2.2创建Dao层接口小配置文件
<!--namespace需要指向接口全路径--> <mapper namespace="cn.spring.dao.AccountDao"> <select id="getAllAccount" resultType="cn.spring.entity.Account"> select * from accounts </select> </mapper>
2.3创建Service层接口
public interface AccountService { //查询所有账户 public List<Account> getAllAccount(); }
2.4创建Service层接口实现类
public class AccountServiceImpl implements AccountService { AccountDao accountDao; @Override public List<Account> getAllAccount() { return accountDao.getAllAccount(); } public AccountDao getAccountDao() { return accountDao; } public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } }
2.5 配置applicationContext.xml文件
<context:component-scan base-package="cn.spring"/> <!-- 导入jdbc.properties文件--> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"></property> </bean> <!--配置数据源 spring内置的数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!--配置mybatis的核心对象sqlsessionfactorybean--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="typeAliasesPackage" value="cn.spring.entity"></property> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!--MyBatis的Dao接口的包扫描器--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.spring.dao"></property> </bean> <!--将Service实现类对象声明到Spring容器中 隐式注入--> <bean id="accountService" class="cn.spring.service.impl.AccountServiceImpl" autowire="byType"></bean>
2.6编写测试类
@Test public void getAll(){ ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); AccountService accountService = (AccountService)context.getBean("accountService"); List<Account> allAccount = accountService.getAllAccount(); for (Account account:allAccount){ System.out.println(account.getAccountid()); } }
3.MyBatis和Spring整合(注解版)
3.1创建Dao层接口
@Repository public interface AccountDao { //查询所有账户 public List<Account> getAllAccount(); }
3.2同上2.2
3.3同上2.3
3.4创建Service层接口实现类
@Service("accountService") public class AccountServiceImpl implements AccountService { @Autowired AccountDao accountDao; @Override public List<Account> getAllAccount() { return accountDao.getAllAccount(); } public AccountDao getAccountDao() { return accountDao; } public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } }
3.5编写applicationContext.xml文件
<context:component-scan base-package="cn.spring"/> <!-- 导入jdbc.properties文件--> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"></property> </bean> <!--配置数据源 spring内置的数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <!--配置mybatis的核心对象sqlsessionfactorybean--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="typeAliasesPackage" value="cn.spring.entity"></property> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean> <!--MyBatis的Dao接口的包扫描器--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="cn.spring.dao"></property> </bean>
3.6编写测试类
@Test public void getAll(){ ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); AccountService accountService = (AccountService)context.getBean("accountService"); List<Account> allAccount = accountService.getAllAccount(); for (Account account:allAccount){ System.out.println(account.getAccountid()); } }