`
rrsy23
  • 浏览: 186312 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ibatis代码垃圾还是敏捷

阅读更多

ibaits代码主要是以下几个类:

SqlMapClient 接口

SqlMapClientImpl 实现SqlMapClient

  提供CRUD等方法

SqlMapExecutorDelegate其实SqlMapClientImpl 的CRUD方法都是由此类委托的

SqlExecutor这个类是执行的核心SqlMapExecutorDelegate的方法其实最后调用SqlExecutor的方法

 

---------------------------

 SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);

 

 public static SqlMapClient buildSqlMapClient(Reader reader) {
    return new SqlMapConfigParser().parse(reader);       //看SqlMapConfigParser类parse方法
  }

 

  public SqlMapClient parse(Reader reader) {
    try {
      usingStreams = false;

      parser.parse(reader);
      return state.getConfig().getClient();//关键
    } catch (Exception e) {
      throw new RuntimeException("Error occurred.  Cause: " + e, e);
    }
  }

----------------------------------------------------------------------------

 SqlMapConfiguration config = new SqlMapConfiguration();//硬编码

 

 public SqlMapConfiguration() {
    errorContext = new ErrorContext();
    delegate = new SqlMapExecutorDelegate();
    typeHandlerFactory = delegate.getTypeHandlerFactory();
    client = new SqlMapClientImpl(delegate);
    registerDefaultTypeAliases();
  }
构造器更夸张

 

没有提供方法注入delegate

 

 public SqlMapExecutorDelegate() {
    mappedStatements = new HashMap();
    cacheModels = new HashMap();
    resultMaps = new HashMap();
    parameterMaps = new HashMap();

    sqlExecutor = new SqlExecutor();
    typeHandlerFactory = new TypeHandlerFactory();
    dataExchangeFactory = new DataExchangeFactory(typeHandlerFactory);
  }

每天提供注入SqlExecutor类自己实现就要麻烦注入了!

 

O(∩_∩)O~  不知道ibatis设计者为什么这样做

但是 代码 基本 都在 构造器中 new硬编码的 想注入很难

 

不过可以自己实现类extends以上类 然后想办法反射注入

 

在构造SqlMapClient 对象时间注入

 

当然也可以利用spring管理不过自己也要改造ibatis

 

下次写代码 来 说明这个问题

 

不过建议ibatis能够 提供构造器 和setXX注入相关 来扩展!

 

免得反射,或者我们自己改造源代码 不好升级

分享到:
评论

相关推荐

    ibatis代码自动生成

    本篇文章将深入探讨Ibatis代码自动生成的相关知识点,以及如何利用工具提高开发效率。 1. Ibatis简介: Ibatis作为轻量级的ORM(对象关系映射)框架,其核心功能是通过XML或注解的方式将Java对象与SQL语句进行映射...

    ibatis代码自动生成代码程序

    【ibatis代码自动生成代码程序】是一个实用工具,旨在帮助开发者快速生成基于iBATIS框架的Java代码。iBATIS,作为一个数据访问层框架,它允许程序员将SQL语句与Java代码分离,提供了一种简单但强大的方式来处理...

    IBatis 代码生成工具

    在这个场景中,我们讨论的是一个针对IBatis的代码生成工具,它能帮助开发者快速生成与IBatis框架相配套的XML配置文件。 这个名为"IBatis 代码生成工具"的程序是基于.NET平台构建的,这意味着它利用了Microsoft的...

    Ibatis代码生成器

    注:附带模板,使用手册,环境配置等。 1)、数据库类型选择:目前支持Oracle和Mysql两种数据库语句的生成,默认是Oracle。 2)、要生成建表语句, a)、请在“数据库定义Excel文件路径”中选择对应的文件, ...

    ibatis代码生成工具

    ibatis代码生成工具。iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和.NET的持久层...

    ibatIS代码生成插件

    ibatIS代码生成插件是一款高效实用的开发工具,它主要应用于Java开发环境中,通过自动化的方式帮助开发者快速生成常见的CRUD(创建、读取、更新、删除)操作代码,极大地提高了开发效率。这款插件基于Abator框架,...

    ibatis代码自动生成工具项目

    自动生成ibatis所需文件,达到快速查询,减少工作量的效果 CorpChannelDAO.java CorpChannelDAOimpl.java CorpChannel.java CorpChannelExample.java game_channel__corp_channel_SqlMap.xml 详情步骤请见...

    Castle+ibatis代码示例

    在这个"Castle+ibatis代码示例"中,我们将深入探讨这两个框架如何协同工作,以实现更加灵活、可维护的软件架构。 首先,让我们了解Castle项目。Castle Project是一个.NET平台上的开源开发工具集,它包含多个组件,...

    ibatis代码生成器

    自动生成action- mapper层所有增删改查代码,使用方便简单

    IBATIS3代码生成器

    【标题】"IBATIS3代码生成器"是一款专为基于IBATIS3框架的项目设计的工具,它能够自动生成常见的SQL映射文件、Java DAO接口和实现类,大大提高了开发效率,降低了手动编写这些代码的工作量。该工具的核心理念是通过...

    ibatis源代码项目

    《深入解析iBatis源代码》 iBatis,作为一个轻量级的持久层框架,以其灵活、易用的特点在Java开发中占据了重要的地位。它将SQL与Java代码分离,提高了开发效率,降低了维护难度。本文将从iBatis源代码的角度出发,...

    ibatis自动生成代码工具

    本工具的主要功能是:根据您指定的数据库地址选择表或自定义属性信息(文件),生成对应的pojo类和ibatis配置文件; 3. 目前支持的较好的是mysql数据库,oracle的也支持,但还没经过测试,故暂不提供此功能选项...

    利用ibatis 生成代码

    ### 利用ibatis框架生成代码:自动化与效率提升 #### 核心概念与优势解析 **ibatis**,现在通常被称为**MyBatis**,是一个支持普通SQL查询、存储过程以及高级映射的优秀开源持久层框架。ibatis消除了几乎所有的...

    iBatis代码生成器

    iBatis代码生成器是一款基于Java的开源框架,主要用于简化数据库操作,它将SQL语句与Java代码分离,提供了一种灵活的映射机制。在Java应用开发中,使用iBatis可以极大地提高开发效率,特别是在处理大量数据库交互时...

    mybatis和ibatis代码生成工具

    MyBatis和iBatis是两个著名的Java持久层框架,它们都致力于简化数据库与Java代码之间的交互。在Java开发中,代码生成工具可以极大地提高开发效率,减少手动编写重复的CRUD(创建、读取、更新、删除)操作。本压缩包...

    ibatis源代码

    **Ibatis 源代码详解** Ibatis 是一个在Java应用程序中用于数据库操作的开源、半自动化的ORM(对象关系映射)框架。它允许开发者将SQL语句直接写入XML配置文件,使得数据访问层与业务逻辑层解耦,提高了代码的可...

    Ibatis代码自动生成工具—Abator应用

    《Ibatis代码自动生成工具—Abator的应用详解》 Ibatis作为一款轻量级的Java持久层框架,因其灵活的SQL映射机制深受开发者喜爱。然而在实际开发中,面对大量的数据库表,手动编写对应的Java实体类、Mapper接口以及...

    ibatis mybatis crud 完整代码

    `iBatis` 提供了一种将SQL语句与Java代码解耦的方法,通过XML或注解来配置和映射原生信息,使开发者能够编写动态、灵活的SQL。 `MyBatis` 是 `iBatis` 的后续版本,由社区发展而来。它进一步简化了数据库操作,增强...

    绝对牛的ibatis代码生成(也可以单独用于pojo生成)

    绝对牛的ibatis代码生成(也可以单独用于pojo生成) 可以选择某些表,或者全部表来生成pojo和sqlmap。 可以指定生成文件的编码。 傻瓜式生成,不用任何配置,只需在窗口填写一些必要的信息。 目前最牛的ibatis代码...

    Ibatis源代码(ibatis-src.zip)

    在"Ibatis源代码(ibatis-src.zip)"中,我们可以深入理解其内部机制和设计思想。 首先,`release.txt`通常包含项目发布的信息,如版本号、发布日期以及可能的更新日志。这为我们提供了Ibatis当前版本的详细背景信息...

Global site tag (gtag.js) - Google Analytics