请教Mybatis和Spring结合的配置问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教Mybatis和Spring结合的配置问题相关的知识,希望对你有一定的参考价值。

参考技术A <?xml version="1.0" encoding="utf-8"?>
<beans 
...>
    <!-- 定义DBCP数据源 
-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property 
name="driverClassName" 
value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
        <property name="username" value="数据库用户名" />
        <property 
name="password" value="数据库密码" />
    </bean>

    <!-- 
定义SqlSessionFactory bean -->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <property 
name="dataSource" ref="dataSource" />
        <!-- 指定Mapper XML映射文件(多个逗号分开) 
-->
        <property name="mapperLocations" value="classpath:com/local/zk/mapper/*Mapper.xml" />
        <!-- 给指定类起默认别名(多个逗号分开) 
-->
        <property name="typeAliases" value="com.local.zk.entity.Student" />
        <!-- 给指定包下所有类起默认别名(多个逗号分开) 
-->
        <property name="typeAliasesPackage" value="com.local.zk.entity" />
        <!-- 指定MyBatis配置文件(也可以不指定) 
-->
        <property name="configLocation" value="WEB-INF/mybatisconfig.xml" />
    </bean>

    <!-- 
扫描指定包下接口,生成代理类定义成bean,id为接口名首字母小写 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property 
name="basePackage" value="com.local.zk.mapper" />
    </bean>
</beans>

两个配置文件都写在spring配置文件里

参考技术B 项目中用的是spring3.0.5,MyBatis3.0.5,整合mybatis,spring用的是mybatis-spring-.1.0.1。在这个过程中,遇到了一个配置上的问题,就是配置Mapper时的错误,在运行时抛出如下异常: Exception in thread "main" java.lang.IllegalArgumentExce...

mybatis学习笔记一mybatis结合spring配置

这两天,开始学习mybatis,有点感觉,分享一下,在这里要感谢一号门博客  链接:http://www.yihaomen.com/article/java/426.htm

首先项目示例图给大家看一下:

技术分享

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:aop="http://www.springframework.org/schema/aop" 
    xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="  
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd  
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"  
            default-autowire="byName" default-lazy-init="false"> 
    
	<!-- 自动扫描web包 ,将带有注解的类 纳入spring容器管理 -->
	<context:component-scan base-package="com.yihaomen"></context:component-scan>
	<!-- 引入jdbc配置文件 -->
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
			<value>classpath:config/jdbc.properties</value>
			</list>
		</property>
	</bean>
	
	<!-- 配置数据源 one-->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="${jdbc.driver}">
		</property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
         <!-- 	initialSize: 初始化连接 -->
		<property name="initialSize" value="5" />
         <!-- 	maxIdle: 最大空闲连接 -->
		<property name="maxIdle" value="10" />
		<property name="minIdle" value="5" />
		<property name="maxActive" value="15" />
		<property name="removeAbandoned" value="true" />
		<property name="removeAbandonedTimeout" value="180" />
        <!-- maxWait: 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
		<property name="maxWait" value="3000" />
		<property name="validationQuery">
			<value>SELECT 1</value>
		</property>
		<property name="testOnBorrow">
			<value>true</value>
		</property>
	</bean>
	
  <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	  <property name="dataSource" ref="dataSource" />
 </bean>
 
  <bean id="sqlSessionFactoryBeanName" class="org.mybatis.spring.SqlSessionFactoryBean"> 
     <!--dataSource属性指定要用到的连接池--> 
     <property name="dataSource" ref="dataSource"/> 
     <!--configLocation属性指定mybatis的核心配置文件--> 
     <property name="configLocation" value="classpath:config/Configuration.xml" /> 
     <!-- 所有配置的mapper文件 -->
     <property name="mapperLocations" value="classpath*:com/yihaomen/mapper/*.xml" />
  </bean> 
  
  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	 <property name="basePackage" value="com.yihaomen.inter" />	 
  </bean>
  
</beans> 


jdbc.properties(数据库配置信息):

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

Configuration.xml(主要减少减少类名的长度来设置的,后面会介绍
<configuration>
    <typeAliases> 
        <typeAlias alias="User" type="com.yihaomen.model.User"/>
    </typeAliases> 
</configuration>

log4j.properties(日志配置)

log4j.rootCategory=info, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:/my_log.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout 













以上是关于请教Mybatis和Spring结合的配置问题的主要内容,如果未能解决你的问题,请参考以下文章

请教mybatis+spring+atomikos的整合问题

mybatis怎么和spring结合

MyBatis 与 Spring 是如何结合在一起工作的——mybatis-spring(version:1.2.2)

mybatis学习笔记一mybatis结合spring配置

Spring/Maven/MyBatis配置文件结合properties文件使用

mybatis学习笔记一mybatis结合spring mvc配置