Mybatis框架中Mapper文件传值参数获取。【Mybatis】
来源:互联网 发布:籼米和粳米知乎 编辑:程序博客网 时间:2024/06/13 22:24
Mybatis框架中,Mapper文件参数获取一般有以下几种:
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 projectTypeFROM 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文件中取值。
至于mapper中 "#"取值和"$"取值的区别,本文不做解释,推荐一个博客,详细介绍了二者区别。
Curtain http://blog.csdn.net/u012191627/article/details/41895663
1 0
- Mybatis框架中Mapper文件传值参数获取。【Mybatis】
- Mybatis框架中Mapper文件传值参数获取
- MyBatis框架中Mapper方法中的参数问题解决方案
- mybatis中加载mapper文件
- mybatis框架的mapper.xml文件中sql的使用方法:
- mybatis mapper映射文件参数填充原理
- mybatis mapper参数解析
- Mybatis mapper获取sql
- Mybatis--Mapper文件中使用静态方法
- Mybatis Mapper文件中sql语句用法
- mybatis中mapper.xml文件详解
- Mybatis 中 Mapper XML文件详解
- Mybatis中Mapper映射文件详解
- Mybatis - Mapper文件简练
- MyBatis Mapper 文件例子
- Mybatis中Mapper出错
- mybatis中配置mapper
- Mybatis中配置Mapper
- UE4的UI制作流程
- Guice 依赖注入
- 数据分析及运用(一)
- UISwitch 默认大小
- Centos6.5 安装mysql
- Mybatis框架中Mapper文件传值参数获取。【Mybatis】
- windows NT的意义和各个版本
- 无法打开到sql server的连接 错误2
- LCMS Code Review
- java文件操作代码示例
- [UE4]用UMG方式实现Character头顶显示3D血条
- scala的抽象类、抽象字段、抽象方法
- 汉字转拼音--(字符串类别)
- C语言学习之路-由浅入深(快速掌握c基础)