Spring 之八 整合Mybatis
2015-08-03 17:16
288 查看
1 加入jar包
mybatis-3.2.0.jarmybatis-spring-1.2.3.jar
2 在applicationContext.xml中配置
<!-- Spring集成MyBatis --> <!-- 1.数据源 tomcat.jdbc.pool.DataSource --> <!-- 导入资源文件 --> <bean id= "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > <property name="locations"> <list> <value>/WEB-INF/jdbc.properties</value> </list> </property> </bean> <!--配置数据源 --> <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> <property name="poolProperties"> <bean class="org.apache.tomcat.jdbc.pool.PoolProperties"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <!-- 数据库连接池配置 --> <!-- 初始化连接数量 --> <property name="initialSize" value="30"/> <!-- 最大连接数量 --> <property name="maxActive" value="300"/> <!-- 最小空闲连接数量 --> <property name="minIdle" value="30"/> <property name="removeAbandoned" value="true" /> <property name="removeAbandonedTimeout" value="600" /> <!-- 验证连接是否有效 --> <property name="validationQuery" value="select 1" /> <!-- 验证失败时,是否将连接从池中丢弃 --> <property name="testWhileIdle" value="true" /> <!-- 把空闲时间超过minEvictableIdleTimeMillis毫秒的连接断开,直到连接池中的连接数到minIdle为止(毫秒,30分钟) --> <property name="timeBetweenEvictionRunsMillis" value="3600000" /> <!-- 连接池中连接可空闲的时间(毫秒,5分钟) --> <property name="minEvictableIdleTimeMillis" value="18000000" /> <!-- 在每次空闲连接回收器线程(如果有)运行时检查的连接数量 --> <property name="numTestsPerEvictionRun" value="5" /> <property name="testOnBorrow" value="true" /> </bean> </property> </bean> <!-- 2.mybatis的SqlSession工厂:SqlSessionFactoryBean--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 配置mapper的位置--> <property name="mapperLocations"> <list> <value>classpath:com/ithings/mapper/*.xml</value> </list> </property> </bean> <!-- 3.sqlSession --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory"/> </bean> <!-- 4. mybatis 自动扫描加载Sql 映射文件 :MapperScannerConfigurer --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.ithings.dao;" /> <property name="sqlSessionTemplateBeanName" value="sqlSession"/> </bean>
注1:整合过程中出现的错误记录
1.报错:Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfig解决:两个jar包的版本过低
2.报错:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
解决:需要将mysql-connector-java-5.1.7-bin.jar放入tomcat/lib目录下
注2:加载数据库连接配置文件
方法一 context:property-placeholder<!-- 导入资源文件 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- or --> <context:property-placeholder location="/WEB-INF/jdbc.properties"/>
方法二:使用PropertyPlaceholderConfigurer
<!-- 一:直接引入资源文件 --> <bean id= "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" > <property name="locations"> <list> <value>/WEB-INF/jdbc.properties</value> </list> </property> </bean> <!--二:在代码中设置,如: System.setProperty("jdbc.driverClassName", "com.mysql.jdbc.Driver"); System.setProperty("jdbc.url", "jdbc:mysql://localhost:3306/test"); System.setProperty("jdbc.username", "root"); System.setProperty("jdbc.password", "123"); --> <bean id= "propertyConfigurer" class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
相关文章推荐
- 我为什么把think in java 读了10遍
- java中四种引用类型
- 给电脑插入安卓手机那么在eclipse的DDMS视图里的Devices没设备信息
- java中的引用类型概念
- java使用webscoket小李子
- Spring 使用注解方式进行事务管理
- 使用Myeclipse进行简单webservice开发的示例
- 个人的spring配置的简单记录
- 常见逻辑问题java代码实现
- Java学习笔记------如何为文本输入框设置下凹效果?
- SpringMVC学习笔记
- spring mvc 环境搭建
- Mac安装JDK
- java多线程(二) 多线程的同步
- 读Spring的源代码七:spring.handlers的加载过程
- 内存溢出--java.lang.OutOfMemoryError: PermGen space
- 重学java23种设计模式(10)外观模式
- java poi导出execl类
- 学习笔记——Java核心技术之接口、继承与多态练习题
- java this & super