`

ibatis参数传递小技巧

    博客分类:
  • Java
阅读更多
使用ibatis操作数据库的时候, 如果这个操作需要一些参数, 一般我们会使用map将这些参数封装起来, 然后调用SqlMapClient或者SqlMapClientTemplate的update, insert, queryForXxx方法. 每次构造这个map, 重复性的东东比较多, 于是改进了一下. 在基类DAO中构建了一个内部类:
    /**
    * 用来封装多个参数, 并实现连接操作
    * 
     */
    protected static class Parameter extends HashMap<String, Object> {
        private static final long serialVersionUID = -1756000414146772526L;

        public Parameter addParameter(String key, Object value) {
            this.put(key, value);
            return this;
        }
    }

然后在基类中加一个createParameter()方法用来给子类调用, 添加key-value的参数:
    /**
     * 用于支持连写
     * @param key
     * @param value
     * @return
     */
    protected static Parameter createParameter(String key, Object value) {
        return new Parameter().addParameter(key, value);
    }

具体使用:
    public int update(String id, int quantity) throws DAOException {
        Parameter parameter = createParameter("id", id)
                .addParameter("quantity", quantity);
        return executeUpdate(getSqlId("update"), parameter);
    }

如果是原来的话, 需要这样写:
    public int update(String id, int quantity) throws DAOException {
        Map<String, Object> parameter = new HashMap<String, Object>();
                parameter.put("id", id);
                parameter.put("quantity", quantity);
        return executeUpdate(getSqlId("update"), parameter);
    }

其实也没什么, 只是有时候我这个人比较懒, 少打了几个字而已.
0
0
分享到:
评论
2 楼 macrochen 2009-10-31  
是的, 可读性需要结合合适的排版
引用

如果我要加多个参数就会显的有点难看,再可读性不好!

 Parameter parameter = createParameter("id", id)     
             .addParameter("a", a)      
             .addParameter("b", b)      
             .addParameter("c", c);     
     return executeUpdate(getSqlId("update"), parameter); 
1 楼 pan_java 2009-10-30  
public int update(String id, int quantity) throws DAOException {   
    Parameter parameter = addParameter("id", id)   
            .addParameter("quantity", quantity);   
    return executeUpdate(getSqlId("update"), parameter);   
}  


如果我要加多个参数就会显的有点难看,再可读性不好!

相关推荐

    ibatis教程 输入参数详解

    标题:ibatis教程 输入参数详解 描述:ibatis教程 输入参数详解 ibatis快速入门 标签:ibatis list 部分内容:这段部分提供了ibatis用户指南的警告,关于从文档复制代码的问题,以及ibatis的概述、如何开始使用...

    ibatis的多参数查询.doc

    - 定义一个JavaBean类,包含所有需要传递的参数。 - 在SQL映射文件中指定该JavaBean作为参数类。 **示例代码:** 假设定义了一个名为`User`的JavaBean,其中包含`uid`和`pwd`两个字段。 **SQL映射文件:** ```...

    iBATIS实例小程序

    通过对给定的iBATIS实例小程序的分析,我们可以了解到iBATIS框架的基本用法,包括SQL映射文件的结构、参数绑定以及结果映射等方面的知识点。这对于理解和应用iBATIS进行数据库操作具有重要意义。通过掌握这些知识点...

    ibatis总结 ibatis ibatis ibatis ibatis

    在Ibatis中,参数可以通过`#`或`$`符号传递。例如,`select * from PRODUCT where PRD_CAT_ID = #{value}`中的`#{value}`是预编译参数,能有效防止SQL注入。 总结,Ibatis提供了灵活的SQL映射机制,使得开发人员...

    iBatis一个小项目

    iBatis是一个轻量级的Java持久层框架,它的核心理念是将SQL语句与Java代码分离,使得开发者可以更加灵活地控制SQL的执行。...实践是检验真理的唯一标准,希望这个小项目能帮助你在实际操作中更好地掌握iBatis这一利器。

    ibatis小例子Demo

    这个"ibatis小例子Demo"是为了帮助初学者快速理解和掌握Ibatis的核心功能和基本用法。 Ibatis的主要特点包括: 1. **XML配置文件**:Ibatis通过XML配置文件来定义SQL语句、参数映射和结果映射,使得SQL与Java代码...

    ibatis demo,ibatis例子,ibatis示例

    5. **参数映射**:Ibatis支持多种方式传递参数,如Map、POJO对象、注解等。例如,使用`@Param`注解可以指定参数名,或者在XML中使用`#{paramName}`来引用参数。 6. **结果映射**:结果映射允许我们将查询结果自动...

    ibatis与存储过程(带输出参数的应用)

    本主题将深入探讨如何在Ibatis中使用存储过程,特别是涉及带有输出参数的存储过程。 Ibatis,由MyBatis的前身发展而来,它是一个轻量级的ORM(对象关系映射)框架,允许开发者编写SQL语句并与Java对象进行绑定,而...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    `org.apache.ibatis.executor.parameter.ParameterHandler`实现了这个功能,它根据传递的参数对象,动态地设置SQL的参数。 七、插件机制 iBatis的插件机制允许用户自定义拦截器,实现对Executor、StatementHandler...

    ibatis中输入输出各种类型的参数分析及#与$区别

    在iBatis中,输入输出参数类型的支持非常丰富,几乎涵盖了Java中常见的所有基本数据类型及其封装类,同时也支持自定义JavaBean类型的传递。这使得开发者在处理数据库操作时具有很高的灵活性。 - **基本数据类型**: ...

    ibatis总结的小东西

    ibatis总结的小东西ibatis总结的小东西ibatis总结的小东西ibatis总结的小东西ibatis总结的小东西ibatis总结的小东西ibatis总结的小东西ibatis总结的小东西

    ibatis的一个小例子

    【标题】:“ibatis的一个小例子” 在Java Web开发领域,Ibatis(现已被更名为MyBatis)是一款广泛使用的持久层框架。它提供了一个灵活的SQL映射框架,使开发者可以将SQL语句与Java代码分离,从而实现数据访问层的...

    ibatis api 帮助文档+IBATIS 开发文档

    3. **ParameterMap**和**ParameterValuePair**:用于传递SQL查询参数。ParameterMap定义了参数和它们的映射关系,ParameterValuePair则是单个参数值对。 4. **ResultMap**:定义了结果集如何映射到Java对象,支持...

    IBATIS_IN_ACTION

    - **使用映射语句**:掌握如何定义和使用SQL映射语句,包括参数传递、结果映射等关键概念。 - **非查询语句执行**:学习如何执行INSERT、UPDATE和DELETE等非查询类型的SQL语句。 - **高级查询技术**:探索更复杂的...

    Ibatis

    2.3 参数绑定:调用 SqlSession 的方法时,传入参数对象或 Map,Ibatis 会自动将参数映射到 SQL 语句中。 2.4 结果处理:查询操作返回的结果会被自动映射到 Java 对象,更新操作返回受影响的行数。 **3. 动态 SQL*...

    ibatis

    同时,它还支持简单类型、复杂类型(如Map或自定义对象)的参数传递。 3. 结果映射:通过`&lt;resultMap&gt;`标签,可以定义如何将查询结果映射到Java对象,包括一对一、一对多、多对一、自定义类型转换等多种映射方式。...

    使用ibatis写的小项目

    iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。iBatis可以被看作是一个半自动化 ORM(对象关系映射)框架,它对JDBC的操作进行了封装,使得开发者能够将注意力集中在SQL语句上,而不需要处理大量的...

    Ibatis入门例子,Ibatis教程

    Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作,极大地提高了开发效率。在本教程中,我们将通过一个简单的Ibatis入门例子,带你逐步了解并掌握这个强大的框架。 首先,我们需要在项目中引入...

    .net中使用iBATIS的小例子

    `User.SelectUser`对应了前面提到的SQL查询ID,`userId`是传递给SQL查询的参数。 总结起来,这个例子向我们展示了如何在.NET项目中设置iBATIS,创建SQL映射文件,以及如何在业务代码中调用iBATIS执行SQL查询并将...

    ibatis api,ibatis文档,ibatis说明文档

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,将数据库操作与业务逻辑解耦,使得开发者可以更专注于业务逻辑的实现,而无需关心繁琐的SQL语句编写。本篇文章将深入探讨Ibatis API、文档...

Global site tag (gtag.js) - Google Analytics