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

本文详细介绍了MyBatis3在Spring框架中的配置,包括数据源、SqlSessionFactory、SqlSessionTemplate及自动扫描Mapper的实现方式。同时探讨了自动扫描与传统配置的区别,并对Mapper接口与实现之间的关系进行了思考,最后讨论了是否还需要传统的DAO层。通过实例代码,深入浅出地阐述了MyBatis3中自动扫描机制的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于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的实现

不过是否有这个必要,有没有人讲讲~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值