Mybatis介绍 & 配置文件
目录
基本信息
背景介绍
特点
mybatis配置xml文件
mybatis-config.xml文件
基本信息
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
背景介绍
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类——Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
特点
- 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件。易于学习,易于使用。通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
- 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。
- 解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
- 提供映射标签,支持对象与数据库的ORM字段关系映射。
- 提供对象关系映射标签,支持对象关系组建维护。
- 提供xml标签,支持编写动态sql。
mybatis配置xml文件
配置名称 | 配置含义 | 配置简介 |
---|---|---|
configuration | 包裹所有配置标签 | 整个配置文件的顶级标签。 |
properties | 属性 | 该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件中的其他配置均可引用此配置中的属性。 |
settings | 全局配置参数 | 用来配置一些改变运行时行为的信息。例如是否使用缓存机制,是否使用延迟加载,是否使用错误处理机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启用命名空间等。 |
typeAliases | 类型别名 | 用来设置一些别名来替代Java的长类型声明(如: java.lang.int变为int),减少配置编码的冗余。 |
typeHandlers | 类型处理器 | 将SQL中返回的数据库类型转换为相应的Java类型的处理器配置。 |
objectFactory | 对象工厂 | 实例化目标类的工厂类配置。 |
plugins | 插件 | 可以通过插件修改MyBatis的核心行为,例如对语句执行的某一点进行拦截调用。 |
environments | 环境集合属性对象 | 数据库环境信息的集合。在一个配置文件中,可以有多种数据库环境集合,这样可以使MyBatis将SQL同时映射至多个数据库。 |
environment | 环境子属性对象 | 数据库环境配置的详细配置。 |
transactionManager | 事务管理 | 指定MyBatis的事务管理器。 |
dataSource | 数据源 | 使用其中的type指定数据源的连接类型,在标签对中可以使用property属性指定数据库连接池的其他信息。 |
mappers | 映射器 | 配置SQL映射文件的位置,告知MyBatis去哪里加载SQL映射配置。 |
TIP:
MyBatis中的配置,不但有类型限制,还有顺序限制。
必须按照:
、 、 、 、…顺序排放
mybatis-config.xml文件
根据上表,给出部分配置参数的案例
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 属性-->
<properties resource="database.properties"></properties>
<!-- 别名-->
<typeAliases>
<package name="org.example.pojo"/>
</typeAliases>
<!-- 数据库连接池环境-->
<environments default="mysqlDev">
<environment id="mysqlDev">
<!-- 事务管理-->
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${mysqldriver}"/>
<property name="url" value="${mysqlurl}"/>
<property name="username" value="${mysqluser}"/>
<property name="password" value="${mysqlpwd}"/>
</dataSource>
</environment>
</environments>
<!-- 映射-->
<mappers>
<!-- <mapper resource="org.example.dao.DogDao.xml" />-->
<mapper resource="org.example.dao/DogDao.xml" />
<!-- <mapper class="org.example.dao.DogDao.xml"></mapper>-->
<!-- <mapper url="file:///E:/Java/untitled1/MybatisStu/src/resources/org.example.dao/DogDao.xml" />-->
</mappers>
</configuration>
还没有评论,来说两句吧...