一:
select 查询时用到
update更新时用到
delete删除时用到
insert增加时用到
二:
< sql >标签定义了可重复使用的sql语句片段,通过< include >标签的filed属性进行引用,例如:
< sql id="odItem>
o.id,o.name,o.age,i.product,i.count
< /sql >
<select id="findByUid" parameter="java.lang.string"resultMap="BaseResultMap">
select
< include field="odItem"/ >
from ordeItem o inner join itrm i on o.oid=i.iid where o.oid=#(ordeItemId)
< /select >
三: 1 resultMap关系映射器,管理结果和实体类间映射关系
id为唯一标识,type为需要映射的实体类
例如:
public class Person { String pid;
String name; int age; Role role}
< resultMap id="BaseResultMap" type="pojo.Person" >
< id column="Person_id" property="pid" jdbcType="VARCHAR" />
< result column="Person_naem property="name" jdbcType="VARCHAR" /
<!-- 通过association 维护 一对一关系 -->
< association property="Role" javaType="pojo.Role">
< id column="Role_id" property="RoleId">
< result column="Role_name" property="RoleName"/>
< /association>
< /resultMap>
通过xml的配置可以看出,在resultMap映射管理器中,通过 进行了维护,也就是在查询Per对象时son,可以把关联的对象Role的信息也查询出来
2在一对多关系中,多以list形式出现,可以使用标签< collection>
四:动态标签< where >< if>
< where >可以代替sql关键字where;if用于判断,配置属性test="字符串 " tian’ 条件满足则执行,不满足则跳过
< set>用于update中代替set关键字
< choose>< when>< /when>< otherwise>< /otherwise>< /choose> 标签组:也是一个用于条件判断的标签组,和< if>的不同之处在于条件从< choose>进入,去匹配< when>中的添加,一旦匹配马上结束;若到找不到匹配项,将执行< other>中的语句;可以理解为< if>是 && 关系 < choose>是 || 关系