Java开发工作经验积累
Posted 头发渐秃终不悔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java开发工作经验积累相关的知识,希望对你有一定的参考价值。
2020.3.30
1、使用 resultMap 完成结果集到实体类的映射(执行效率相对低,开发效率高)
2、在添加用户的时候,如果想获取新增用户的 id 值,那么就可以使用 <selectKey></selectKey> 标签,见代码
<!-- 添加用户,同时获取 id 的返回值 -->
<!-- 添加用户,同时获取 id 的返回值 -->
<insert id="saveUser" parameterType="cn.ykf.pojo.User">
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT INTO user(username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})
</insert>
3、<!-- 查询用户总数 --> <select id="countUser" resultType="int"> SELECT count(id) FROM user </select>
4、动态SQL
相比之前的 SQL 语句,我们少写了 WHERE 1 = 1,而是使用 <where></where> 标签来代替它。
<where></where> 标签只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入 WHERE 子句。而且,若语句的开头为 AND 或 OR,<where></where> 标签也会将它们去除。
简单来说,就是该标签可以动态添加 WHERE 关键字,并且剔除掉 SQL 语句中多余的 AND 或者 OR。
<where></where> 标签只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入 WHERE 子句。而且,若语句的开头为 AND 或 OR,<where></where> 标签也会将它们去除。
简单来说,就是该标签可以动态添加 WHERE 关键字,并且剔除掉 SQL 语句中多余的 AND 或者 OR。
5、<!-- 根据id集合查询用户 -->
<select id="listUsersByIds" parameterType="cn.ykf.pojo.QueryVo" resultType="cn.ykf.pojo.User">
SELECT * FROM user
<where>
<if test="ids != null and ids.size > 0">
<foreach collection="ids" open="AND id IN (" close=")" item="id" separator=",">
#{id}
</foreach>
</if>
</where>
</select>
<select id="listUsersByIds" parameterType="cn.ykf.pojo.QueryVo" resultType="cn.ykf.pojo.User">
SELECT * FROM user
<where>
<if test="ids != null and ids.size > 0">
<foreach collection="ids" open="AND id IN (" close=")" item="id" separator=",">
#{id}
</foreach>
</if>
</where>
</select>
以上是关于Java开发工作经验积累的主要内容,如果未能解决你的问题,请参考以下文章