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代码自动生成的相关知识点,以及如何利用工具提高开发效率。 1. Ibatis简介: Ibatis作为轻量级的ORM(对象关系映射)框架,其核心功能是通过XML或注解的方式将Java对象与SQL语句进行映射...
【ibatis代码自动生成代码程序】是一个实用工具,旨在帮助开发者快速生成基于iBATIS框架的Java代码。iBATIS,作为一个数据访问层框架,它允许程序员将SQL语句与Java代码分离,提供了一种简单但强大的方式来处理...
在这个场景中,我们讨论的是一个针对IBatis的代码生成工具,它能帮助开发者快速生成与IBatis框架相配套的XML配置文件。 这个名为"IBatis 代码生成工具"的程序是基于.NET平台构建的,这意味着它利用了Microsoft的...
注:附带模板,使用手册,环境配置等。 1)、数据库类型选择:目前支持Oracle和Mysql两种数据库语句的生成,默认是Oracle。 2)、要生成建表语句, a)、请在“数据库定义Excel文件路径”中选择对应的文件, ...
ibatis代码生成工具。iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目。于2010年6月16号被谷歌托管,改名为MyBatis。是一个基于SQL映射支持Java和.NET的持久层...
ibatIS代码生成插件是一款高效实用的开发工具,它主要应用于Java开发环境中,通过自动化的方式帮助开发者快速生成常见的CRUD(创建、读取、更新、删除)操作代码,极大地提高了开发效率。这款插件基于Abator框架,...
自动生成ibatis所需文件,达到快速查询,减少工作量的效果 CorpChannelDAO.java CorpChannelDAOimpl.java CorpChannel.java CorpChannelExample.java game_channel__corp_channel_SqlMap.xml 详情步骤请见...
在这个"Castle+ibatis代码示例"中,我们将深入探讨这两个框架如何协同工作,以实现更加灵活、可维护的软件架构。 首先,让我们了解Castle项目。Castle Project是一个.NET平台上的开源开发工具集,它包含多个组件,...
自动生成action- mapper层所有增删改查代码,使用方便简单
【标题】"IBATIS3代码生成器"是一款专为基于IBATIS3框架的项目设计的工具,它能够自动生成常见的SQL映射文件、Java DAO接口和实现类,大大提高了开发效率,降低了手动编写这些代码的工作量。该工具的核心理念是通过...
《深入解析iBatis源代码》 iBatis,作为一个轻量级的持久层框架,以其灵活、易用的特点在Java开发中占据了重要的地位。它将SQL与Java代码分离,提高了开发效率,降低了维护难度。本文将从iBatis源代码的角度出发,...
本工具的主要功能是:根据您指定的数据库地址选择表或自定义属性信息(文件),生成对应的pojo类和ibatis配置文件; 3. 目前支持的较好的是mysql数据库,oracle的也支持,但还没经过测试,故暂不提供此功能选项...
### 利用ibatis框架生成代码:自动化与效率提升 #### 核心概念与优势解析 **ibatis**,现在通常被称为**MyBatis**,是一个支持普通SQL查询、存储过程以及高级映射的优秀开源持久层框架。ibatis消除了几乎所有的...
iBatis代码生成器是一款基于Java的开源框架,主要用于简化数据库操作,它将SQL语句与Java代码分离,提供了一种灵活的映射机制。在Java应用开发中,使用iBatis可以极大地提高开发效率,特别是在处理大量数据库交互时...
MyBatis和iBatis是两个著名的Java持久层框架,它们都致力于简化数据库与Java代码之间的交互。在Java开发中,代码生成工具可以极大地提高开发效率,减少手动编写重复的CRUD(创建、读取、更新、删除)操作。本压缩包...
**Ibatis 源代码详解** Ibatis 是一个在Java应用程序中用于数据库操作的开源、半自动化的ORM(对象关系映射)框架。它允许开发者将SQL语句直接写入XML配置文件,使得数据访问层与业务逻辑层解耦,提高了代码的可...
《Ibatis代码自动生成工具—Abator的应用详解》 Ibatis作为一款轻量级的Java持久层框架,因其灵活的SQL映射机制深受开发者喜爱。然而在实际开发中,面对大量的数据库表,手动编写对应的Java实体类、Mapper接口以及...
`iBatis` 提供了一种将SQL语句与Java代码解耦的方法,通过XML或注解来配置和映射原生信息,使开发者能够编写动态、灵活的SQL。 `MyBatis` 是 `iBatis` 的后续版本,由社区发展而来。它进一步简化了数据库操作,增强...
绝对牛的ibatis代码生成(也可以单独用于pojo生成) 可以选择某些表,或者全部表来生成pojo和sqlmap。 可以指定生成文件的编码。 傻瓜式生成,不用任何配置,只需在窗口填写一些必要的信息。 目前最牛的ibatis代码...
在"Ibatis源代码(ibatis-src.zip)"中,我们可以深入理解其内部机制和设计思想。 首先,`release.txt`通常包含项目发布的信息,如版本号、发布日期以及可能的更新日志。这为我们提供了Ibatis当前版本的详细背景信息...