• JDBC回顾之手写JDBC


    一、JDBC总结问题:
    • 数据库连接创建、释放频繁造成系统资源浪费,从而影响系统性能
    • SQL语句在代码中硬编码,造成代码不易维护,实际应用中SQL变化的可能较大,SQL变动需要改变java代码
    • 使用prepardStatement向占有位符号传参数存在硬编码,因为SQL语句的where条件不一定,可能多也1可能少,修改SQL还要修改代码,系统不易维护
    • 对结果集解析存在硬编码(查询列名),SQL变化导致解析代码变化,系统不易维护,如果能将数据库记录封装成pojo对象解析比较方便

    二、问题解决思路

    1. 使用数据库连接池初始化连接资源
    2. 将SQL语句抽取到xml配置文件中
    3. 使用反射、内省等底层技术,自动将实体与进行属性与字段的自动映射
    自定义持久层框架设计思路:
      使用端:(项目):引入自定义持久层框架的jar包
      提供两部分配置信息:数据库配置信息、sql配置信息:sql语句、参数类型、返回值类型
     使用配置文件来提供这两部分配置信息:
      1、sqlMapConfig.xml存放数据库配置信息,存放mapper.xml的全路径
      2、mapper.xml:存放sql配置信息
      自定义持久层框架本身:(工程):本质就是对JDBC代码进行了封装
    1、加载配置文件:根据配置文件的路径,加载配置文件成字节输入流,存储在内存中
      创建Resources类 方法:InputSteam getResourcesAsSteam(String path)
    2、创建两个javaBean:(容器对象):存放的就是对配置文件解析出来的内容
      Configuration:核心配置类:存放sqlMapConfig.xml解析出来的内容
      MapperdStatement:映射配置类:存放mapper.xml解析出来的内容
    3、解析配置文件:dom4j
      创建类:SqlSessionFactoryBuiler 方法:build (InputSteam in)
      第一:使用dom4j解析配置文件,将解析出来的内容封装到容器对象中
      第二:创建SqlSesionFactory对象;生产sqlSesion:会话对象(工厂模式)
    4、创建SqlSessionFactory接口及实现类DefaultSqlSessionFacotry
      第一:openSession():生产sqlSession
    5、创建SqlSession接口及实现DefaultSesion
      定义对数据库的crud操作:selectList() 、selectOne()、update()、delete()
    6、创建Executor接口及实现类SimpleExecutor实现类
      query(Configuration,MappedStatement,Object...params):执行的就是JDBC代码
     
     
     
    源码地址:https://gitee.com/jiege0525_admin/handwritten-jdbc

  • 相关阅读:
    sass---基本语法
    sass--概述与基本操作手册
    DOS命令--基本常用命令
    PHP中的几种输出格式
    PHP操控数据库
    MySQL数据库
    前端小知识
    TextView控件的介绍及实现跑马灯的效果
    枚举类型和 struct类型
    Button的四种监听方式
  • 原文地址:https://www.cnblogs.com/easyjie/p/14728980.html
Copyright © 2020-2023  润新知