使用动态sql是什么意思 就单表查询

二、代码题 1.请使用三层架构方式,完成用户信息展示!(20分)

2.根据用户传入的参数不同,生成的sql语句结构也就不同,查询出的数据也就不同,请使用动态sql,完成以下需求: A: 把id和username封装到user对象中,将user对象中不为空的属性作为查询条件(10分)

B: 动态更新user表数据,根据多个id查询,user对象的集合如果该属性有值就更新,没有值不做处理(10分) C: 根据多个id查询,user对象的集合(10分)

题中有根据多个ID,将对象放在集合里面,然后遍历循环出来,将不空的对象的属性作为where后面的条件。动态SQL大概就是,动态SQL语句,就是根据不同条件拼接不同的SQL语句。

如果对你有帮助,记得采纳一下哦~谢谢O(∩_∩)O

动态SQL语句,就是根据不同条件拼接不同的SQL语句

通过传入的实体对象属性,判断不为空就添加或者删除。 例如mybatis可以用if标签来判断

<update id="updateUser" parameterType="User">
        update user
        <trim prefix="SET" suffixOverrides=",">
            <if test="userName!= null">user_name = #{userName},</if>
            <if test="userAge!= null">user_age= #{userAge},</if>
        </trim>
        where user_id= #{userId}
    </update>

就是拼接sql,if条件判断是否有值,拼接条件,最好是用反射通用;用Mybatis就是if标签等。

现有一张人员的收入支出表,记录了两人每个月的收入支出,现在要计算每月剩余的钱。计算逻辑如下: 每月剩余的钱=当月收入+上月剩余-当月支出。如果当月剩余大于0,这个月的剩余不计入下个月进行计算;如果当月剩余小于0,则计入下月进行计算。 如下图中所示: 202101月份,A收入3000,支出0,上月剩余为0,所以当月剩余3000 202102月份,A收入4000,支出1000,上月累计结余数量为0(上月剩余大于0,不计入本月进行计算),所以当月剩余3000 202103月份,A收入3000,支出5000,上月累计结余数量为0(上月剩余大于0,不计入本月进行计算),所以当月剩余-2000 202104月份,A收入2000,支出3000,上月累计结余数量为-2000(上月剩余小于0,计入本月进行计算),所以当月剩余-3000

img

结果如下: img

用其他数据库语言写也可以,我想知道累加过程中的判断如何在代码中实现,谢谢。