标签:技术 efi oftype 多个 mybatis fonts ast like null
where可以自动处理第一个and。
<!-- 根据id查询用户信息 --> <!-- public User findUserById(int id); --> <select id="findUserById" parameterType="user" resultType="user"> select * from user <!-- 当有if条件成立时,where会自动拼接查询条件,并处理第一个and --> <include refid="where_if_if"/> </select> <!-- sql片段抽取 --> <sql id="where_if_if"> <where> <!-- 动态拼接sql查询条件 --> <if test="username != null and username != ‘‘"> and username like "%"#{username}"%" </if> <if test="sex != null and sex != ‘‘"> and sex = #{sex} </if> </where> </sql>
向sql传递数组或List,mybatis使用foreach解析
? 在pojo中定义list属性ids存储多个用户id,并添加getter/setter方法
<select id="findUserByForeach" parameterType="queryvo" resultType="user"> select * from user <if test="ids != null and ids.size > 0 "> <foreach collection="ids" item="id" open="where id in (" separator=", " close=")"> #{id} </foreach> </if> </select>
案例:查询所有订单信息,关联查询下单用户信息。
association:表示进行关联查询单条记录
property:表示关联查询的结果存储在cn.itcast.mybatis.po.Orders的user属性中
javaType:表示关联查询的结果类型
<id property="id" column="uid"/>:查询结果的uid列对应关联对象的id属性,这里是<id />表示uid是关联查询对象的唯一标识。
<result property="username" column="username"/>:查询结果的username列对应关联对象的username属性。
案例:查询所有用户信息,同时关联查询用户的订单信息。
用户信息和订单信息为一对多关系。
collection部分定义了用户关联的订单信息。表示关联查询结果集
property="orders":关联查询的结果集存储在User对象的上哪个属性。
ofType="orders":指定关联查询的结果集中的对象类型即List中的对象类型。此处可以使用别名,也可以使用全限定名。
<id />及<result/>的意义同一对一查询。
标签:技术 efi oftype 多个 mybatis fonts ast like null
原文地址:https://www.cnblogs.com/jifengblog/p/9221371.html