- 最近因为业务各方面的原因,需要使用mybatis,所以系统的学习和总结下。
- 其实mybatis出来已经很久了,貌似大家伙用得也挺顺手的样纸,好歹我先不评价,还是先了解了解mybatis的样纸,后续再添加上关于它的个人看法。
-
mybatis是做什么的
-
关于mybatis的定义,官方的正式定义:java的持久层框架,支持存储过程和sql,使用xml或注解的方式定义。
- 个人理解是,将jdbc sql的编写,使用结构化和易管理的方式维护起来,目的当然也还是面向对象的映射转化。
- 结构(盗图):
-
-
-
mybatis怎么使用
- 简单使用
- 文件配置
- mapper.xml
- configuration.xml
- sessionFactory.xml
- 代码结构
- 定义dao接口
- 接口与mapper中的配置一致
- 定义返回对象类型
- 定义impl实现类
- 使用类
- SessionFactory的builder
- Session的获取
- 调用dao接口获取对象
- session关闭
- 定义dao接口
- 文件配置
- spring集成
- bean配置
- sessionFactoryBean配置
- dataSource
- configLocation:mybatis的配置文件(mybatis相关的配置项,如:typeAlias等。包含在configuration标签内)
- mappersLocation:mapper的放置位置
- MapperScannerConfigur配置,指定mapper的扫描位置
- sessionFactoryBean配置
- 使用
- 定义接口文件
- 定义mapper配置
- 直接使用dao的方法,即可
- mybatis的pom依赖
- mybatis:org.mybatis:mybatis:jar
- mybatis-spring:org.mybatis:mybatis-spring:jar
- bean配置
- 使用示例:
-
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driverClassName}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="checkoutTimeout" value="30000" /> <property name="maxPoolSize" value="15" /> <property name="idleConnectionTestPeriod" value="180" /> <property name="maxIdleTime" value="180" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!--configLocation属性指定mybatis的核心配置文件--> <property name="configLocation" value="classpath:mybatisConfiguration.xml" /> <!-- 所有配置的mapper文件 --> <property name="mapperLocations" value="classpath*:com/mapper/*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.pro.dao" /> </bean>
- 简单使用