当前位置:主页 > 查看内容

什么是Mybaits?

发布时间:2021-06-06 00:00| 位朋友查看

简介:什么是Mybaits? Mybaits 半自动orm持久层框架,免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作,可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJOPlain Old Java Objects普通老式 Java 对象为数据库中的记录 Mybaits框架核心配置……

什么是Mybaits?

Mybaits

半自动orm持久层框架,免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作,可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录

Mybaits框架核心配置文件

  1. configuration 根节点元素
  2. peopreties 包含数据库连接相关参数
  3. settgs 设置Mybaits框架的运行时行为
  4. environments 可配置多组运行环境
  5. environment 配置运行环境(事务管理,数据源…)
  6. mappers 配置SQL映射文件的位置
  7. mapper mappers的子元素

SqlSessionFactorybuilder

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.而使用SqlSessionFactorybuilder的原因就是把SqlSessionFactory 这个对象交给builder来创建,也就是创造者模式.

SqlSessionFactorybuilder可以拆分为3部分

  1. SqlSessionFactorybuilder:工人
  2. SqlSessionFactory:工厂
  3. SqlSession:产品
    工厂(SqlSessionFactory)通过工人(SqlSessionFactorybuilder)
    得到产品(SqlSession)
public class Usermapeerutil {
    static SqlSession sqlSession = null;
    public static SqlSession getSqlSession(){
        String resource="mybaits-config.xml";
        InputStream inputStream=null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        }catch (IOException e){
            e.printStackTrace();
        }
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }

作用域和生命周期

  1. SqlSessionFactorybuilder:
    SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量),也就是方法执行完毕,它被摧毁
  2. SqlSessionFactory:
    SqlSessionFactory 的最佳作用域是应用作用域,它是一直存在的,直到你整个程序运行完毕,使用 SqlSessionFactory 的最佳实践是在应用运行期间不要重复创建多次,多次重建 SqlSessionFactory 被视为一种代码“坏习惯”。
  3. SqlSession:
    SqlSession的最佳的作用域是请求或方法作用域,也就是当你每次发起请求,都会打开一个SqlSession,当请求完成后将它关闭
    每个线程都应该有它自己的 SqlSession 实例,SqlSession 的实例不是线程安全的,所以它是不能被共享的.

Sql映射

MyBatis 提供的所有特性都可以利用基于 XML 的映射语言来实现,这使得 MyBatis 在过去的数年间得以流行。

  1. cache – 该命名空间的缓存配置。
  2. cache-ref – 引用其它命名空间的缓存配置。
  3. resultMap – 描述如何从数据库结果集中加载对象,是最复杂也是最强大的元素。
  4. sql – 可被其它语句引用的可重用语句块。
  5. insert – 映射插入语句。
  6. update – 映射更新语句。
  7. delete – 映射删除语句。
  8. select – 映射查询语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
  根据namespace查找对应创建dao接口
  根据方法名称查找对应的sql语句
-->
<mapper namespace="com.cn.mapper.UserMapper">
    <!--
        每一种sql语句对应每一种标签
        resultType 返回值类型
    -->
    <select id="login" resultType="com.cn.pojo.User">
        select * from user where number=#{arg0} and password=#{arg1}
    </select>
</mapper>

(还在学习中,第一次发文章,勿喷,有不足之处还望指点)

;原文链接:https://blog.csdn.net/Survivor02/article/details/115570537
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐