很多项目中使用到了mybatis框架,一般也都是把mybatis集成在spring中。为什么要使用mybatis,以及使用mybatis优势在哪,这个往往是我们要关心以及要弄明白的地方。
mybatis官网给出的定义:MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
也许官网给出的定义太过抽象,下面以我自己的理解来说明下。(以例子来说明)
一、配置集成到spring的mybatis相关配置(applicationContext.xml)
配置文件如下:
1 <!-- 配置数据源 --> 2 <bean id="dataSource" 3 class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 4 <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 5 <property name="url" value="jdbc:mysql://localhost:3306/db_crm"/> 6 <property name="username" value="root"/> 7 <property name="password" value="passwd"/> 8 </bean> 9 10 <!-- 配置mybatis的sqlSessionFactory --> 11 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 12 <property name="dataSource" ref="dataSource" /> 13 <!-- 自动扫描mappers.xml文件 --> 14 <property name="mapperLocations" value="classpath:com/hik/mappers/*.xml"></property> 15 <!-- mybatis配置文件 --> 16 <property name="configLocation" value="classpath:mybatis-config.xml"></property> 17 </bean> 18 19 <!-- DAO接口所在包名,Spring会自动查找其下的类 --> 20 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 21 <property name="basePackage" value="com.hik.dao" /> 22 <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property> 23 </bean>