mybatis的mapper.xml使用循环语句

1.mapper.java,传的参数是map

List<实体类> getList(Map<String,Object> paraMap);

2.mapper.xml

<!--select:对应sql的select语句, id:方法名,parameterType:参数类型,resultMap:返回对象类型(BaseResultMap:标签-->
<!--<resultMap id="BaseResultMap" type="实体类包路径"> 实体类的映射 不改的话一般都是这个名字)-->
<select id="getList" parameterType="java.util.Map" resultMap="BaseResultMap">
  select * from table where 
  <!-- 判断-->
  <if test="a!= null">
      a = #{a,jdbcType=VARCHAR}
  </if>
  <if test="list!= null">
    and id in
    <!-- for循环, item:循环后的值, index:循环下标列式for循环的 i ,collection:参数名-->
    <!-- open="(" close=")" separator="," 就是把循环的值组成 (item1,item2,item3)的格式-->
    <foreach item="item" index="index" collection="list" open="(" close=")" separator=",">
	 #{item}
    </foreach>
  </if>
</select>

3.参数,数组,list都行

Map<String,Object> map = new HashMap<String, Object>();
map.put("a","参数");
map.put("list",数组、List都行)
List<实体类> list = mapper.getList(map);
`mapper.xml`文件是MyBatis框架中用于配置SQL语句的部分。它是处理数据库操作的主要场所,通过XML语法描述各种数据库查询、更新等操作。在实际应用中,它结合了`Mapper`接口来完成对数据库的操作,使得DAO层的代码更简洁、易于维护。 ### `mapper.xml`的基本结构: `mapper.xml`文件通常包含以下几部分: 1. **命名空间** (`namespace`):这是`mapper`接口的全限定名。每个`mapper`接口对应一个唯一的命名空间,在调用方法时需要引用这个命名空间。 2. **选择器表达式** (`<choose>`、`<when>`、`<otherwise>`):允许基于某个条件选择性的执行某个操作,这类似于SQL查询中的CASE语句。 3. **嵌套选择器表达式** (`<foreach>`、`<choose>`、`<when>`、`<otherwise>`):用于循环执行一系列相似的操作,比如遍历集合并执行相同的查询。 4. **SQL映射语句** (`<select>`、`<insert>`、`<update>`、`<delete>`):直接编写SQL语句来进行特定的数据操作。 5. **动态SQL标签** (`<if>`、`<where>`、`<bind>`): 根据某些条件来动态生成SQL语句的一部分内容,提高SQL语句的灵活性。 ### 示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.service.UserMapper"> <!-- 查询所有用户 --> <select id="selectAllUsers" resultType="com.example.entity.User"> SELECT * FROM user </select> <!-- 根据ID获取用户信息 --> <select id="getUserById" parameterType="int" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 在这个例子中: - `<select id="selectAllUsers">` 表示定义了一个用于查询所有用户的SQL语句。 - `<select id="getUserById" parameterType="int" resultType="com.example.entity.User">` 定义了一个用于根据ID获取特定用户的SQL语句,并指定了输入参数类型及结果集返回的类型。 --- ### 相关问题: 1. `mapper.xml`的作用是什么? 2. 怎样在MyBatis中编写动态SQL语句? 3. 如何在项目中引入并配置MyBatis与`mapper.xml`?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值