查询所有
resultMap
可以定义属性和数据库列的对应关系,提高重用性,其它查询语句也可以引用。
,列名和属性同名可以不用写映射,也可以只书写列名和属性名不同的映射
<resultMap id="
all
" type="dog">
<result property="id“ column=“t_id”/>
<result property="dogName" />
</resultMap>
书写
SQL
引用结果集
<select id="findAll" resultMap="
all
">
select * from t_dog
</select>
代码
List list = session.selectList("findAll");
利用别名查询
resultType为查询返回的类型
<select id="all" resultType="users">
利用别名查询
,
进行属性名和列名的映射
select id,
userName as name
from t_user
</select>
单条件查询
<select id="findByName" resultType="man" parameterType="java.lang.String">
select * from t_dog where dogName like #{yy}
</select>
List list = session.selectList("findByName","%小%");
如果在SQL语句中有特殊字符,可以在CDATA块中书写。在CDATA中的内容都被认为是字符串,不会被编译。
<![CDATA[
select * from t_man where
birthday < #{birthday}
]]>
#和$
#
在生成
SQL
时,对于字符类型参数,会拼装引号
$
在生成
SQL
时,不会拼装引号,可用于
order by
之类的参数拼装
<select id="findByName" resultMap="userMap">
select * from t_user where u_userName like
'%${userName}%'
;
</select>
List list = session.selectList("user.findByName", map);
多条件查询
<select id="findByIdAndUserName" resultType="man" parameterType="man">
select * from t_man where id>#{id} and userName like #{userName}
</select>
List list = session.selectList("findManBikeDyna",new Man(3,"%张%"));