mybatis概述

Mybatis特点

a)         开源的优秀持久层框架(轻量级)

b)         SQL语句与代码分离

c)         面向配置的编程(程序的可维护性拓展性大大增强)

d)         支持复杂数据映射

e)         动态SQL语句

Mybatis工作流程

流程概述

         读取配置文件(数据库连接相关信息)

         生成SqlSessionFactory(sqlsession工厂,用于与数据库之间的会话)

         建立SqlSession(sqlsession目的是为了执行SQL语句)

         调用mybatis API    

         查询map文件配置

         返回结果

         关闭sqlsession

配置文件

      基本配置文件

    一个例子: 

<?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="db.properties"/>
    <!-- 配置实体类别名 -->
    <typeAliases>
        <package  name="org.demo.domain"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!-- 配置数据库连接信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}" />
                <property name="url" value="${db.url}" />
                <property name="username" value="${db.user}" />
                <property name="password" value="${db.pwd}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper   resource="org/demo/mapper/usersMapper.xml"/>
        <mapper      resource="org/demo/mapper/empMapper.xml"/>
        <!-- <mapper   class="org.demo.zjdemo.UsersMapper"/>-->
        <package  name="org.demo.zjdemo"/>
    </mappers>
</configuration>

  mybatis配置文件中包含一个大的configuration标签

  properties标签:引入数据库连接配置文件

  typeAliases:定义Java类别名

包下所有类名作为别名
<package  name="包名"/>
单独类定义别名
<typeAlias  type="全类名"  alias="别名">

  environments:mybatis配置环境,可以配置多个环节

  mappers:指定映射文件

  

  

      Map配置文件

        SQL 映射XML 文件是所有sql语句放置的地方。需要定义一个workspace,一般定义为对应的接口类的路径。写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如:

    <mappers>
        <mapper   resource="org/demo/mapper/usersMapper.xml"/>
        <mapper      resource="org/demo/mapper/empMapper.xml"/>
        <!-- <mapper   class="org.demo.zjdemo.UsersMapper"/>-->
        <package  name="org.demo.zjdemo"/>
    </mappers>

  SQL 映射XML 文件一些初级的元素:


1. cache – 配置给定模式的缓存
2. cache-ref – 从别的模式中引用一个缓存
3. resultMap – 这是最复杂而却强大的一个元素了,它描述如何从结果集中加载对象
4. sql – 一个可以被其他语句复用的SQL 块
5. insert – 映射INSERT 语句
6. update – 映射UPDATE 语句
7. delete – 映射DELEETE 语句
8. select  -  映射SELECT语句

SqlSessionFactory,SqlSession

         SqlSessionFactory:代表与数据库之间的连接

         SqlSession:进行各种数据库操作,有SqlSessionFactory建立

         生命周期:一般的mybatis程序应用只有一个SqlSessionFactory,是程序级的,程序开始运行建立,程序结束消亡。Sqlsession的生命周期是过程级的,例如在某个方法中建立SqlSession对象,方法退出sqlsession消亡,一个程序运行中会创建多个sqlsession。

         建立代码:

InputStream  input=Demo1Test.class.getClassLoader().getResourceAsStream(resource);
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(input);
        SqlSession session=sessionFactory.openSession();//openSession(true)可自动提交

 

posted on 2017-03-18 19:55  十三公子  阅读(184)  评论(0编辑  收藏  举报

导航