ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自定义持久层框架

2021-07-30 21:57:54  阅读:85  来源: 互联网

标签:xml 持久 自定义 框架 标签 接口 sql 方法 定义


1、定义sqlMapConfig.xml

<dataSource>标签用来存放连接池信息

<mapper> 标签用于sql配置文件的路径

2、定义Resource类,并声明getResourceAsStream 方法,将指定路径的文件读取成字节流

3、定义SqlSessionFactory 接口,并声明openSession()方法,用于管理sqlSession会话

4、声明SqlSessionFactoryBuilder 类,并定义build方法

在该方法中引用XMLConfigBuilder 类中的paseConfig 方法,并传递一个InputStream的对象

在这个方法中,第一步先读取到本地的字节流文件,也就是sqlMapConfig.xml文件

                        第二步获取到sqlMapConfig.xml中的跟标签,也就是<configuration>标签

                        第三步获取到configuration标签下所有的property标签,返回一个List<Element>对象

                        第四步遍历获List<Element>对象,获取到每个property标签的name,value 属性的值,并保存到一个Properties对象中

                        第五步创建数据源对象,将property中对应的属性设置到ComboPooleDataSource中,并保存到Configuration中

                        该类中dataSource 属性保存解析后的sqlMapConfig.xml文件里设置的数据源信息

                                    mappedStatementMap 保存解析后的sql.xml文件的信息,是一个Map<String,MeppedStatemend> 对象

                        第六步获取到<mapper>标签resource属性的属性值,sql.xml的路径,

                        第七步根据获取到的sql.xml路径,f调用XMLMappedBuilder类中的parseMapped解析sql.xml

最后返回一个Configuration对象,并将对象传递给DefaultSqlSessionFactory

5、定义DefaultSqlSessionFactory 类, 并声明一个参数为Configuration对象的有参构造,实现SqlSessionFactory接口,并重写openSession方法,将configuration对象传递给DefaultSqlSession

6、SqlSession接口,并声明 selectList,selectOne,getMapper方法

定义DefaultSqlSession类,实现SqlSession接口,并重写接口中的方法

通过代理模式,动态获取需要执行的方法

7、定义Executor接口,定义query  update方法,并定义SimpleExecutor类实现Executor接口,并重写方法,该类的作用是执行sql

查询方法

新增、修改、删除方法

效果测试

新增

修改

删除

标签:xml,持久,自定义,框架,标签,接口,sql,方法,定义
来源: https://blog.csdn.net/weixin_44615693/article/details/119256748

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有