spring和mybatis整合加载jdbc.properties异常
2013-12-14 19:18
501 查看
使用mybatis时,如果映射器比较多的时候,采用xml配置就比较低效,这时可以采用MapperScannerConfigurer扫描指定的包,进行配置。
版本:spring 3.2.4 +mybatis3.2.2
这里使用spring的<util:properties id="dataSourceProps"> 加载指定的jdbc.properties,因为是org.springframework.beans.factory.config.PropertyPlaceholderConfigurer加载属性比org.mybatis.spring.mapper.MapperScannerConfigurer慢
如果不使用<util:properties> 会抛出找不到${jdbc.class},找不到${jdbc.Url}等,也可以使用其他的方式,我没有试过
jdbc.properties
版本:spring 3.2.4 +mybatis3.2.2
package com.lzf; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; public interface Mapper { @Select("SELECT forum_id,forum_name, forum_desc FROM t_forum where id=#{userId}") t_forum getT_forums(@Param("userId") long userId); }配置文件 applicationcontext.xml
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <import resource="classpath:/mybatis.xml"/> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource" /> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource"> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.lzf"></property> </bean> </beans>jdbc数据库配置xml文件
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" 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:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"> <util:properties id="dataSourceProps" location="classpath:/config/jdbc.properties"/> <bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" > <property name="driver" value="#{dataSourceProps['jdbc.class']}"/> <property name="driverUrl" value="#{dataSourceProps['jdbc.url']}"/> <property name="user" value="#{dataSourceProps['jdbc.username']}"/> <property name="password" value="#{dataSourceProps['jdbc.password']}"/> <property name="verbose" value="#{dataSourceProps['jdbc.debug']}"/> <property name="trace" value="#{dataSourceProps['jdbc.debug']}"/> <property name="delegateProperties" value="user=#{dataSourceProps['jdbc.username']},password=#{dataSourceProps['jdbc.password']}"/> <property name="alias" value="#{dataSourceProps['proxool.alias']}"/> <property name="maximumConnectionCount" value="#{dataSourceProps['proxool.max.conn']}"/> <property name="minimumConnectionCount" value="#{dataSourceProps['proxool.min.conn']}"/> <property name="prototypeCount" value="#{dataSourceProps['proxool.prototype.count']}" /> </bean> </beans>
这里使用spring的<util:properties id="dataSourceProps"> 加载指定的jdbc.properties,因为是org.springframework.beans.factory.config.PropertyPlaceholderConfigurer加载属性比org.mybatis.spring.mapper.MapperScannerConfigurer慢
如果不使用<util:properties> 会抛出找不到${jdbc.class},找不到${jdbc.Url}等,也可以使用其他的方式,我没有试过
jdbc.properties
jdbc.class=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8 jdbc.username=root jdbc.password=root jdbc.debug=false proxool.alias=MAIN_POOL proxool.house.keeping.sleep.time=3000000 proxool.max.conn=30 proxool.min.conn=10 proxool.max.new.conn=20 proxool.max.conn.lifetime=30000 proxool.prototype.count=10测试
package com.lzf.test; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.lzf; import com.lzf.t_forum; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"/applicationContext.xml"}) public class test { @Autowired Mapper mapper; @Test public void mybaits() { t_forum tforum=mapper.getT_forums(1l); } }
相关文章推荐
- Spring+mybatis+maven整合过程加载配置文件jdbc.properties
- IDEA下Maven项目整合Spring和MyBatis出现jdbc.properties is invalid;前言中不允许有内容
- spring+mybatis+druid无法读取jdbc.properties属性导致datasource加载失败
- maven下 spring+springmvc+mybatis整合,映射文件加载异常
- 可以从Jar外部加载JDBC.properties的Spring-mybatis配置文件
- spring applicationcontext 加载 jdbc.properties异常
- 可以从Jar外部加载JDBC.properties的Spring-mybatis配置文件
- Spring整合Mybatis时遇到的异常Cannot find class: ${jdbc.driver}
- spring+mybatis整合时占位符无法读取jdbc.properties的问题
- Spring+Spring MVC+Mybatis整合配置AOP不生效的解决方案以及Bean初始化重复加载两次(疑难杂症)
- spring整合jdbc;使用properties文件获取mysql数据库连接参数
- Spring和Mybatis整合过程中遇到的Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required的异常
- Spring+mybatis+SpringMVC整合发生异常:org.springframework.beans.ConversionNotSupportedException
- Spring和Mybatis整合时无法读取properties的处理方案
- Spring SpringMvc 3.0 + MyBatis 整合--补充关于.properties文件的读取
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(七)JDBC url的连接参数
- 学习sharding-jdbc 之spring+mybatis+sharding-jdbc整合
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(七)JDBC url的连接参数
- JAVAWEB开发之mybatis详解(二)——高级映射、查询缓存、mybatis与Spring整合以及懒加载的配置和逆向工程
- SpringMVC和Mybatis (一)整合思路、整合dao、service、springmvc、加载spring