Mybatis框架中Mapper文件传值参数获取。【Mybatis】

Mybatis框架中,Mapper文件参数获取一般有以下几种:

1、参数个数为1个(string或者int)

dao层方法为以下两种:

[java] view plain copy

  1. /**
  2. * 单个int型
  3. */
  4. public List<UserComment> findByDepartmentId(int dapartmentId);
  5. /**
  6. * 单个string型
  7. */
  8. public Source findByTitle(String title);

对应的Mapper取值:

取值时应当注意,参数名字应该与dao层传入的参数名字相同。

[html] view plain copy

  1. /*单个int型*/
  2. <select id="findByDepartmentId"  resultType="com.bonc.wechat.entity.publicserver.UserComment">
  3. select * from wx_user_comment where
  4. department_id=#{departmentId}
  5. order by createtime desc;
  6. </select>
  7. /*单个string型*/
  8. <select id="findByTitle"  parameterType="java.lang.String" resultType="com.bonc.wechat.entity.publicserver.Source">
  9. select * from wx_source where
  10. title=#{title};
  11. </select>
  12. /*****或者直接使用通用方法获取参数*****/
  13. <select id="findByDepartmentId"  resultType="com.bonc.wechat.entity.publicserver.UserComment">
  14. select * from wx_user_comment where
  15. department_id=#{_parameter}
  16. order by createtime desc;
  17. </select>
  18. <select id="findByTitle"  parameterType="java.lang.String" resultType="com.bonc.wechat.entity.publicserver.Source">
  19. select * from wx_source where
  20. title=#{_parameter};
  21. </select>

2、参数个数为多个。

dao层方法:

[java] view plain copy

  1. /*****1.正常传参*****/
  2. public Dailyuserinfo findStutaByUserAndDaily(String username,String dailyid);
  3. /*****2.注解传参*****/
  4. public List<UserTab> selectUserListExceptUserId
  5. (@Param("USER_ID")String USER_ID,
  6. @Param("LIMIT_POS")int LIMIT_POS,
  7. @Param("LIMIT_SIZE")int LIMIT_SIZE);

对应的Mapper取值:

取值时应当注意,参数名字应该与dao层传入的参数名字相同。

[html] view plain copy

  1. /****正常传参方式参数获取****/
  2. <select id="findStutaByUserAndDaily"
  3. parameterType="java.lang.String"
  4. resultType="com.thinkgem.jeesite.modules.dailynews.entity.Dailyuserinfo">
  5. select * from daily_user_info
  6. where login_name=#{username}
  7. And daily_id=#{dailyid};
  8. </select>
  9. /****注解传参方式参数获取****/
  10. <select id="selectUserListExceptUserId"
  11. resultMap="userResMap">
  12. select * from MH_USER
  13. where USER_ID!=#{USER_ID}
  14. and USER_STATE>9
  15. order by NICK_NAME
  16. limit #{LIMIT_POS},#{LIMIT_SIZE}
  17. </select>

3、参数为map的形式。

mapper中使用map的key取值。

dao中的方法。

[java] view plain copy

  1. /*****1.参数为map*****/
  2. public List<Source> search(Map<String,Object> param);
  3. /***2.map的内部封装***/
  4. Map<String,Object> param=new HashMap<String,Object>();
  5. param.put("page", (page-1)*pageSize);
  6. param.put("pageSize",pageSize);
  7. param.put("keyword","%"+keyword+"%");
  8. param.put("type",type);
  9. List<Source> sources=sourceDao.search(param);

对应的Mapper取值:

[html] view plain copy

  1. <select id="search"
  2. parameterType="java.util.Map"
  3. resultType="com.bonc.wechat.entity.publicserver.Source">
  4. select * from wx_source
  5. where
  6. <if test="keyword != null and keyword != ‘‘">
  7. (title like #{keyword} or content like #{keyword}) and
  8. </if>
  9. type=#{type}
  10. order by ordernum asc
  11. limit #{page},#{pageSize};
  12. </select>

4、参数为对象。

mapper中使用对象中的属性直接取值,或者【对象.属性】取值。

dao中的方法。

[java] view plain copy

  1. /*****使用对象传参*****/
  2. public int addUserComment(UserComment UC);
  3. /*****对象中的属性*****/
  4. private int id;
  5. private int department_id;
  6. private String telphone;
  7. private String content;
  8. private String createtime;

对应的Mapper取值:

[html] view plain copy

  1. <insert id="addUserComment"
  2. parameterType="com.bonc.wechat.entity.publicserver.UserComment">
  3. insert into wx_user_comment
  4. (department_id,
  5. telphone,
  6. content,
  7. createtime)
  8. values(#{department_id},
  9. #{telphone},
  10. #{content},
  11. #{createtime});
  12. </insert>

*使用【对象.属性】取值。

dao层:

[java] view plain copy

  1. /******此示例中直接省去dao层,service直接绑定mapper层******/
  2. public PageResult findPanoramaPage(Page page) throws Exception{
  3. List<PageData> panoramaList = new ArrayList<PageData>();
  4. try {
  5. panoramaList = (List<PageData>)dao.findForList("PanoramaMapper.findPagePanorama", page);
  6. } catch (Exception e) {
  7. e.printStackTrace();
  8. }
  9. PageResult pageResult = new PageResult(page.getTotalResult(),panoramaList);
  10. return pageResult;
  11. }

对应的Mapper取值:

[html] view plain copy

  1. <select id="findPagePanorama"
  2. parameterType="page"
  3. resultType="pd">
  4. SELECT
  5. a.id as id,
  6. a.project_code as projectCode,
  7. a.project_name as projectName,
  8. a.project_addr as projectAddr,
  9. a.project_type as projectType
  10. FROM
  11. calm_project a
  12. WHERE
  13. a.is_valid=1
  14. <if test="page.projectType != null and page.projectType != ‘‘">
  15. AND a.project_type = #{page.projectType}
  16. </if>
  17. <if test="page.keyword != null and page.keyword != ‘‘">
  18. AND (a.project_name LIKE ‘%${page.keyword}%‘ OR a.project_code LIKE ‘%${page.keyword}%‘)
  19. </if>
  20. ORDER BY
  21. a.sort
  22. </select>

推荐使用第三和第四种,将所传的数据在controller层或者service层封装起来,传入mapper文件中取值。

时间: 2024-10-21 04:49:17

Mybatis框架中Mapper文件传值参数获取。【Mybatis】的相关文章

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

MyBatis框架中Mapper映射配置的使用及原理解析(三) 配置篇 Configuration

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 我们知道XMLConfigBuilder调用parse()方法解析Mybatis配置文件,生成Configuration对象. Configuration类主要是用来存储对Mybatis的配置文件及mapper文件解析后的数据,Configuration对象会贯穿整个Mybatis的执行流程,为Mybatis的执行过程提供必要的配

MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder

在 <MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置与使用> 的demo中看到了SessionFactory的创建过程: SqlSessionFactory sessionFactory = null; String resource = "mybatisConfig.xml"; try { sessionFactory = new SqlSessionFactoryBuilder().build(Resources .getResourceAsRea

MyBatis框架中Mapper映射配置的使用及原理

(Mapper用于映射SQL语句,可以说是MyBatis操作数据库的核心特性之一,这里我们讨论java的MyBatis框架中Mapper映射配置的使用及原理解析,包括对mapper.xml配置文件的读取流程解读) Mapper的内置方法 model层就是实体类,对应数据库的表.controller层是Servlet,主要是负责业务模块流程的控制,调用service接口的方法,在struts2就是Action.Service层主要做逻辑判断,Dao层是数据访问层, 原文地址:https://www

详解Java的MyBatis框架中SQL语句映射部分的编写

这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyBAtis配置文件mappers标签中引用,例如: ? 1 2 3 4 5 6 <mappers>   <mapper resource="com/limi

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释 2016-04-14 23:40 13030人阅读 评论(2) 收藏 举报 分类: SSM(7) 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算对其中的XML配置文件有了一定的了解,所以拿出来一起分享一下,希望有不足的地方大家批评指正~~~ 首先   这篇文章暂时只对框架中所要用到的配置文件进行解

Mybatis框架中实现一对多关系映射

学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢? 其实很简单 首先我们照常先准备前期的环境(具体解释请  参考初识Mybatis进行增.删.改.查 blogs )这里我就直接上代码了 主配置文件:Configuration.xml <?xml version="1.0" encoding="UTF-8" ?&

ssh框架中.xml文件小技巧分离xml

struts.xml文件 struts.xml文件里的action可以分离出来,如: <!-- 预警信息监测 --> <include file="config/struts/warningInformAtion-struts.xml"></include> 注: include是放在</struts>标签的前面 在src下面新建 package 名为:config.struts,再新建xml文件为warningInformAtion-s

C#中的文件路径获取函数和文件名字获取函数小结

1. 获取绝对文件路径 代码如下: System.IO.Path.GetFullPath(string path) string fileName = "myfile.ext"; string path1 = @"mydir"; string path2 = @"\mydir"; string fullPath; fullPath = Path.GetFullPath(path1); fullPath = Path.GetFullPath(fil