JDBC存 的问题
数据库配置硬编码
频繁创建与销毁数据库连接 ,资源严重浪费
SQL语句、参数写在代码里和代码在一起,存在硬编码,不好维护,
对参数和返回结果需要手动一个一个去绑定,较为繁琐
JDBC 解决方案
使用配置文件
使用数据库连接池
使用配置文件与代码分开维护(与数据库配置文件分开),SQL配置文件可能经常变更
使用反射、内省的方式来重实现绑定与封装
自定义持久层框架分析:
使用端引用自定义持久框架 的jar包使用端提供数据库配置信息-配置文件sqlMapConfig.xml使用端提供Sql的配置信息,XXXMapper.xml自定义持久框架 jar提供解析据库配置信息和Sql的配置信息工具类(sql配置信息包含sql语句,入参数 ,返回类型)一、自定义持久框架 jar
1.创建一个maven项目,并引入以下jar
2.创建加载资源类
3.创建配置类信息存放sql配置信息类、数据库配置信息类、更新操作的枚举类
枚举类:
sql配置信息类:
数据库配置信息类:
存储解析sql后的类
4.以上我们创建了存储配置信息的POJO,下面我们要去创建XML的解析类讲XML解析到POJO中
数据源XML解析
SqlXML信息解析类:
创建一个解析sql
4.到此我们XML我们已经解析完毕,接下来我们就需要创建一个SqlSessionFactory用于生产SqlSession
SqlSessionFactory
实现SqlSessionFactory
创建一个SqlSession
创建一个实现SqlSession
只有调用Dao 就会直接直接调用getMapper
5.下面我们就可以创建数据库链接可以开始做一些数据库的操作
其实最底层还是JDBC
至此 自定义手写Mybatis-自定义持久层框架已完成
自定义框架端比较繁琐 涉及东西比较多 使用dom4j 解析配置文件 c3p0连接池等等 最主要的还是其中思想,附个整体思路的脑图,如有错误,欢迎指正