`

mybatis向sql语句中传递多个参数

阅读更多

        一般情况下,我们用ibatis都是传入一个参数,这个参数可以为一个类,一个字符串,一个整型等等,例如:

<select id="selectpw" parameterClass="String" resultClass="String">
	select pwd from userinfo
	where userid=#userid#
</select>

        在方法体里可以用:password = (String)sqlMapClient.queryForObject("selectpw", userid)得到password。

        但是有时候我们却想从前面传入两个或多个参数,这时候怎么办呢?

一.用Map,在方法体里,我们把多个参数存放在map里,然后在前面获得它

Map map = new HashMap();
map.put("userid", userid);
map.put("name", name);
cardList = (List)sqlMapClient.queryForList("findByName", map);

        在SQL语句中:

<select id="findByName" parameterType="java.util.Map" resultClass="Card">
	select * from cardinfo where userid=#userid# and name like '$name$'
</select>

        这样就可以将多个参数传过去了。

 

二.用ibatis中的@Param

DAO层的方法:

public int deleteDataByCreateTime(@Param(value = "endTimeStr") String endTimeStr, @Param(value = "maxBatchNum") int maxBatchNum);

对应的Mapper.xml:

<delete id="deleteDataByCreateTime">
  	<![CDATA[
  		delete from table_name where create_time < #{endTimeStr,jdbcType=VARCHAR} limit #{maxBatchNum,jdbcType=INTEGER}
  	]]>
</delete>

        个人觉得这种方法比较好,能让开发者看到dao层方法就知道该传什么样的参数,比较直观,个人推荐用此种方案。

分享到:
评论

相关推荐

    mybatis 动态sql及参数传递

    在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的错误。 动态标签 if标签 if标签通常用那个胡where语句,update语句,insert...

    mybatis动态sql及参数的传递

    MyBatis支持传入多个参数,可以通过`@Param`注解指定参数名。 1. Map参数示例: ```java Map, Object&gt; params = new HashMap(); params.put("username", "John"); params.put("age", 30); List&lt;User&gt; users = ...

    详解MyBatis直接执行SQL查询及数据批量插入

    批量插入的优点在于,它将多个插入操作合并为一个SQL语句,减少了网络传输和数据库解析SQL的时间,提高了效率。 总结起来,MyBatis提供了一种灵活的方式,允许开发者直接执行SQL查询和批量插入数据。在使用时,需要...

    MyBatis传入多个参数的问题

    在使用MyBatis框架进行数据库操作时,经常会遇到需要向SQL查询语句传入多个参数的情况。本文将详细介绍几种常见的多参数传递方法,并结合具体的代码示例来帮助读者更好地理解和应用这些技巧。 #### 一、单个参数 ...

    MyBatis动态SQL,MyBatis批量插入(Oracle数据库)[收集].pdf

    在上面的示例中,如果传递了title参数,那么将生成一个包含title的where子句。如果没有传递title参数,那么将生成一个不包含title的where子句。 批量插入的应用 ------------- MyBatis还提供了批量插入的功能,...

    MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据

    - **参数化查询**:确保所有用户输入都通过`#{}`方式传递,而不是直接拼接到SQL语句中。 - **输入验证**:对用户输入进行严格的格式验证,确保只接受预期的字符。 - **最小权限原则**:数据库账户仅授予执行所需操作...

    Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf

    在Mybatis框架中,mapper.xml文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...

    MyBatis.pdf

    MyBatis 提供了多种参数传递方式,包括单个参数直接传递、多个参数封装成 Map 集合作为参数传递和封装成对象传递。 MyBatis 的事务控制 MyBatis 提供了两种事务控制方式:自动提交和手动提交。自动提交方式下,...

    Mybatis传递多个参数进行SQL查询的用法

    MyBatis是一个强大的Java持久层框架,它允许开发者将SQL语句直接写在XML映射文件中,提供了灵活的数据库操作方式。在处理多参数查询时,MyBatis提供了多种解决方案,包括通过Map和JavaBean传递参数。下面将详细介绍...

    MyBatis动态SQL详解.pdf

    在实际开发中,我们经常需要传递多个参数到SQL语句中,这时可以使用Map作为参数传递。下面是一个具体的例子: 假设我们有一个`UserMapper`接口,其中包含一个名为`getUserList`的方法,该方法接收一个Map类型的参数...

    MyBatis动态SQL是一项强大的特性,它允许我们在编写SQL语句时根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的

    为了保证安全性,应避免直接将用户输入拼接到SQL语句中,而是应该使用参数化查询的方式,即通过`#{}`将变量传递给SQL语句。 ### 总结 综上所述,MyBatis动态SQL是一种强大且灵活的技术,它能够帮助开发者更加高效...

    mybatis动态sql的一些相关资源

    SQL注入是指攻击者通过向SQL语句中插入恶意代码,达到非法获取数据或者破坏数据库的目的。为了避免此类问题的发生,开发人员在使用动态SQL时应注意以下几点: 1. **合理使用预编译语句:** - 使用预编译语句...

    mybatis多条件查询处理方案(查询条件为数据库字段非传递参数).pdf

    在MyBatis中,多条件查询是常见的需求,特别是在数据检索和过滤时。通常,我们会根据传递的参数来决定查询的条件。然而,有时我们可能需要根据数据库字段本身的状态来进行查询,而不是依赖于传递的参数。针对这种...

    mybatis动态sql之Map参数的讲解

    MyBatis动态SQL中参数类型可以是Map类型的,在实际开发中,我们经常需要在Mapper文件中传递Map参数,以实现动态SQL的构建。今天,我们将详细讲解MyBatis动态SQL之Map参数的使用。 首先,让我们看一个简单的示例。在...

    mybatis基础讲解第二天(逆向工程、动态sql、多参数传递).zip

    标签是Mabits动态SQL中最常用的一个标签之一,它的作用是根据给定条件包含或排除不同的部分,以生成不同的SQL语句。在XML文件中,标签通常被嵌套在其他标签内,如、和等标签内,用于控制生成的SQL语句的结构和内容。...

    解析Mybatis连续传递多个参数的方法

    在连续传递多个参数的情况下,可以将多个参数名依次放置在SQL语句中,MyBatis会按照顺序进行替换。比如,我们有三个参数`param1`、`param2`和`param3`,可以写成如下形式: ```sql SELECT * FROM A WHERE A.id=#{...

    demo.zip_Mybatis注解时的sql语句拼接方法_SSM 注解_SSM分页查询_mybatis注解分页_基于ssm

    `demo.zip`中的内容可能是解决这个问题的一种方案,它提供了一种在MyBatis注解中进行SQL语句拼接的方法。 首先,让我们深入理解MyBatis注解的基础知识。MyBatis的注解主要分为以下几种: 1. `@Select`:用于标记一...

    mybatis执行自定义sql工具包

    `mybatis-helper`工具包提供了一种动态的方式来处理这些情况,它允许开发者动态读取SQL语句,并在运行时根据业务需求动态编译和传递参数。 首先,让我们了解一下如何在MyBatis中执行自定义SQL。在MyBatis中,可以...

    mybatis-demo9-方法多参数@Param.zip

    `@Param`注解就是为了解决这个问题而设计的,它提供了一种方式来标识和传递多个参数。 2. **使用方法** 在一个Mapper接口方法中,如果需要传入两个或更多参数,可以给每个参数添加`@Param`注解,并指定一个唯一的...

Global site tag (gtag.js) - Google Analytics