电子说
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
一、SqlSession的使用范围说明
1、SQLSessionFactoryBuilder
通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory,将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例模式管理,在创建SqlSessionFactory的时候,只需要new一次SqlSessionFactoryBuilder即可。
2、SqlSessionFactory
通过SqlSessionFactory创建SqlSession,使用单例模式来管理SqlSessionFactory(工厂一旦创建,只使用一个实例)。
3、SqlSession
SqlSession是一个面向用户(程序员)的接口。
SqlSession中提供了很多操作数据库的方法:如selectOne(返回单个对象)、selectList(返回单个或多个对象)。
SqlSession是线程不安全的,因为在SqlSession中除了有接口中的方法(操作数据库的方法)之外。还有数据域属性。
SqlSession的最佳应用场合是在方法体内,将其定义为局部变量来使用。
二、SqlMapConfig.xml配置文件详解
1、Properties属性
Properties属性用来加载属性配置文件。
《!--
加载属性文件
resource:属性文件的相对路径
url:属性文件的绝对路径
--》
《properties resource=“config/db.properties”》
《!--
配置一些属性
name:属性的名称
value:属性的值
--》
《!--《property name=“” value=“” /》 --》
《/properties》
properties特性:
1. 首先会读取在property标签中定义的属性。
2. 然后会读取在properties标签中通过resource或url加载时的属性,它会覆盖已读取得同名属性。
3. 最后会读取sql中parameterType传递过来的属性,它会覆盖已读取的同名属性。
2、settings全局参数配置
Mybatis框架在运行时可以调整一些运行参数,比如:开启二级缓存、开启延迟加载等。这些参数
要通过settings标签来配置,全局参数会影响Mybatis的运行行为,配置一定要注意。
《!--全局参数配置--》
《settings 》
《!--
name:属性名称
value:属性的值
--》
《setting name=“” value=“”/》
《/settings》
常用的全局配置参数如下:
3、typeAlia
在映射文件中的parameterType和resultType属性中要指定输入、输出映射类型,如果类型为PO,要指定PO类的全路径这样不是特别方便,可以使用typeAlias定义一些别名,来方便开发。
《!--定义别名--》
《typeAliases》
《!--
type:需要起别名的字符串
alias:对应的别名
--》
《typeAlias type=“” alias=“” /》
《!--
name:包名,会对包下面的类进行扫描,自动批量设置别名,
设置的别名为类名,首字母大小写均可
--》
《package name=“” /》
《/typeAliases》
Mybatis的默认别名
4、typeHandlers(类型处理器)
Mybatis中通过typeHandlers完成jdbc类型和Java类型的装换。通常情况下,Mybatis提供的类型处理器满足日常需要,不需要我们再自定义。
《typeHandlers》
《typeHandler handler=“” jdbcType=“” javaType=“” /》
《/typeHandlers》
Mybatis默认支持的数据类型
5、environments 环境
《!--
环境配置
在和Spring整合后改配置将废除
--》
《environments default=“development”》
《environment id=“development”》
《!--使用JDBC的事务管理,事务管理交给Mybatis--》
《transactionManager type=“JDBC”》《/transactionManager》
《!--数据库连接池,有Mybatis管理--》
《dataSource type=“POOLED”》
《property name=“driver” value=“com.mysql.jdbc.Driver” /》
《property name=“url” value=“jdbc:mysql://localhost:3306/mybatis” /》
《property name=“username” value=“root” /》
《property name=“password” value=“root” /》
《/dataSource》
《/environment》
《/environments》
6、mapper 加载映射文件
加载映射文件有三种方式
1、加载单个映射文件
《!--引入mapper--》
《mappers》
《!--rerource:引入映射文件相对于classpath的地址--》
《mapper resource=“config/sqlmap/userMapper.xml” /》
《/mappers》
2、通过Mapper接口加载单个映射文件
前提条件:
(1)。 使用Mapper代理的方式进行开发。
(2)。 Mapper接口文件名要和映射文件名一致
(3).Mapper接口文件和映射文件在同一个目录下
《!--引入mapper--》
《mappers》
《mapper class=“com.jack.po.UserMapper” /》
《/mappers》
3、批量记载映射文件
前提条件:
(1)。 使用Mapper代理的方式进行开发。
(2)。 Mapper接口文件名要和映射文件名一致
(3).Mapper接口文件和映射文件在同一个目录下
《!--引入mapper--》
《mappers》
《!--name:mapper接口文件所在的包路径--》
《package name=“” /》
《/mappers》
全部0条评论
快来发表一下你的评论吧 !