1.基本操作--查询Select
<select id="queryAll" resultType="Person" >
select * from person
</select>
属性id:方法名,用于被引用
在dao层中:
直接调用mapper.xml中的方法。
其他参数有:
注意:预处理参数#{},使用如下:
<select id="selectPerson" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID = #{id}
</select>
相当于
2.增删改insert, update 和 delete和上面类似
insert可以配合数据库自动生成主键(数据库支持的情况下),需设置参数useGeneratedKeys和keyProperty,如下:
<insert id="insertAuthor" useGeneratedKeys="true"
keyProperty="id">
insert into Author (username,password,email,bio)
values (#{username},#{password},#{email},#{bio})
</insert>
还可以多行插入:
<insert id="insertAuthor" useGeneratedKeys="true"
keyProperty="id">
insert into Author (username, password, email, bio) values
<foreach item="item" collection="list" separator=",">
(#{item.username}, #{item.password}, #{item.email}, #{item.bio})
</foreach>
</insert>
3.可重用代码sql
<sql id="userColumns"> ${alias}.id,${alias}.username,${alias}.password </sql>
重用方法:
<select id="selectUsers" resultType="map">
select
<include refid="userColumns"><property name="alias" value="t1"/></include>,
<include refid="userColumns"><property name="alias" value="t2"/></include>
from some_table t1
cross join some_table t2
</select>