MyBatis和Spring的整合
MyBatis和Spring整合(XML版)
所需要导入的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>
创建实体类
public class Bank implements Serializable { private int accountid; private String accountname; private double balance; public Integer getAccountid() { return accountid; } public void setAccountid(Integer accountid) { this.accountid = accountid; } public String getAccountname() { return accountname; } public void setAccountname(String accountname) { this.accountname = accountname; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } }
Dao层接口
public interface IBankDao { public List<Bank> getAllBank(); }
小配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--小配置根节点 namespace代表命名空间--> <mapper namespace="com.spring.dao.IBankDao"> <select id="getAllBank" resultType="Bank"> select * from banks </select> </mapper>
Service层接口
public interface IBankService { public List<Bank> getAllBank(); }
Service层实现类
public class IBankServiceImpl implements IBankService { private IBankDao iBankDao; @Override public List<Bank> getAllBank() { return iBankDao.getAllBank(); }
public IBankDao getiBankDao() {
return iBankDao;
}
public void setiBankDao(IBankDao iBankDao) {
this.iBankDao = iBankDao;
}
}
创建mybatis-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--配置别名--> <typeAliases> <package name="com.spring.entity"/> </typeAliases> <!--加载小配置文件--> <mappers> <package name="com.spring.dao"/> </mappers> </configuration>
创建jdbc.properties文件
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/banks?useUniCode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=123
创建applicationContext.xml文件
<!--加载配置文件--> <context:property-placeholder location="classpath:jdbc.properties"/> <!--配置数据源--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!--配置SqlSessionFactoryBean--> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--加载Mybatis配置文件--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!--扫描Dao层,省略代码--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.spring.dao"/> </bean> <!--注入Dao层--> <bean id="iBankDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.spring.dao.IBankDao"/> <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/> </bean> <!--Service层--> <bean id="iBankService" class="com.spring.service.impl.IBankServiceImpl"> <property name="iBankDao" ref="iBankDao"/> </bean>
测试类
public class SpringMybaitsTest { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); IBankService iBankService = (IBankService)ctx.getBean("iBankService"); List<Bank> allBank = iBankService.getAllBank(); for(Bank bank:allBank){ System.out.println(bank.getAccountname()); } } }
MyBatis和Spring整合(注解版)
修改applicationContext.xml文件
<!--扫描注解--> <context:component-scan base-package="com.spring"/> <!--加载配置文件--> <context:property-placeholder location="classpath:jdbc.properties"/> <!--配置数据源--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!--配置SqlSessionFactoryBean--> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--加载Mybatis配置文件--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean> <!--扫描Dao层,省略代码--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.spring.dao"/> </bean>
Dao层接口添加注解
@Repository public interface IBankDao { public List<Bank> getAllBank(); }
Service层实现类添加注解
@Service("iBankService") public class IBankServiceImpl implements IBankService { @Resource private IBankDao iBankDao; @Override public List<Bank> getAllBank() { return iBankDao.getAllBank(); } }