Mybatis初入

Mybstis

一、Mybatis简述

  1. 基于java的持久层框架
  2. 支持普通SQL查询,存储过程和高级映射的持久层框架
  3. 更加简化jdbc代码,简化持久层,sql语句,与表中数据映射

二、MyBatis功能架构图

三层架构

  • API接口层:完成具体的数据处理
  • 数据处理层:SQL查找,SQL解析,SQL执行,目的是调用请求完成一次数据库操作
  • 基础支撑层:连接管理,事务管理,缓存管理等。

三、Mybatis配置相关

1. Configuration-mybatis配置

​ 1)、与spring 一样,可以通过配置文件或注解的形式进行配置;
​ 2)、mybatis.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息;
​ 3)、mapper文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在mybatis.xml中加载。
​ 4)、有了配置文件后,通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂
​ 5)、由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行
​ 6)、sqlSession使用Executor(数据库操作执行器接口)操作数据库,同Executor 具体实现类实现指定 dao 层数据访问操作。

2. 配置文件解释

数据库配置(Mysql5.x可用)

<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="${username}" />
            <property name="password" value="${password}" />
        dataSource>
    environment>
environments>

在config.xml 文件中引入子标签

<properties resource="jdbc.properties">properties>

jdbc.properties文件中为数据库配置

3. settings(了解即可,这里不赘述)

4. typeHandlers类型处理器

无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。

5. 配置环境(environments)

尽管可以配置多个环境,每个 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="${username}" />
                <property name="password" value="${password}" />
                dataSource>
    environment>
    <environment id="test">
        <transactionManager type="JDBC" />
        <dataSource type="POOLED">
            <property name="driver" value="${driver2}" />
            <property name="url" value="${url2}" />
            <property name="username" value="${username2}" />
            <property name="password" value="${password2}" />
        dataSource>
    environment>
environments>

6. mapper映射器

!— sqlmapper配置文件路径 -->
<mappers>
    <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
    <mapper resource="org/mybatis/builder/BlogMapper.xml"/>
    <mapper resource="org/mybatis/builder/PostMapper.xml"/>
    mappers>
    <!—url绝对路径形式-->
    <mappers>
    <mapper url="file:///var/mappers/AuthorMapper.xml"/>
    <mapper url="file:///var/mappers/BlogMapper.xml"/>
    <mapper url="file:///var/mappers/PostMapper.xml"/>
    mappers>
    <!—接口 列表配置形式 注解sql-->
    <mappers>
    <mapper class="org.mybatis.builder.AuthorMapper"/>
    <mapper class="org.mybatis.builder.BlogMapper"/>
    <mapper class="org.mybatis.builder.PostMapper"/>
    mappers>
    <!—映射包下所有接口-->
    <mappers>
    <package name="org.mybatis.builder"/>
mappers>

四、Mybatis增删改查

主要是select,insert,update,delete标签的使用,明白回传参数,传入参数的含义,以及与entity名称对应,就可以排除大部分遇到的bug

参数(Parameters)
MyBatis的参数可以使用的基本数据类型和Java的复杂数据类型。 基本数据类型,string,int,date等。 但是使用基本数据类型,只能提供一个参数,所以需要使用Java实体类,或Map类型做参数类型。通过#{}可以直接得到其属性。

Result Maps
resultMap 元素是 MyBatis 中最重要最强大的元素. 简单理解它的作用就是描述对象的属性和数据库的对应关系. 将我们从数据库中查询出来的结果自动映射成javabean. 有了它我们不但可以单独查询一个表还可以级联查询

你可能感兴趣的:(SSM)