一、resultMap关联表查询
二、动态sql
先展示我的实体类属性:
private long userid;
private String username;
private Date birthday;
private String pwd;
private List<Orders> ords;
和我的接口方法:
public interface UserinfosDAO {
//动态sql联合查询
public List<Userinfos> findUser(Userinfos user);
}
public interface OrdersDAO {
//关联表查询
public List<Orders> findOrderByUserid(long userid);
}
一、resultMap
id是随便起的名字,但最好是两个实体类的别名,type是方法返回值
<resultMap id="user_order" type="user">
<!-- 使结果包含userid,使其不为0-->
<result column="userid" property="userid"></result>
<!-- collection 一对多属性:
property 查询出订单的结果存放再哪个属性中
column 用什么列传递给订单查询做参数
select 订单查询的方法名
-->
<collection property="ords"
column="userid"
select="com.kgc.mymb.dao.OrdersDAO.findOrderByUserid">
</collection>
</resultMap>
二、动态sql
<!-- 动态sql-->
<select id="findUser" parameterType="user" resultType="user">
select * from userinfos
<where>
<if test="username !=null">
username=#{username}
</if>
<if test="birthday !=null">
and date_format(birthday,'%Y-%m-%d')=date_format(#{birthday},'%Y-%m-%d')
</if>
</where>
</select>