`
syinhb
  • 浏览: 3424 次
  • 来自: ...
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个集合各种持久层框架的小框架^_^ resource+sample

阅读更多
目前持久层框架大概以下:
xml配置、annotation、依靠反射。
但是他们或多或少的会存在下列问题:
1。配置复杂
2。入侵性强
3。灵活性不够
最重要的是:
1。多表查询配置复杂
2。返回类型单一,尤其是多表查询后的结果
3。这点尤其重要,凡是不依靠反射的框架,都会存在一旦修改POJO,就要修改大部分配置文件或者DAO文件。

我的框架几乎可以解决以上所有问题。
同时,这是第一版,会存在一些问题,比如,写法冗余,参数传递比较别扭等等。这些问题需要高手们一起帮助解决。

说下大概思路,具体的请看我上传的源代码。

首先创造一个类似于MyEclipse代码生成器的页面。此页面利用DWR创建。可以生成POJO,DAO之类的代码,这样我们就不用再去手工输入了。目前,我的DAO还没有实现,但是大家看了代码,就会知道,那个只是一次调用核心函数的过程,非常简单。
核心函数。我只是实现了select部分。其他的回在大家的帮助下一一实现。
核心函数需要2个参数String sql,Object[] params。
看起来有些不够OOP,但是他可以换来返回结果的灵活。这个sql有些像hql,但是他有规则,就是必须使用别名,而其用#好括起来。这个地方的设计是我的最初想法,如果有好的建议希望大家指出。
一旦使用了别名我们就可以做灵活的查询。比如join之类的。
至于返回结果,我们利用反射,使用了List<Object[]>对象。
这样,我们就解决了多表查询返回的问题。
同时,也是我最满意的一点就是,获得这样的结果,并不用太复杂的配置。

^_^。
这个是第一版。
希望通过的大家的指点,我可以优化后面的版本。
分享到:
评论

相关推荐

    持久层框架Ibatis

    总结来说,Ibatis 是一个强大且灵活的持久层框架,它允许开发者保留对SQL的直接控制,同时提供对象和数据库之间的映射,降低了数据访问的复杂性。对于需要高度定制SQL的企业级应用,Ibatis 是一个非常合适的选择。

    MTK_Resource.rar_6226_MTK resource v1_MTK support_mtk boot _mtk

    MTK(Resource)rar_6226_MTK resource v1_MTK support_mtk boot _mtk 是一个针对MTK(MediaTek)平台的资源文件集合,主要服务于MTK芯片组的手机通讯功能。这个压缩包包含了针对不同型号,特别是6226和6225型号的定制...

    PyPI 官网下载 | flask_json_resource-0.2.12.tar.gz

    标题中的"PyPI 官网下载 | flask_json_resource-0.2.12.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的开源软件包,名为`flask_json_resource`,版本为0.2.12,且以tar.gz格式提供。这种格式是Linux和...

    wxa_resource_003129ae3ee99b6300c1a1d85f207dc7_armeabi-v7a.zip

    【标题】"wxa_resource_003129ae3ee99b6300c1a1d85f207dc7_armeabi-v7a.zip" 提供的资源包是一个针对ARMEABI-V7A架构的Android平台的组件集合。这个压缩包包含了一系列动态链接库(.so文件),这些库文件是专门为...

    xn_resourceeditor_source.rar_full_resource editor_www.4455xn.com

    总的来说,"xn_resourceeditor_source.rar_full_resource editor_www.4455xn.com" 提供的资源编辑器源代码是Delphi开发者的一个宝贵资源,它不仅可以帮助理解资源管理的底层实现,也能为个性化开发和学习资源编辑...

    Resource_Hacker_v5.1.6绿色版.zip

    这个过程对原始文件无损,因为Resource Hacker会创建一个新的文件,保留原文件的完整性。 6. **适用于多种应用场景**:Resource Hacker 在多种场景下都非常实用。例如,开发者在调试和优化软件时,可以快速修改资源...

    持久层框架ibatis学习笔记

    iBatis 是一款轻量级的持久层框架,它极大地简化了 Java 开发者在处理数据库交互时的工作量。相比于传统的 JDBC 编程方式,iBatis 能够减少大约 61% 的代码量。这主要是通过将 SQL 语句从 Java 代码中分离出来实现的...

    Aweme.diskwrites_resource-2022-11-10-171732.ips

    Aweme.diskwrites_resource-2022-11-10-171732.ips

    _humanResourceManagement-master_java_

    本项目“_humanResourceManagement-master_java_”就是一个使用Java进行开发的人力资源管理系统,它为我们提供了一个了解和学习Java Web应用开发的良好实践案例。 1. **Java Web开发基础**: Java Web开发通常涉及...

    ResourceKit-master_resource_mtk_

    资源套件(ResourceKit)是为了解决特定技术问题或提供工具集合而创建的软件包,通常包含各种实用程序、文档、示例代码等。在这个"ResourceKit-master_resource_mtk_"中,我们可以推断出它专注于MediaTek(MTK)平台的...

    10A_MMI_Resource_Training.zip_mtk

    标题 "10A_MMI_Resource_Training.zip_mtk" 暗示了这是一个与联发科(MTK)相关的多媒体接口(MMI)资源培训资料的压缩文件。这个压缩包包含了一个名为 "10A_MMI_Resource_Training.pdf" 的PDF文档,很可能是关于MTK...

    aggregated.diskwrites_resource-2022-04-19-035216.ips

    aggregated.diskwrites_resource-2022-04-19-035216.ips

    Matlab-code-for-Optimal-Resource-Allocation---LTE_LTE resource_T

    This file includes some sample matlab codes for resource allocation in LTE system.

    baby_android_resource

    baby_android_resource

    java_base_resource.rar

    这个资源包提供了一个全面的学习路径,从基础到进阶,从理论到实践。首先,你可以通过PPT教程系统学习Java的基本概念;然后,通过习题解答来检验自己的理解程度;最后,通过源代码实践,将所学知识转化为实际的编程...

    greedyAlg.zip_d2d_resource allocation_resource-allocation_zip

    Code D2D resource allocation

    d2d-master.zip_algorithm_resource allocation_resource-allocation

    Algorithms for d2d resource allocation in TDD based LTE HetNets

    chembl_webresource_client:用于访问ChEMBL API的官方Python客户端

    您不需要编译或安装任何化学信息学框架。 结果被缓存。 客户端处理与HTTPS协议的交互,并将所有结果缓存在本地文件系统中,以加快检索速度。 客户端抽象出所有与网络相关的任务,为最终用户提供了方便的界面,给人...

    resource-en+cn.zip

    在Java编程中,`.jar`文件是一种Java档案文件,它是Java平台的标准归档格式,用于集合多个类文件、相关的元数据和资源文件。这个文件可能包含了应用程序中的字符串、图片、音频文件等,这些内容都是以英文形式呈现,...

    LTE.zip_LTE_LTE matlab_LTE resource_lte allocation_matlab lte

    Resource allocation in LTE matlab code

Global site tag (gtag.js) - Google Analytics