美文网首页
ORM-Persistence(自定义持久层框架)

ORM-Persistence(自定义持久层框架)

作者: Joeyzz7000 | 来源:发表于2021-06-16 13:40 被阅读0次

    简介

    环境要求

    细则

    • ORM-1-Traditional
    • ORM-2-Persistence
    • ORM-Question
    ORM-1-Traditional
    Traditional Way
    • 数据库驱动加载
    • 通过驱动建立数据库链接
    • 建立预处理sql语句
    • 获取结果集
    • 释放资源
    question
    • 导致硬编码过多,不易维护
    • 导致频繁的调用数据库链接,资源消耗大
    resolve way
    • 使用数据库连接池,作为数据库连接
    • 使用xml文件管理sql硬编码,以及结果集处理
    • 依赖反射与内省等底层技术,自动将实体与表进行属性与字段的自动映射
    ORM-2-Persistence
    Persistence Way

    思路

    • 数据库配置参数、sql语句进行xml配置文件化
    • 通过解析配置文件,加载数据库源配置与sql语句对象化
    • 通过工厂模式实现sqlSession的生成
    • 通过反射与动态代理实现数据库的查询操作

    初始化

    • 编辑xml文件
    • 数据库源相关配置编辑到sqlMapConfig.xml
    • sql语句配置xxxMapper.xml
    • 通过dom4j对资源文件xml进行解析,并存储到数据库pojo对象

    Sql执行前

    • 对其方法进行JDK动态代理增强,实现面向接口开发

    sql执行

    • 使用BoundSql方法使其sql参数类型和语句进行调整,返回正常的sql与preparedStatement
    • 调用原生JDBC流程

    Sql执行后

    • 通过内省对resultSet进行封装
    ORM-Question
    Java-数据库连接池

    常用数据库连接池

    • HikariCP
    • C3P0
    • BoneCP
    • Druid

    原因

    • 创建线程是一个昂贵的操作,如果有大量的小任务需要执行,并且频繁地创建与销毁线程。实际上会消耗大量的系统资源,往往创建与销毁时消耗线程所耗费的时间比执行时的线程时间更长。所以,为了提高效率,会选择线程池

    好处

    • 数据库连接可以复用线程链接,减少频繁的数据库链接与关闭。

    原理

    • 连接池就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。
    • 通过连接池,我们只要在系统启动时预先加载好一些连接对象,当需要的时候再也不需要繁琐的步骤,现成的给你准备好啦,拿了就用,用完了放回去下次再接着用,系统加载的速度会变快,性能也会随之增加了
    反射与内省

    动态代理

    • JDK动态代理,实现方式:生成代理对象的时候需要一个拦截器 InvocationHandler 因此咱们需要写一个拦截器,必须有接口类

    相关文章

      网友评论

          本文标题:ORM-Persistence(自定义持久层框架)

          本文链接:https://www.haomeiwen.com/subject/wnjxyltx.html