【技术实现步骤摘要】
一种基于Spring实现DAO接口的方法、装置及设备
本申请涉及数据开发
,特别是涉及一种基于Spring实现DAO接口的方法、装置及设备。
技术介绍
DAO模式是标准的J2EE(Java2PlatformEnterpriseEdition)设计模式之一,开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开,它的全称是DataAccessObject数据访问对象,典型的DAO的组件分为DAO工厂类、DAO接口类、实现DAO接口的具体类、数据传递对象,具体的DAO类包含了从特定的数据源访问数据的逻辑。iBATIS是一个基于SQL(StructuredQueryLanguage,结构化查询语言)映射支持Java的持久层框架。支持通过DAO接口与XML(ExtensibleMarkupLanguage,可扩展标记语言)映射文件的绑定,自动生成接口实现类,提高开发效率。但也会带来以下问题:(1)iBATIS只支持SQL结构化查询语言。不支持HQL(HibernateQueryLanguage)Hibernate查询语言。(2)基于在iBATIS上构建的应用,需要整体迁移时,成本较高。(3)需要编写XML映射文件,会造成大量的XML配置文件,配置文件过多导致管理变得困难。(4)开发人员不得不同时维护代码和配置文件,开发效率变得低下。
技术实现思路
有鉴于此,本申请提供了一种基于Spring实现DAO接口的方法、装置及设备。主要目的在于解决目前的系 ...
【技术保护点】
1.一种基于Spring实现DAO接口的方法,其特征在于,所述方法的步骤包括:/n在Spring.xml配置文件中确定扫描包的预定范围;/n扫描所述预定范围内的扫描包中带预定注解的DAO接口类,将FactoryBean与所述带预定注解的DAO接口类建立映射关系;/n生成所述带预定注解的DAO接口类的动态代理对象,并将所述动态代理对象存储至缓存库中;/n接收DAO接口类的命令,根据所述DAO接口类的命令从所述缓存库中查找对应的动态代理对象,若找到与所述DAO接口类的命令对应的动态代理对象,则执行所述DAO接口类的命令,得到结果集,否则,生成所述DAO接口类的命令对应的特征值存储在所述缓存库中,并执行所述DAO接口类的命令,得到结果集;/n判断所述结果集中是否包含Convert注解,若是,则从Convert注解的参数中获取所述结果集对应的转换对象的目标类型,将所述结果集转换成所述目标类型,返回转换后的结果集,否则,直接将所述结果集返回。/n
【技术特征摘要】
1.一种基于Spring实现DAO接口的方法,其特征在于,所述方法的步骤包括:
在Spring.xml配置文件中确定扫描包的预定范围;
扫描所述预定范围内的扫描包中带预定注解的DAO接口类,将FactoryBean与所述带预定注解的DAO接口类建立映射关系;
生成所述带预定注解的DAO接口类的动态代理对象,并将所述动态代理对象存储至缓存库中;
接收DAO接口类的命令,根据所述DAO接口类的命令从所述缓存库中查找对应的动态代理对象,若找到与所述DAO接口类的命令对应的动态代理对象,则执行所述DAO接口类的命令,得到结果集,否则,生成所述DAO接口类的命令对应的特征值存储在所述缓存库中,并执行所述DAO接口类的命令,得到结果集;
判断所述结果集中是否包含Convert注解,若是,则从Convert注解的参数中获取所述结果集对应的转换对象的目标类型,将所述结果集转换成所述目标类型,返回转换后的结果集,否则,直接将所述结果集返回。
2.根据权利要求1所述的方法,其特征在于,所述在Spring.xml配置文件中确定扫描包的预定范围,具体包括:
在Spring.xml配置文件中利用BeanDefinitionRegistryPostProcessor确定扫描包的预定范围;
为所述扫描包设定对应的注解名称,其中,设定所述扫描包的初始注解名称为AutoDaoImpl;
为AutoDaoImpl匹配相应的entityClass参数,利用entityClass参数来对应所述带指定注解的DAO接口类的具体操作的实体类对象。
3.根据权利要求1所述的方法,其特征在于,所述扫描所述预定范围内的扫描包中带预定注解的DAO接口类,将FactoryBean与所述带预定注解的DAO接口类建立映射关系,具体包括:
扫描所述预定范围内的扫描包中带预定注解的DAO接口类;
定义ClassPathBeanDefinitionScanner生成BeanDefinition,在BeanDefinition中定义FactoryBean与带预定注解的DAO接口类的映射关系,并为BeanDefinition设置对应的注入模式。
4.根据权利要求1所述的方法,其特征在于,所述生成所述带预定注解的DAO接口类的动态代理对象,并将所述动态代理对象存储至缓存库中,具体包括:
将所述带预定注解的DAO接口类设置成自定义DAO接口;
利用Proxy对象和所述自定义DAO接口,生成所述自定义DAO接口的动态代理对象,将所述动态代理对象存储至缓存库中。
5.根据权利要求1所述的方法,其特征在于,所述生成所述DAO接口类的命令对应的特征值存储在所述缓存库中,具体包括:
从所述DAO接口类的命令中获取执行名称,对所述执行名称进行解析,得到对应的返回值;
根据所述执行名称确定对应的执行参数,其中,所述执行参数包括:常用参数和回调函数参数,所述回调函数参数中记录有回调函数参数的索引位置;
根据所...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。