单独使用MyBaits步骤:创建SqlSessionFactory类,调用openSession方法创建出SqlSession会话对象出会话窗口
public class MyBatis {
//建造一个工厂
static SqlSessionFactory sessionFactory;
static {//获得配置文件
String r="com/tlm/config/mybatis-config.xml";
InputStream inputStream=null;
try {
inputStream= Resources.getResourceAsStream( r );
sessionFactory=new SqlSessionFactoryBuilder().build( inputStream );
} catch (IOException e) {
e.printStackTrace();
}
}
//创建SqlSession会话对象
public static SqlSession getSqlSession(){
return sessionFactory.openSession();
}
}
利用会话窗口结合反射的动态代理模式实现接口的动态代理对象,结合接口与映射文件完成持久层结构
public List<Student> getStudents() {
List<Student> list=null;
//得到Sqlsession
SqlSession sqlSession= MyBatis.getSqlSession();
try {// 反射的动态机制 给出一个代理接口对象
StudentDao studentDao=sqlSession.getMapper( StudentDao.class );
list=studentDao.getStudents();
}catch (Exception e){
e.printStackTrace();
}finally {
sqlSession.close();
}
return list;
}
整合使用,步骤:
1.导入相关jar包;
2.在Spring框架中配置MyBatis :
重点:整合框架用到的对象不是SqlSessionFactory而是用到SqlSessionFactoryBean
<!-- 步骤一:加载数据文件 自己配置的properties文件-->
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:config/jdbc.properties"/>
</bean>
<!-- 步骤二:加载dbcp连接池 -->
<bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<!-- 配置连接池信息 (一般可以不配,默认就够) -->
<!-- 连接池的属性配置:初始连接数,最大连接数,最大空闲数,最小空闲数,最大空闲时间 -->
<property name="initialSize" value="${initialSize}"/>
<property name="maxActive" value="${maxActive}"/>
<property name="maxIdle" value="${maxIdle}"/>
<property name="minIdle" value="${minIdle}"/>
<property name="maxWait" value="${maxWait}"/>
</bean>
<!-- 步骤三:将连接池配置MyBatis使用环境 SqlSessionBean-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载MyBatis资源 引用资源为ref-->
<property name="dataSource" ref="basicDataSource"/>
<!-- 配置MyBatis环境 (非必须) -->
<property name="configLocation" value="classpath:config/mybatis-config.xml"/>
<!-- 配置加载实体类 将对像存储在IOC容器中 -->
<property name="typeAliasesPackage" value="com.tlm.entity"/>
<!-- 配置映射文件 -->
<property name="mapperLocations" value="classpath*:com/tlm/dao/mapper/*.xml"/>
</bean>
<!-- 步骤四:使用映射将dao层接口进行动态实例化并把对象存储在容器当中 -->
<!-- -->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描接口并实例化对象 -->
<property name="basePackage" value="com.tlm.dao"/>
</bean>