`
LiYunpeng
  • 浏览: 938145 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Spring3+MyBatis3集成,Mapper配置写法记录

阅读更多
关于MyBatis3,dataSource在Spring的配置文件里配置好,不过多解释了,主要记录下关于Mapper部分

	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
		<property name="driverClass"><value>${jdbc.driverClass}</value></property>
		<property name="jdbcUrl"><value>${jdbc.url}</value></property>
		<property name="user"><value>${jdbc.user}</value></property>
		<property name="password"><value>${jdbc.password}</value></property>
		<property name="initialPoolSize"><value>${jdbc.initialPoolSize}</value></property>
		<property name="minPoolSize"><value>${jdbc.minPoolSize}</value></property>
		<property name="maxPoolSize"><value>${jdbc.maxPoolSize}</value></property>
	</bean>

	<bean id="sqlSessionFactory" 
		class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="configLocation" value="classpath:mybatisConfig.xml"></property>
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<bean id="sqlSession"
		class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>


MyBatis3,主要是多了一个目录自动扫描

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="org.xxx.mapper" />
	</bean>


这样的写法就可以不必每一个Mapper都写到配置文件里,它会自动的扫描整个目录里的Mapper

另一种就是把需要的Mapper配置到配置文件里面

<bean id="xxxMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="org.xxx.mapper.XXXMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

当然还可以像iBatis2一样的传统写法,用Spring把sqlSessionFactory注入到接口里,写接口实现

以上两种写法不需要写接口实现,只要定义接口就可以了

需要注意的两点是
1.Mapper中的nameSpace指向的接口文件路径需要是正确的
2.Mapper的Interface和xml文件名相同,否则没法对应相应接口的实现
------------------------------------


这里一直有个疑问
就是对于MyBatis3来说,省去了,接口实现那一部分,那到底还是否需要Dao这个东西?

如果需要的话,还有没有什么好的写法??

原来的DAO接口定义的话,现在我的写法就是在MyBatis里面再定义一个空接口,来继承DAO的接口,这样集成了DAO,也可以自动生成MyBatis的实现

不过是否有这个必要,有没有人讲讲~
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics