Mybatis框架中Mapper文件传值参数获取。【Mybatis】
1、参数个数为1个(string或者int)
dao层方法为以下两种:
- /**
- * 单个int型
- */
- public List<UserComment> findByDepartmentId(int dapartmentId);
- /**
- * 单个string型
- */
- public Source findByTitle(String title);
对应的Mapper取值:
取值时应当注意,参数名字应该与dao层传入的参数名字相同。
- /*单个int型*/
- <select id="findByDepartmentId" resultType="com.bonc.wechat.entity.publicserver.UserComment">
- select * from wx_user_comment where
- department_id=#{departmentId}
- order by createtime desc;
- </select>
- /*单个string型*/
- <select id="findByTitle" parameterType="java.lang.String" resultType="com.bonc.wechat.entity.publicserver.Source">
- select * from wx_source where
- title=#{title};
- </select>
- /*****或者直接使用通用方法获取参数*****/
- <select id="findByDepartmentId" resultType="com.bonc.wechat.entity.publicserver.UserComment">
- select * from wx_user_comment where
- department_id=#{_parameter}
- order by createtime desc;
- </select>
- <select id="findByTitle" parameterType="java.lang.String" resultType="com.bonc.wechat.entity.publicserver.Source">
- select * from wx_source where
- title=#{_parameter};
- </select>
2、参数个数为多个。
dao层方法:
- /*****1.正常传参*****/
- public Dailyuserinfo findStutaByUserAndDaily(String username,String dailyid);
- /*****2.注解传参*****/
- public List<UserTab> selectUserListExceptUserId
- (@Param("USER_ID")String USER_ID,
- @Param("LIMIT_POS")int LIMIT_POS,
- @Param("LIMIT_SIZE")int LIMIT_SIZE);
对应的Mapper取值:
取值时应当注意,参数名字应该与dao层传入的参数名字相同。
- /****正常传参方式参数获取****/
- <select id="findStutaByUserAndDaily"
- parameterType="java.lang.String"
- resultType="com.thinkgem.jeesite.modules.dailynews.entity.Dailyuserinfo">
- select * from daily_user_info
- where login_name=#{username}
- And daily_id=#{dailyid};
- </select>
- /****注解传参方式参数获取****/
- <select id="selectUserListExceptUserId"
- resultMap="userResMap">
- select * from MH_USER
- where USER_ID!=#{USER_ID}
- and USER_STATE>9
- order by NICK_NAME
- limit #{LIMIT_POS},#{LIMIT_SIZE}
- </select>
3、参数为map的形式。
mapper中使用map的key取值。
dao中的方法。
- /*****1.参数为map*****/
- public List<Source> search(Map<String,Object> param);
- /***2.map的内部封装***/
- Map<String,Object> param=new HashMap<String,Object>();
- param.put("page", (page-1)*pageSize);
- param.put("pageSize",pageSize);
- param.put("keyword","%"+keyword+"%");
- param.put("type",type);
- List<Source> sources=sourceDao.search(param);
对应的Mapper取值:
- <select id="search"
- parameterType="java.util.Map"
- resultType="com.bonc.wechat.entity.publicserver.Source">
- select * from wx_source
- where
- <if test="keyword != null and keyword != ''">
- (title like #{keyword} or content like #{keyword}) and
- </if>
- type=#{type}
- order by ordernum asc
- limit #{page},#{pageSize};
- </select>
4、参数为对象。
mapper中使用对象中的属性直接取值,或者【对象.属性】取值。
dao中的方法。
- /*****使用对象传参*****/
- public int addUserComment(UserComment UC);
- /*****对象中的属性*****/
- private int id;
- private int department_id;
- private String telphone;
- private String content;
- private String createtime;
对应的Mapper取值:
- <insert id="addUserComment"
- parameterType="com.bonc.wechat.entity.publicserver.UserComment">
- insert into wx_user_comment
- (department_id,
- telphone,
- content,
- createtime)
- values(#{department_id},
- #{telphone},
- #{content},
- #{createtime});
- </insert>
*使用【对象.属性】取值。
dao层:
- /******此示例中直接省去dao层,service直接绑定mapper层******/
- public PageResult findPanoramaPage(Page page) throws Exception{
- List<PageData> panoramaList = new ArrayList<PageData>();
- try {
- panoramaList = (List<PageData>)dao.findForList("PanoramaMapper.findPagePanorama", page);
- } catch (Exception e) {
- e.printStackTrace();
- }
- PageResult pageResult = new PageResult(page.getTotalResult(),panoramaList);
- return pageResult;
- }
对应的Mapper取值:
- <select id="findPagePanorama"
- parameterType="page"
- resultType="pd">
- SELECT
- a.id as id,
- a.project_code as projectCode,
- a.project_name as projectName,
- a.project_addr as projectAddr,
- a.project_type as projectType
- FROM
- calm_project a
- WHERE
- a.is_valid=1
- <if test="page.projectType != null and page.projectType != ''">
- AND a.project_type = #{page.projectType}
- </if>
- <if test="page.keyword != null and page.keyword != ''">
- AND (a.project_name LIKE '%${page.keyword}%' OR a.project_code LIKE '%${page.keyword}%')
- </if>
- ORDER BY
- a.sort
- </select>
推荐使用第三和第四种,将所传的数据在controller层或者service层封装起来,传入mapper文件中取值。
Mybatis框架中Mapper文件传值参数获取。【Mybatis】的更多相关文章
- mybatis框架中XxxxMaper.xml的文件
我们知道在mybatis框架中,config.xml中会关联到许多的XxxxMapper的xml文件,这些文件又对应着一个个的接口,来观察下这些xml文件 从以下这个文件为例子: <?xml v ...
- 逆向工程生成的mybatis中mapper文件。mapper接口,实例化成对象
逆向工程生成的mybatis中mapper文件中,*mapper文件只是接口,而不是类文件.但是却可以通过spring的容器获得实例. 例如: //1.获得mapper代理对象,从spring容器获得 ...
- idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用!
我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(spring MVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件 ...
- 详解Java的MyBatis框架中SQL语句映射部分的编写
这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件 ...
- Mybatis框架中实现双向一对多关系映射
学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢 ...
- 【MyBatis笔记】mapper文件的配置以及说明
<!doctype html>[MyBatis笔记]mapper文件的配置以及说明 figure:last-child { margin-bottom: 0.5rem; } #write ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)
用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)
引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一 的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...
- 简单分析下mybatis中mapper文件中小知识
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-// ...
随机推荐
- linux 查看CPU、内存大小
查看linux下的cpu.内存和硬盘大小: 查看cpu的方法 1. cat /proc/cpuinfo 或者 更直观的查看cpu的型号命令:dmesg |grep -i xeon 查看内存的方法 2 ...
- Linux下编译、使用静态库和动态库 自己测过的
每个程序实质上都会链接到一个或者多个的库.比如使用C函数的程序会链接到C运行时库,GUI程序会链接到窗口库等等.无论哪种情况,你都会要决定是链接到静态库(static libary)还是动态库(dyn ...
- Python目录常用操作
os.path.basename(path) #取文件名 os.path.getsize(path) #取文件大小 os.path.exists(path) #文件是否存在 os.path.dirna ...
- hdu 2987最大权闭合图模板类型题
/* 最大权闭合图模板类型的题,考验对知识概念的理解. 题意:如今要辞退一部分员工.辞退每个员工能够的到一部分利益(能够是负的),而且辞退员工,必须辞退他的下属.求最大利益和辞退的最小人数. 最大权闭 ...
- 通达OA 几次通过OA进行的足球抢票活动确实对OA系统提出了非常大挑战
今年集团赞助了中超的足球比赛,有比赛的时候会提前发一些球票.怎么发.发给谁这就是一个问题.后来确定通过OA来抢票. 通过在OA上发表帖子.通过信息提醒.大家看到信息提示后在帖子后面回复,依据回复先后确 ...
- Taking A Fresh Look At What Open Source API Management Architecture Is Available
http://apievangelist.com/2014/10/05/taking-a-fresh-look-at-what-open-source-api-management-architect ...
- 严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.Invoc
错误提示:严重: Dispatcher initialization failed java.lang.RuntimeException: java.lang.reflect.InvocationTa ...
- session退出页面
简单的session退出页面,jsp: <%@ page language="java" contentType="text/html; charset=utf-8 ...
- swift百度地图api
swift使用百度地图api遇到的坑 之前在Android上用过百度地图,以为大概类似,也没仔细看文档,结果被自己坑了 注意事项,http://developer.baidu.com/map/inde ...
- 示例 - 25行代码等价实现 - 借助Nodejs在服务端使用jQuery采集17173游戏排行信息
今天在园子里看到一篇文章: 借助Nodejs在服务端使用jQuery采集17173游戏排行信息 感觉用SS来实现相同功能更加简洁, 于是写了一下, 发现25行代码就搞定了 (包括自动翻页), 于是跟大 ...