Mybatis简介

一、MyBatis持久层框架

1.1 MyBatis特点

  • 不屏蔽SQL,可以优化SQL语句

  • 提供了强大、灵活的映射机制

  • Mapper接口

    1.2 Mybatis框架下载

    Mybatis源码:GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for Java

    Mybatis框架下载 ::Release mybatis-3.4.1 · mybatis/mybatis-3 · GitHub

    1.3 Mybatis框架目录结构

     

    .4 MyBatis核心组件

    SqlSessionFactoryBuilder (构造者设计模式): 构造SqlSessionFactory对象

    SqlSessionFactory (工厂设计模式): 由工厂产生SqlSession对象

    SqlSesssion 会话对象:

    通过SqlSession对象的API能发送SQL语句

    获取Mapper映射器(正常开发中“消失”),在业务代码中不体现这个对象

    Mapper映射器对象: 就是Dao层接口与XML配置文件(注解)结合,达到Dao层接口实现类对象的效果(动态代理产生)

     

    1.5 组件详解

    1.5.1 SqlSessionFactory

    package org.apache.ibatis.session;

    import java.sql.Connection;

    public interface SqlSessionFactory {
        SqlSession openSession();

        SqlSession openSession(boolean var1);

        SqlSession openSession(Connection var1);

        SqlSession openSession(TransactionIsolationLevel var1);

        SqlSession openSession(ExecutorType var1);

        SqlSession openSession(ExecutorType var1, boolean var2);

        SqlSession openSession(ExecutorType var1, TransactionIsolationLevel var2);

        SqlSession openSession(ExecutorType var1, Connection var2);

        Configuration getConfiguration();
    }

    2.6.1 创建MyBatis的核心配置文件

    在类路径下(src)创建一个mybatis-config.xml(文件名称随意)

    在配置文件中编写如下xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--引入xml的约束文件: 约束当前xml文档中能使用什么标签
            xml:可扩展标记语言,描述信息的方式就是标签,HTML是它的子集
            而且可以自定义标签, 所以可以通过约束文件来约束当前xml文档中
            只能使用约束文件中(命名空间)定义的标签

            xml的约束文件分为两种
            dtd:  Mybatis使用的就是这种
            schema: spring使用的就是这种
    -->
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>


    </configuration>

  •  

    事务有四种特点,被称为ACID特性:

    原子性(Atomicity) 当事务结束,它对所有资源状态的改变都被视为一个操作,这些操作要不同时成功,要不同时失败   一致性(Consistency) 操作完成后,所有数据必须符合业务规则,否则事务必须中止 隔离性(Isolation) 事务以相互隔离的方式执行,事务以外的实体无法知道事务过程中的中间状态 持久性(Durable) 事务提交后,数据必须以一种持久性方式存储起来

    public class Configuration {
        ...
            
        public Configuration() {
            ...
                this.typeAliasRegistry.registerAlias("JDBC", JdbcTransactionFactory.class);
            this.typeAliasRegistry.registerAlias("MANAGED", ManagedTransactionFactory.class);
            this.typeAliasRegistry.registerAlias("JNDI", JndiDataSourceFactory.class);
            this.typeAliasRegistry.registerAlias("POOLED", PooledDataSourceFactory.class);
            this.typeAliasRegistry.registerAlias("UNPOOLED", UnpooledDataSourceFactory.class);
            ...
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值