MyBatis的Mapper配置文件的parameterType用法

在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型

  • 基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值
  • 复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或
  • #{map的KeyName}即可获取传入的值
  • 基本数据类型参数示例:

根据班级ID查询教师列表

xml文件

[html] view plaincopy

  1. <select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Teacher">
  2. select * from Teacher where c_id=#{id}
  3. </select>

java代码

[java] view plaincopy

  1. List<Teacher> tList = teacherMapper.selectTeacher(2);
  2. for (Teacher entityTemp : tList) {
  3. System.out.println(entityTemp.toString());
  4. }
  • JAVA实体类型参数示例:

[html] view plaincopy

  1. <select id="selectTeacher" parameterType="com.myapp.domain.Teacher" resultType="com.myapp.domain.Teacher">
  2. select * from Teacher where c_id=#{id}
  3. </select>

[java] view plaincopy

  1. java代码
  2. Teacher queryTeacher=new Teacher();
  3. queryTeacher.setId(2);
  4. List<Teacher> tList = teacherMapper.selectTeacher(queryTeacher);
  5. for (Teacher entityTemp : tList) {
  6. System.out.println(entityTemp.toString()); }
  • Map参数示例:

    [html] view plaincopy

    1. <select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">
    2. select * from Teacher where c_id=#{id} and sex=#{sex}
    3. </select>

    [java] view plaincopy

    1. java代码
    2. Map<String,String> map=new HasMap<String,String>();
    3. map.put("id","2");
    4. map.put("sex","男");
    5. List<Teacher> tList = teacherMapper.selectTeacher(map);
    6. for (Teacher entityTemp : tList) {
    7. System.out.println(entityTemp.toString()); }

另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解

示例:

接口方法

[java] view plaincopy

  1. public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);

XML文件

[html] view plaincopy

  1. <select id="selectTeacher"  resultType="com.myapp.domain.Teacher">
  2. select * from Teacher where c_id=#{id} and sex=#{sex}
  3. </select>

测试代码

[java] view plaincopy

  1. List<Teacher> tList = teacherMapper.selectTeacher("2","男");
  2. for (Teacher entityTemp : tList) {
  3. System.out.println(entityTemp.toString());
时间: 2024-08-29 04:53:42

MyBatis的Mapper配置文件的parameterType用法的相关文章

mybatis实现mapper配置文件热部署

工作用到mybatis,同事说每次修改sql后,都要重启,因为mybatis的mapper文件默认只在启动时加载到缓存,改动后不会自动加载,于是研究了下mybatis文件的加载,分享如下: 实现思路:使用定时器定时扫描mapper文件的改动,如果有改动则调用mapper文件的加载方法XMLMapperBuilder.parse(). 一.写一个重新加载mapper文件的java类  首先需要构建一个sqlSessionFactory对象,并指定mybatis的Configuration.xml配

MyBatis关于Mapper配置文件知识集合

(1)MyBatis多参数传递之默认命名方式 对于映射器中的方法,MyBatis默认从左到右给方法的参数命名为param1.param2-,依次类推.我们可以无需借助注解,直接在SQL语句中使用这些默认名称. 首先去掉@Param注解的TeacherMapper.java如下所示(完整源码下载地址:http://down.51cto.com/data/539217): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package com.abc.map

mybatis 的mapper配置文件sql语句中, 有时用到 大于, 小于等等

一, 用<![CDATA[   ]]>标识,例如: <if test="create_timeStart != null and create_timeStart != ''"> <![CDATA[ AND create_time >= ${create_timeStart}]]> </if> 二,转义 < >  也可以>=

mybatis入门_配置文件的配置

一.全局配置文件配置 1.1 properties标签 Properties标签可以用来加载配置文件.例如,我们可以将数据库的连接信息放入到一个配置文件(db.properties中..) 下为db.properties db.driverClass=com.mysql.jdbc.Driver db.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 db.username=root db.

Mybatis中Mapper代理形式开发与spring整合

1.导入jar包 2.分包 cogfig:存放配置文件 mapper:存放映射与接口 pojo:存放实体类 test:测试代码 3.编写配置文件 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybat

MyBatis 实践 --Mapper与DAO

MyBatis 实践 MyBatis简介 MyBatis前身是iBatis,是一个基于Java的数据持久层/对象关系映射(ORM)框架. MyBatis是对JDBC的封装,使开发人员只需关注SQL本身,而不需花费过多的精力去处理如注册驱动.设置参数.创建Connection/Statement.解析结果集等JDBC过程性代码.MyBatis基于XML/注解的方式配置Statement,执行SQL,并将执行结果映射成Java对象, 大大降低了数据库开发的难度. MyBatis is a first

Mybatis运用mapper代码实现和Spring的整合(一)

引言 先前做的java项目中一直使用的EclipseLink和Hibernate,两种ORM框架,现在用Mybatis实现,当然它们之间各有各的优点,同样也有缺点,有时候,一个项目中是可以存在两种框架一起使用的,在项目中,技术选型很重要.Mybatis是一个持久层的框架,是apache下的顶级项目,mybatis让程序将主要的精力放在sql上,通过mybatis提供的映射方式,自由灵活生成. Mybatis的主要是靠sql语句来进行实现对数据库持久化的,这就是mybatis的硬伤,当然,它也因为

spring整合mybatis之mapper开发

1.1    整合思路 1.SqlSessionFactory对象应该放到spring容器中作为单例存在. 2.传统dao的开发方式中,应该从spring容器中获得sqlsession对象. 3.Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象. 4.数据库的连接以及数据库连接池事务管理都交给spring容器来完成. 1.2   整合需要的jar包 1.spring的jar包 2.Mybatis的jar包 3.Spring+mybatis的整合包. 4.Mysql的

Spring Boot MyBatis 通用Mapper插件集成

看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/50553714 做了解后,再按本文步骤操作. 使用MyBatis在我们通过xml集中配置SQL,并通过创建接口Mapper文件来完成持久化DAO层(mybatis内部使用的是动态代理,所以我们不需要自己编写实现类). 然而在实际开发中,单表操作非常多,如果你也想像JPA.JDBC那样做一个所谓的Base