mybatis的sql语句配置文件里的两大神器

一、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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值