MyBatis之接口绑定方案及多参数传递
1.说明
所谓的MyBatis接口绑定,指的是实现创建一个接口后,把mapper.xml 由mybatis 生成接口的实现类,通过调用接口对象就可以获取mapper.xml 中编写的sql。在SSM框架中,MyBatis 和Spring 整合时使用的就是这个方案。
2.实现步骤
- 创建一个接口(Interface)
- 创建的接口所在包名和接口名必须与mapper.xml文件中标签的namespace属性值相同
- 接口中方法名和mapper.xml配置文件中标签的id属性相同
- 在mybatis.xml全局配置文件中配置标签,使得MyBatis进行扫描接口和mapper.xml
3.代码实现步骤:
- 在mybatis.xml 全局配置文件中下使用
<mappers>
<package name="com.susu.mapper"/>
</mappers>
- 在com.susu.mapper 下新建接口
public interface LogMapper {
List<Log> selAll();
}
- 在com.susu.mapper 新建一个LogMapper.xml
注意:
- namespace 必须和接口的全限定路径(包名+类名)一致
- id 值必须和接口中方法名相同
- 如果接口中方法为多个参数,可以省略parameterType
<mapper namespace="com.susu.mapper.LogMapper">
<select id="selAll" resultType="log">
select * from log
</select>
</mapper>
4.多参数实现办法
- 在接口中声明方法
List<Log> selByAccInAccout(String accin,String accout);
- 在mapper.xml 中添加
#{}中使用 0,1,2 或param1,param2
<!-- 当多参数时,不需要写parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{0} and accout=#{1}
</select>
5. 可以使用注解方式
- 在接口中声明方法
List<Log> selByAccInAccout(@Param("accin") String accin123,@Param("accout") String accout3454235);
mybatis 把参数转换为map 了,其中@Param("key") 参数内容就是map 的value
- 在mapper.xml 中添加
#{} 里面写@Param(“内容”)参数中内容
<!-- 当多参数时,不需要写parameterType -->
<select id="selByAccInAccout" resultType="log" >
select * from log where accin=#{accin} and accout=#{accout}
</select>
MyBatis之接口绑定方案及多参数传递的更多相关文章
- mybatis之接口绑定
接口绑定方案 mybatis中,提供了一套接口绑定方案,程序员可以提供一个接口,然后提供对应接口的一个mapper.xml文件.MyBatis会自动将接口和xml文件进行绑定.实际上就是mybatis ...
- 什么是 MyBatis 的接口绑定?有哪些实现方式?
接口绑定,就是在 MyBatis 中任意定义接口,然后把接口里面的方法和 SQL 语句绑 定, 我们直接调用接口方法就可以,这样比起原来了 SqlSession 提供的方法我们可 以有更加灵活的选择和 ...
- mybatis 使用接口绑定
使用selectList,selectOne..的缺陷 刚开始学习mybatis的时候,使用selectList或者selectOne,传入要调用的mapper,如果又参数要传递的话,就需要将参数进行 ...
- mybatis 接口绑定 和 动态SQL
一.MyBatis 接口绑定方案及多参数传递 1.作用:实现创建一个接口后把mapper.xml由mybatis生成接口的实现类,通过调用接口对象就可以获取mapper.xml中编写的sql 2.后面 ...
- 接口的绑定方案和动态SQL
1. 接口绑定方案 MyBatis中, 提供了一套接口绑定方案. 程序员可以提供一个接口, 然后提供对应接口的一个mapper.xml文件. MyBatis会自动将接口和xml文件进行绑定. 实际上就 ...
- Mybatis 接口绑定
MyBatis的接口绑定: 参考链接:http://blog.csdn.net/chris_mao/article/details/48836039 接口映射就是在IBatis中任意定义接口,然后把接 ...
- MyBatis系列(二) MyBatis接口绑定与多参数传递
前言 通过上一篇博文的,已经可以做到通过MyBatis连接数据库,现在再来介绍一种方法通过接口绑定SQL语句. 不使用接口绑定的方式 不使用接口绑定的方式,是通过调用SqlSession中的selec ...
- Mybatis实现了接口绑定,使用更加方便。
1.Mybatis实现了接口绑定,使用更加方便. 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生 ...
- C++ Redis mset 二进制数据接口封装方案
C++ Redis mset 二进制数据接口封装方案 需求 C++中使用hiredis客户端接口访问redis: 需要使用mset一次设置多个二进制数据 以下给出三种封装实现方案: 简单拼接方案 在r ...
随机推荐
- windows10 双系统安装后,grub2 引导修复(亲自实验);grub2 命令行 手动加载内核;fedora 29 系统grub2引导修复;
之前在本机有fedora 29的系统,但是由于错误安装,把windows10 启动安装到 linux 所在的硬盘中,导致原来的 efi中的grub启动被破坏,不能进入到linux中:我首先通过磁盘精灵 ...
- Shell—定时任务(crontab)
如何让shell脚本每天定时执行? 1.新建需要定时执行的shell脚本,这里为date.sh脚本. #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/u ...
- 深入理解 Java 枚举
- NPM 问题汇总
1. Error: setuid user id does not exist Error: setuid user id does not exist at /usr/local/lib/node_ ...
- Leetcode823 : 因子二叉树问题
问题描述 给定一个数组,数组中的数不重复,且均大于1.要求使用数组中的数构建二叉树,每个数字可以被重复使用,除了叶子节点,每个节点的值等于其子节点的乘积,求构建二叉树的数量,返回的结果mod 10** ...
- C++之typename和typedef关键字
1. typename的作用 template <typename Distance> class KDTreeIndex : public NNIndex<Distance> ...
- Git 原理简谈
Git 本身是一个对 reference 进行管理的数据库,reference 指的是对原始数据的引用.通过对原始数据的追踪,那么就可以做到对版本的控制.Git 使用一个 DAG 存储了整个的refe ...
- 我用 Python 破解了同事的加密压缩包!
作者 | 朱小五 又是一杯奶茶. 事情的经过是这样的: 又是奶茶,行吧快点开工,争取李大伟回来之前搞定 李大伟说是6位数字密码 那么我们可以利用python生成全部的六位数字密码 #生成从 ...
- 【译】ModSecurity
Preface 本篇译ModSecurity 主页的自身介绍. ModSecurity is an open source, cross-platform web application firewa ...
- 如何抓取 framework input 事件相关 log
出现事件输入相关的问题时, 建议先 followhttp://429564140.iteye.com/blog/2355405来检测对应的设备是否有响应输入 如果没有响应输入,则可能是 driver ...