部署DAO层
对前面实现的DAO组件的调用有两种方式实现:
一是通过SqlSession对象的getMapper()方法获取接口实例,代码如下:
try(
InputStream is=Resources.getRessourceAsStream("mybatis-config.xml");
){
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserDao userDao=sqlSession.getMapper(UserDao.class);
}catch(Exception e){
e.printStacktrace();
}
二是利用spring框架的依赖注入功能,实现对DAO组件的生成与管理。具体的步骤是:
1、添加数据源C3P0所需jar包,包含c3p0-0.9.5.2.jar、先添加整合Mybatis-Spring中间件jar包mybatis-spring-1.3.1.jar,hibernate-c3p0-5.2.10.Final.jar、mchange-commons-java-0.2.11.jar三个jar包。创建数据源文件db.properties:
dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://localhost:3306/hrm_db
dataSource.user=root
dataSource.password=root
dataSource.maxPoolSize=20
dataSource.maxIdleTime=2000
dataSource.minPoolSize=6
dataSource.initialPoolSize=5
2、整合Mybatis-Spring框架,添加mybatis-spring-1.3.1.jar包。
3、添加MySQL数据库驱动,WEB-INF/lib文件夹下添加jar包mysql-connector-java-5.1.41-bin
4、创建applicationContext.xml文件放在WEB-INF/lib路径下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-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/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
">
<!-- mybatis:scan会扫描org.fkit.hrm.dao包里的所有接口当做Spring的bean配置,之后可以进行依赖注入 -->
<mybatis:scan base-package="org.fkit.hrm.dao"/>
<!-- 扫描org.fkit.包下的java文件,若有Spring的相关注解的类,则把这些类注册为Spring的bean -->
<context:component-scan base-package="org.fkit.hrm"/>
<!-- 使用PropertyOverrideConfigurer后处理器加载数据源参数 -->
<context:property-override location="classpath:db.properties"/>
<!-- 配置c3po数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"/>
<!--配置SqlSessionFacctory,org.mybatis.spring.SqlSessionFactoryBean是Mybatis社区开发用于整合Sring的bean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:dataSource-ref="dataSource"/>
<!-- JDBC事务管理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource"/>
</beans>
这样就基本上算是对DAO组件部署完成了。