在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型
基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值
复杂数据类型:包含JAVA实体类、Map。通过#{属性名}或#{map的KeyName}即可获取传入的值
基本数据类型参数示例:
根据班级ID查询教师列表
xml文件
<select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id}
</select>
java代码
List<Teacher> tList = teacherMapper.selectTeacher(2);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString());
}
JAVA实体类型参数示例:
<select id="selectTeacher" parameterType="com.myapp.domain.Teacher" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id}
</select>
java代码
Teacher queryTeacher=new Teacher();
queryTeacher.setId(2);
List<Teacher> tList = teacherMapper.selectTeacher(queryTeacher);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }
Map参数示例:
<select id="selectTeacher" parameterType="Map" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>
java代码
Map<String,String> map=new HasMap<String,String>();
map.put("id","2");
map.put("sex","男");
List<Teacher> tList = teacherMapper.selectTeacher(map);
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString()); }
另外MyBatis还提供了一个使用注解来参入多个参数的方式。这种方式需要在接口的参数上添加@Param注解
示例:
接口方法
public List<Teacher> selectTeacher(@Param(value="id") String id,@Param(value="sex") String sex);
XML文件
<select id="selectTeacher" resultType="com.myapp.domain.Teacher">
select * from Teacher where c_id=#{id} and sex=#{sex}
</select>
测试代码
List<Teacher> tList = teacherMapper.selectTeacher("2","男");
for (Teacher entityTemp : tList) {
System.out.println(entityTemp.toString());
分享到:
相关推荐
MyBatis中传入参数parameterType类型详解 MyBatis是一款流行的持久层框架,它提供了一个灵活的方式来与数据库交互。在MyBatis中,parameterType类型是Mapper文件中的一个重要属性,它用于指定Mapper接口方法接受的...
动态SQL是MyBatis的一项强大特性,它允许根据传入的参数动态地构建SQL语句结构,从而提高SQL语句的灵活性和复用性。这对于处理复杂的查询场景尤其有用,例如根据不同的条件组合生成不同的查询语句等。 #### 三、...
### MyBatis动态SQL详解 #### 一、MyBatis动态SQL概述 在传统的Java数据库连接(JDBC)中,为了实现对数据库的操作,我们往往需要编写大量的代码来进行SQL语句的拼接。这种方式不仅降低了代码的可读性和可维护性,...
在MyBatis框架中,参数处理是一个关键环节,它决定了SQL查询语句如何根据传入的参数进行动态构建。本示例中,我们看到了两种不同的参数处理方式:使用Map和JavaBean。 1. **Map参数处理**: - 在映射文件中,`...
在实例中,`parameterType`用于定义查询用户信息时传入的用户ID类型为`int`,而在插入用户信息时,传入的是`User`对象。 2. **resultType**: `resultType`属性指定了查询结果的Java类型。例如,当查询用户信息时...
### MyBatis参数详解 #### 一、概述 在MyBatis框架中,处理数据库操作时,经常需要向SQL语句传递各种类型的参数。这些参数包括简单数据类型(如Integer、String等)、复杂的对象类型(如自定义JavaBean类)、Map...
MyBatis 动态插入 List 传入 List 参数的实例代码详解 MyBatis 是一款优秀的 ORM 工具,提供了许多实用的功能,其中之一便是动态插入 List,下面我们将通过实例代码详解 MyBatis 动态插入 List 传入 List 参数的...
MyBatis 支持多种方式传递参数到 SQL 语句中,包括使用 `#{}` 占位符、使用 Map 作为参数等。 ##### 5.1 使用 #{} ```xml <select id="findUserById" parameterType="int" resultType="com.example.model.User"> ...
这是因为MyBatis在`parameterType`中已经指定了参数类型,它会自动将传入的对象转化为Map,其中key就是参数名,因此可以直接通过字段名访问。 【部分内容】涵盖了多个知识点,包括: 1. **MyBatis接口的CRUD**:这...
【Mybatis批量添加实现详解】 在数据库操作中,批量插入数据是常见的需求,尤其是在处理大量数据时,批量插入能够显著提高效率。Mybatis,作为一款轻量级的持久层框架,提供了灵活的方式来处理批量添加。本文将详细...
- `parameterType`:指定传入参数的类型。 - `resultType`:指定返回结果的类型。 - **应用场景对比**: - **Hibernate**: - 特点:全ORM,无需手动编写SQL。 - 适用场景:需求稳定、中小型项目。 - **...
- **执行阶段**:根据传入的参数动态组装SQL语句,执行SQL并返回结果集。 - **清理阶段**:关闭资源,释放连接。 #### 二、MyBatis的核心功能 - **API支持**:提供了丰富的API接口,便于开发者进行数据库操作。 - ...
### MyBatis 笔记详解 #### 一、概述与概念 **MyBatis** 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用...
Statement Builders是MyBatis内部用于构建SQL语句的组件,它根据传入的参数和配置信息生成最终的SQL语句。这部分通常对用户来说是透明的,但在理解MyBatis的工作原理时非常重要。 ### Logging #### 8.1 日志记录 ...
在给出的`<select>`标签中,`id`是SQL语句的唯一标识,`parameterType`指定了传入参数的类型,`resultType`则定义了返回结果的类型。在查询条件部分,可以看到一个`<if>`标签,这是MyBatis的动态SQL功能,它会根据`...
在使用Mybatis进行数据库操作时,经常会遇到XML配置文件中的特殊字符问题,这些特殊字符可能会导致解析错误或者SQL语句无法正确执行。本篇将详细解释Mybatis如何处理这些特殊字符,以及提供一种通用的解决方案。 一...
1. **参数类型**:确保`parameterType`属性与传递给查询的实际参数类型一致。 2. **结果映射**:确保`resultType`属性正确映射到Java对象。 3. **SQL语法差异**:不同数据库对SQL语法的支持有所不同,特别是字符串...
### MyBatis常用语句详解及Lyaui多条件查询加分页 #### 一、概述 在本篇文章中,我们将详细介绍MyBatis框架中的几种常用SQL语句编写方法及其应用场景,特别是针对数据库的增删改查操作。这些操作是任何Web应用开发...
- **智能标签介绍:** MyBatis提供了多种动态SQL标签,如`if`, `choose`, `when`, `otherwise`, `foreach`等,这些标签可以根据传入的参数动态地构建SQL语句。 - **示例代码:** ```xml ...