1.单一基本类型参数(String,int等)

单一的基本类型参数,将对应语句中的parameterType的值与参数的类型相同。然后直接 用“#{参数名}” 来获取

java代码

//String类型的参数 username
public User findUser(String usernumber) {
return (User) sqlSessionTemplate.selectOne("findUserByUsernumber", usernumber);
}

xml代码

//对应paramterType="string"
<select id="findUserByUsernumber" parameterType="string" resultType="User">
select * from user where usernumber = #{usernumber}
</select>

2.Java实体类型参数

java实体类型参数:将parameterType的值设为对应的 Java实体类,然后用#{类的属性名}来获取

java代码

//User实体类
public void updateUser(User user) {
sqlSessionTemplate.update("updateUser", user);
}

xml代码

//将parameterType类型指向对应的类的具体地址(包名+类名),也可指向typeAlias中的别名(在mybatis.xml)文件中
<update id="updateUser" parameterType="User" >
update user set username=#{username},loginname=#{loginname},loginpassword=#{loginpassword},sex=#{sex},birthday=#{birthday} where usernumber=#{usernumber}
</update>

3.多个基本类型参数
    在具体业务关系中,往往需要传多个参数,比如:登录----->用户名+密码

①利用map进行传参

将多个参数设置到map里,用#{键值}来取

public User findUser(String loginname, String loginpassword) {
// TODO Auto-generated method stub
Map<String,String> map=new HashMap<String, String>();
map.put("loginname", loginname);
map.put("loginpassword", loginpassword);
return (User) sqlSessionTemplate.selectOne("loginUser", map); }
       <select id="loginUser" parameterType="map" resultType="User">
select * from user where loginname=#{loginname} and loginpassword=#{loginpassword}
</select>

②利用注解方式

使用@Param("参数名")注解的方式,在sql语句中直接用#{参数名}取出

public User findUser2( @Param("loginname")String loginname, @Param("password")String password);
         <select id="findUser2" parameterType="string" resultType="User">
select * from user where loginname=#{loginname} and password=#{password}
</select>

③利用#{0.1.2....}来取

#{0}表示第一个参数,#{1}表示第二个参数,以此类推

public User findUser2(String loginname,String password);
       <select id="findUser2" parameterType="string" resultType="User">
select * from user where loginname=#{0} and password=#{1}
</select>

 

MyBatis的SQL语句映射文件详解(三)----多参数传递的几种方式的更多相关文章

  1. MyBatis的SQL语句映射文件详解

    SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用 < ...

  2. MyBatis的SQL语句映射文件详解(二)----增删改查

    1.select语句 public List<User> findUser() {  // TODO Auto-generated method stub    List users= ( ...

  3. Mybatis的配置文件和映射文件详解

    一.Mybatis的全局配置文件 1.SqlMapConfig.xml是mybatis的全局配置文件,配置内容如下: properties(属性) settings(全局配置参数) typeAlias ...

  4. Mybatis SQL映射文件详解

    Mybatis SQL映射文件详解 mybatis除了有全局配置文件,还有映射文件,在映射文件中可以编写以下的顶级元素标签: cache – 该命名空间的缓存配置. cache-ref – 引用其它命 ...

  5. MyBatis 映射文件详解(六)

    MyBatis 配置文件类型 MyBatis配置文件有两种类型,如下: 全局配置文件(如 mybatis-config.xml) Mapper XML 映射文件(如 UserMapper.xml) 上 ...

  6. MyBatis学习(二)、SQL语句映射文件(2)增删改查、参数、缓存

    二.SQL语句映射文件(2)增删改查.参数.缓存 2.2 select 一个select 元素非常简单.例如: <!-- 查询学生,根据id --> <select id=" ...

  7. MyBatis学习(二)、SQL语句映射文件(1)resultMap

    二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...

  8. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

  9. MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    目录(?)[-] 二SQL语句映射文件1resultMap resultMap idresult constructor association联合 使用select实现联合 使用resultMap实 ...

随机推荐

  1. python,函数式编程

    函数式编程: 特点:允许传递的参数是函数,且允许返回一个函数. 由于Python允许使用变量,因此,Python不是纯函数式编程语言,同样的输入可能输出不同,有副作用.纯函数式编程语言没有变量,输入和 ...

  2. mac 安装php redis扩展

    git clone git://github.com/nicolasff/phpredis.git cd ./phpredis phpize 如果报 Cannot find autoconf. Ple ...

  3. day-8 python自带库实现ID3决策树算法

    前一天,我们基于sklearn科学库实现了ID3的决策树程序,本文将基于python自带库实现ID3决策树算法. 一.代码涉及基本知识 1. 为了绘图方便,引入了一个第三方treePlotter模块进 ...

  4. AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程

    AMR无限增发代币至任意以太坊地址的漏洞利用及修复过程 0x00 项目简述 Ammbr主要目标是打造具有高度弹性且易于连接的分布式宽带接入平台,同时降低上网相关成本.Ammbr打算创建具有人工智能和智 ...

  5. lintcode-63-搜索旋转排序数组 II

    63-搜索旋转排序数组 II 跟进"搜索旋转排序数组",假如有重复元素又将如何? 是否会影响运行时间复杂度? 如何影响? 为何会影响? 写出一个函数判断给定的目标值是否出现在数组中 ...

  6. 5for Java

    ① 从字符串“耿丹计算机Java20170320”中提取日期 public class Xx1 { /** * @param args */ public static void main(Strin ...

  7. 将CRUD封装到一个工具类中

    package org.zln.hibernate.utils; import org.hibernate.Session; import org.hibernate.SessionFactory; ...

  8. SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase

    sqlserver 插入数据的时候 插入失败,报错内容为 “SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, ...

  9. hdu 3486 Interviewe (RMQ+二分)

    Interviewe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  10. 2017 Multi-University Training Contest - Team 3 RXD and functions(NTT)

    题解: 我是参考的 http://blog.csdn.net/qq_32570675/article/details/76571666 这一篇 orz 原来可以这么变换,涨姿势 代码: #includ ...