Java技术研究

Mybatis-----二

2018-11-22  本文已影响0人  晨曦诗雨

MyBatis前身是iBatis,本是Apache的一个开源的项目

官方网站

http://mybatis.org

ORM框架
实体类和SQL语句之间建立映射关系

特点

基于SQL语法,简单易学
能了解底层封装过程
SQL语句封装在配置文件中,便于统一管理与维护,降低######程序的耦合度
方便程序代码调试

Mybatis的优缺点

优点:

1.与JDBC相比,减少了50%以上的代码量
2.最简单的持久化框架,小巧并简单易学
3.SQL代码从程序代码中彻底分离,可重用
4.提供XML标签,支持编写动态SQL
5.提供映射标签,支持对象与数据库的ORM字段映射

缺点:

SQL语句编写工作量大,对开发人员有一定要求
数据库移植性差

MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案,适用于性能要求较高或者需求多变的互联网项目

搭建Mybatis的开发步骤:

1.下载mybatis.jar包并导入工程
2.编写MyBatis核心配置文件(configuration.xml)
3.创建实体类-POJO
4.DAO层-SQL映射文件(mapper.xml)
5.创建测试类
       读取核心配置文件mybatis-config.xml
       创建SqlSessionFactory对象,读取配置文件
       创建SqlSession对象
       调用mapper文件进行数据操作

基本要素:
MyBatis的核心对象

1.SqlSessionFactoryBuilder
2.SqlSessionFactory
3.SqlSession

mybatis-config.xml 系统核心配置文件
mapper.xml SQL映射文件

核心接口和类的结构:

总结:

SqlSessionFactoryBuilder
   用过即丢,推荐作用域范围:方法体内

SqlSessionFactory
   最佳作用域范围:应用的全局作用域
   生命周期与应用的生命周期相同

SqlSession
   线程级
   一个request请求期间

核心配置文件

mybatis-config.xml 系统核心配置文件
configuration 配置
properties    可以配置在Java 属性配置文件中
settings    修改 MyBatis 在运行时的行为方式
typeAliases   为 Java 类型命名一个别名(简称)
typeHandlers   类型处理器
objectFactory   对象工厂
plugins   插件
environments   环境
environment   环境变量
transactionManager  事务管理器
dataSource   数据源
mappers    映射器

配置properties元素的两种方式
通过外部指定的方式(database.properties),实现动态配置
直接配置为xml,实现动态配置
通过外部指定的方式(database.properties),实现动态配置
配置properties的resource属性
   <properties resource="database.properties"/>      
   <dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>

直接配置为xml,实现动态配置
配置property的name和value
<properties>
    <property name="driver" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/sms"/>
    <property name="user" value="root"/>
    <property name="password" value=“123456"/>
 </properties>

<dataSource type="POOLED">
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${user}"/>
    <property name="password" value="${password}"/>
</dataSource>

environments元素
表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
子元素节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)

每个SqlSessionFactory实例只能选择一个运行环境

<environments default="development">
 <environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
     <property name="url" value="${url}"/>
        <property name="username" value="${user}"/>
        <property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="test">
</environment>
</environments>

SQL映射文件

MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单
SQL映射文件的几个顶级元素(按照定义的顺序)
   mapper - namespace
   cache - 配置给定命名空间的缓存
  cache-ref – 从其他命名空间引用缓存配置
  resultMap –用来描述数据库结果集和对象的对应关系
  sql – 可以重用的SQL块,也可以被其他语句引用
 insert – 映射插入语句
  update – 映射更新语句
  delete – 映射删除语句
  select – 映射查询语句
上一篇下一篇

猜你喜欢

热点阅读