Spring提供了一组数据访问框架,集成了多种数据访问技术。无论是JDBC,iBATIS(mybatis)还是Hibernate,Spring都能够帮助消除持久化代码中单调枯燥的数据访问逻辑。可以依赖Spring来处理底层的数据访问。
mybatis是一种Spring持久化框架,要使用mybatis,就要做好相应的配置:
1,配置数据源。有很多数据源可以选择,如:DBCP,JDBC,alibaba的druid。相关的配置都大同小异,以druid做一个例子:
<bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_username}" /> <property name="password" value="${jdbc_password}" /> <property name="initialSize" value="1" /> <property name="maxActive" value="20" /> <property name="maxIdle" value="20" /> <property name="minIdle" value="1" /> <property name="maxWait" value="60000" /> <property name="validationQuery" value="SELECT 'x'" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <property name="testWhileIdle" value="true" /> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <property name="minEvictableIdleTimeMillis" value="25200000" /> <property name="removeAbandoned" value="true" /> <property name="removeAbandonedTimeout" value="1800" /> <property name="logAbandoned" value="true" /> <property name="filters" value="Stat" /> </bean>
配置里基本都是一些属性的设置。这里还需要一个properties 的配置文件来对${jdbc_url},${jdbc_username},${jdbc_password}进行具体的设定:
driver=com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://localhost:3306/mybatis jdbc_username=root jdbc_password=123456
2,声明mybatis的session工厂。session接口提供了基本的数据访问功能,如保存、更新、删除以及从数据库加载对象的功能(通常说的增删改查)。通过mybatis的session接口,应用程序的DAO(data access object)能够满足所有的持久化需求。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="typeAliasesPackage" value="paytool.model"/> <property name="mapperLocations" value="classpath:paytool/mapping/*.xml" /> </bean>
这里主要对3个属性进行了配置。dataSource用到了之前配置的数据源。typeAliasesPackage指定是在value设定的包下的类。mapperLocations指定了value设定路劲下的*.xml文件。
3,mybatis自动扫描加载
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="paytool.dao" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean>
4, 事务管理(事务的概念理解就不具体介绍了)
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
5,使用声明式事务
<tx:annotation-driven transaction-manager="transactionManager"/>
spring-mybatis的配置就这样配置好了,接下来就可以编写代码了。