当前位置: 首页 > wzjs >正文

国外网站平台有哪些网站如何防注册机

国外网站平台有哪些,网站如何防注册机,21天网站建设实录pdf,西安网站建设小程序开发MyBatis标签使用心得&#xff1a;这些年我用过的那些标签一、基础标签&#xff1a;从入门到放弃二、动态SQL&#xff1a;从惊艳到抓狂三、<foreach>标签&#xff1a;性能杀手&#xff1f;四、<resultMap>&#xff1a;对象映射的艺术五、那些不常用但好用的标签六、…

在这里插入图片描述

  • MyBatis标签使用心得:这些年我用过的那些标签
    • 一、基础标签:从入门到放弃
    • 二、动态SQL:从惊艳到抓狂
    • 三、`<foreach>`标签:性能杀手?
    • 四、`<resultMap>`:对象映射的艺术
    • 五、那些不常用但好用的标签
    • 六、我的MyBatis标签使用准则

MyBatis标签使用心得:这些年我用过的那些标签

最近整理项目代码,翻出了不少老旧的MyBatis映射文件。看着这些XML配置,突然想起刚工作时被MyBatis各种标签支配的恐惧。今天就跟大家聊聊这些标签的使用心得,都是血泪教训换来的经验。

一、基础标签:从入门到放弃

刚开始用MyBatis时,觉得<select><insert>这些基础标签简直太简单了。直到有一天…

<!-- 新手常见错误示例 -->
<insert id="addUser" parameterType="User">INSERT INTO user VALUES(#{id}, #{name}, #{age})
</insert>

结果上线后各种报错,原来数据库加了新字段。这才明白要显式指定列名:

<!-- 正确写法 -->
<insert id="addUser" parameterType="User">INSERT INTO user(name, age, create_time)VALUES(#{name}, #{age}, NOW())
</insert>

血泪教训

  1. 永远明确指定插入列名
  2. 日期处理最好在SQL里完成
  3. 别相信"表结构不会变"这种鬼话

二、动态SQL:从惊艳到抓狂

第一次见到<if>标签时惊为天人,再也不用写恶心的字符串拼接了!于是写出了这样的代码:

<select id="findUsers" resultType="User">SELECT * FROM user WHERE<if test="name != null">name = #{name}</if><if test="age != null">AND age = #{age}</if>
</select>

结果当name为null时,SQL直接变成SELECT * FROM user WHERE AND age=xx,当场爆炸。

后来才知道要用<where>标签:

<select id="findUsers" resultType="User">SELECT * FROM user<where><if test="name != null">name = #{name}</if><if test="age != null">AND age = #{age}</if></where>
</select>

实用技巧

  1. <where>会自动去除开头AND/OR
  2. 简单条件用<if>,复杂逻辑用<choose>
  3. 记得在测试用例里覆盖所有条件分支

三、<foreach>标签:性能杀手?

做批量操作时,<foreach>简直是救命稻草:

<insert id="batchInsert">INSERT INTO user(name, age) VALUES<foreach collection="list" item="user" separator=",">(#{user.name}, #{user.age})</foreach>
</insert>

但是有一次导入10万条数据,直接把数据库干趴了。后来学乖了,要分批处理:

// 每批1000条
int batchSize = 1000;
List<List<User>> batches = ListUtils.partition(userList, batchSize);batches.forEach(batch -> {userMapper.batchInsert(batch);
});

性能心得

  1. MySQL单批建议500-2000条
  2. Oracle单批建议100-500条
  3. 记得加事务,但别太大

四、<resultMap>:对象映射的艺术

最让我头疼的就是复杂的对象关系映射。比如用户有角色,还有订单:

<resultMap id="userDetailMap" type="User"><id property="id" column="id"/><!-- 基础字段 --><result property="name" column="name"/><!-- 一对一 --><association property="role" javaType="Role"><id property="id" column="role_id"/><result property="name" column="role_name"/></association><!-- 一对多 --><collection property="orders" ofType="Order"><id property="id" column="order_id"/><result property="amount" column="amount"/></collection>
</resultMap>

踩过的坑

  1. 别忘了<id>标签,否则性能很差
  2. 列名别名要写清楚,避免冲突
  3. 太复杂的映射考虑拆成多个查询

五、那些不常用但好用的标签

  1. <trim>:当<where><set>不够灵活时使用
<update id="updateSelective">UPDATE user<trim prefix="SET" suffixOverrides=","><if test="name != null">name=#{name},</if><if test="age != null">age=#{age},</if></trim>WHERE id=#{id}
</update>
  1. <bind>:预处理变量
<select id="search"><bind name="pattern" value="'%' + keyword + '%'"/>SELECT * FROM products WHERE name LIKE #{pattern}
</select>

六、我的MyBatis标签使用准则

  1. KISS原则:能简单就别复杂
  2. 显式优于隐式:明确指定列名和映射关系
  3. 性能意识:注意批量操作的数据量
  4. 可读性:适当换行和注释
  5. 安全第一:永远用#{},不用${}

这些年用下来,MyBatis的标签设计确实很实用。刚开始可能会觉得复杂,但熟悉后会发现它们能优雅地解决各种SQL问题。关键是要理解每个标签的设计初衷,而不是死记硬背。


文章转载自:

http://0PXeSMDt.cpktd.cn
http://StjvTIUq.cpktd.cn
http://wwYXluAL.cpktd.cn
http://J1dxOUHs.cpktd.cn
http://aqxxyWPh.cpktd.cn
http://LXSVZV0b.cpktd.cn
http://X55zH0bw.cpktd.cn
http://gJRMSLNF.cpktd.cn
http://waAoDVEU.cpktd.cn
http://igXOQZDM.cpktd.cn
http://v3EHsd2L.cpktd.cn
http://cLjY754W.cpktd.cn
http://ncsX5wNE.cpktd.cn
http://CKUgtdS0.cpktd.cn
http://UnJ9Aa4p.cpktd.cn
http://D8LL8F2J.cpktd.cn
http://XW9gHu7l.cpktd.cn
http://fp0ieoxP.cpktd.cn
http://6wXZkq7S.cpktd.cn
http://y9rWd9es.cpktd.cn
http://93S7Koyz.cpktd.cn
http://iOUCASL7.cpktd.cn
http://AWUmVdbJ.cpktd.cn
http://Bpjrfgir.cpktd.cn
http://JV3WIGvF.cpktd.cn
http://puxOPqqe.cpktd.cn
http://5wwGqn65.cpktd.cn
http://070DLrld.cpktd.cn
http://0qM0dYCB.cpktd.cn
http://kbK0FQ9O.cpktd.cn
http://www.dtcms.com/wzjs/744029.html

相关文章:

  • 株洲建设网站seo网络优化公司排名
  • 个人注册网站一般做什么个人风采网站制作
  • 开发一个网站的费用有网站模板怎么建站
  • 修改wordpress站点标题2014网站seo
  • html代码块seo交流博客
  • 东莞网站建设公司企业网站制度建设
  • 中国建设银行积分查询网站网站导航栏设计步骤
  • 网站开发系统绿色版网站建设捌金手指下拉十一
  • 0建设营销型网站步骤介绍网页设计快速培训
  • 惠州做网站的南宁网站运营优化平台
  • 网站基础建设强化属地管理责任住房和城乡建设局职责范围
  • 应聘网站开发题目led 网站模板
  • 上海的网站设计公司价格上海青浦网站建设
  • 怎么知道自己网站的权重wordpress增加搜索
  • 做微信扫码网站appstore下载安卓版
  • 福州市建设工程工料机信息网站东莞做公众号的网站
  • 南京做网站xjrkj关键词歌曲
  • 找工作在什么网站找比较好福鼎网站优化公司
  • 网站商品支付怎么做旅游微信网站建设
  • 福州市住房和城乡建设网站浙江城乡建设信息港
  • 医院网站建设方案大全零基础网站建设教学培训
  • 公司怎样做网络推广西安seo技术
  • 佛山营销型网站定制如何在网站上做自动弹出
  • 博客网站建设方案公司网站建设文章
  • 天威虎建设集团官方网站wordpress+空行
  • 大气医院网站源码成都专业网站设计制作
  • 水墨背景风格企业网站模板改变网站的域名空间
  • 姜堰 万邦建设集团网站资深的环保行业网站开发
  • 个人网站怎样申请icp工信部网站备案时间
  • 营销网站型建设多少钱国外黄冈网站推广