文档章节

MiniDao原理笔记

THEONE1
 THEONE1
发布于 2014/06/14 19:23
字数 519
阅读 148
收藏 1

MiniDao原理笔记

1、  通过在spring容器中的注解注册minidao的接口,当程序启动时自动扫描examples.dao.*下的所有有关minidao注解的类,由org.jeecgframework.minidao.factory.MiniDaoBeanFactory进行解析,该类需要继承BeanFactoryPostProcessor,实现其抽象方法postProcessBeanFactory,方法中具体实现:

  1. 在该类中循环传入的minidao配置项,解析配置项查出该配置项对应文件夹下的所有class文件并进行加载

  2. 循环这些class文件类,判断是否是以MiniDao为注解方式,如果是则单独加载一个接口的代理类,将spring容器传入改代理类,并将miniDaoHandler作为拦截器传入,将对应的类注入给spring代理工厂管理,也就是说当这些类的方法在被调用的时候,都会去动态加载miniDaoHandler中的invoke方法。

2、  当运行时,调用了被动态代理过的DAO中的方法时,执行miniDaoHandler中的invoke方法.

  1. 判断被执行的method是否是抽象方法,如果是抽象方法,则不执行MiniDao拦截器;

  2. 如果不是,则继续判断该方法是否是hibernate实体维护的方法,如果是执行hibernate方式维护实体。

  3. 如果不是,则获取该方法的自定义注解(Arguments,进行对应SQL模板的装载,这里需要注意的是,判断装载SQL模板的两种方式,一种是SQL注解方式,一种是Arguments执行对应参数或者对象。

  4. 解析上一步得到的SQL模板,如果上一步获得的SQL模板是null,则说明不是以SQL注解方式装载,那么需要根据 [接口名_方法名.sql] 的格式获取SQL模板的路径,然后用Freemarker模板引擎解析该SQL模板。

  5. 组装占位符参数;因为SQL模板中是以 [:参数名] 为规则,这里需要将注解传递的参数替换到对应的占位符中

  6. 通过Spring封装好的JDBC方式执行执行SQL,返回结果


© 著作权归作者所有

共有 人打赏支持
THEONE1
粉丝 0
博文 1
码字总数 519
作品 0
东城
私信 提问
MiniDao-PE版 1.5.4 发布,轻量级J2EE持久化解决方案

MiniDao-PE精简版(轻量级持久层) MiniDao-PE是一种轻量级J2EE持久层解决方案,类似mybatis持久层的SQL方式,可以轻松集成Hibernate项目,事务统一管理,解决了Hibernate项目支持类mybaits...

Jeecg
2016/01/19
2.1K
1
MiniDao 1.5.1 发布,J2EE 持久化解决方案

为什么需要MiniDao? MiniDao是什么,不知道的朋友可以看看这里: http://zhangdaiscott.github.io/MiniDao Mybatis的灵活,Hibernate的简便。Hibernate的项目随着业务复杂度增高,逐渐遇到瓶颈...

Jeecg
2015/06/23
6.8K
10
Minidao_1.6.2 发布,超轻量 Java 持久化框架

Minidao_1.6.2 版本发布了,超轻量Java持久化框架 升级日志 1,扩展新标签@param 2,支持拦截器 Interceptor 3,提高分页效率,SqlServer兼容问题处理 4,升级spring4 Minidao 简介 MiniDao ...

Jeecg
2017/08/18
777
2
Minidao 1.6.2 发布,轻量 Java 持久化框架

Minidao 1.6.2 版本发布,超轻量Java持久化框架(Hibernate完美助手) 升级日志 支持自增主键策略模式 支持自定义扩展主键策略 新增示例:自增主键策略模式 新增示例:存储过程调用 新增示例...

Jeecg
2018/03/09
894
2
MiniDao持久层 Vs Mybatis

MiniDao简介及特征 MiniDao是Jeecg自己的持久化解决方案,集成Hibernate实体维护和Mybaits SQL分离的两大优点。具有以下特征 l O/R mapping不用设置xml,零配置便于维护 不需要了解JDBC的知识...

Jeecg
2013/09/11
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

独家解密:阿里超大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

阿里云云栖社区
26分钟前
3
0
独家解密:阿里大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

zhaowei121
30分钟前
1
0
mongodb系列~配置文件的优化与处理

mongodb系列~配置文件的优化与处理 一 简介:讲讲如何优化mongo配置文件 二 常规参数 port= //端口 fork=true//守护进程方式启动mongo logpath=shard.log //mongo日志存放路径 journal= tru...

linjin200
32分钟前
1
0
同一台 windows10 设备,安装两个不同版本的mysql

两个mysql 的my.ini文件需要 配置不同的端口。 [mysqld]# 设置3307端口port=3307# 设置mysql的安装目录basedir=F:\\mysql-5.7.24-winx64 # 切记此处一定要用双斜杠\\,单斜杠我这里...

无敌小学僧
32分钟前
2
0
条码插件TBarCode Office系列教程一(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部