mapper.xml总结

本章,主要为了持久层总结知识,方便以后使用!

贴一部分代码出来演示

1.mapper头文件

1
2
3
4
<?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">

2.关联实体类

1
2
3
4
5
6
7
8
9
<mapper namespace="com.ssm.mapper.FactoryMapper">
<resultMap type="com.ssm.domain.Factory" id="factoryRm">
<!-- 主键 -->
<id property="id" column="FACTORY_ID" />
<!-- 一般属性 -->
<result property="fullName" column="FULL_NAME" />
<result property="factoryName" column="FACTORY_NAME" />
</resultMap>
</mapper>
  1. namespace:里面的东西可以随便写,但是尽量和实体类路径书写一致;
  2. resultMap:返回类型为了给以后增删改查提供返回值,也关联实体类;
    2.1 type:必须是实体类的Qualified Name(限定名)
    2.2 id:resultMap的名字,个人理解;
  3. id:为数据库中的主键,column对应:数据库中的列名
  4. result property:对应一般属性
  5. 级联属性以后更新

3.增删改查

1
2
3
4
5
6
<!-- 查询 -->
<select id="find" parameterType="map" resultMap="factoryRm">
select * from
factory_c
where 1=1
</select>
  1. parameterType:参数类型,string,map,实体类,输入类型;
    1.1 当参数类型为string时候where factory_id=#{pid}括号中可以随便写
    1.2 当参数类型为实体类时,必须书写实体类中的参数,属性;
  2. resultMap:有返回类型就写没有就不需要写,输出类型;(factoryRm)实体类;
  3. oracle中添加属性为空时,必须书写为#{fullName, jdbcType=VARCHAR},书写数据库中的类型,mysql不需要;
  4. 等标签;
  5. 使用foreach遍历String(数组), collection是数组, item是数组中的属性,这个数组是以()开始和结束,中间以逗号隔开。where in 当xxxx在(中)

    1
    2
    3
    4
    5
    6
    7
    <update id="updateState" parameterType="map">
    update factory_c set state=#{state}
    where FACTORY_ID in
    <foreach collection="ids" item="id" open="(" close=")" separator=",">
    #{id}
    </foreach>
    </update>

    未完待续。。。

打赏2块钱,帮我买杯咖啡,继续创作,谢谢大家!
-------------本文结束感谢您的阅读-------------