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

网站数据中心的建设wordpress 升级失败

网站数据中心的建设,wordpress 升级失败,做动态h5的网站,如何把怎己做的网页放到网站上MyBatis 中常用的 SQL 语句与标准 SQL 语句基本一致&#xff0c;但 MyBatis 提供了一些额外的特性和标签来更方便地构建和管理 SQL 语句。以下列出 MyBatis 中常用的 SQL 语句&#xff0c;并结合 MyBatis 的特性进行说明&#xff1a; 1. SELECT (查询) 基本查询: <select…

MyBatis 中常用的 SQL 语句与标准 SQL 语句基本一致,但 MyBatis 提供了一些额外的特性和标签来更方便地构建和管理 SQL 语句。以下列出 MyBatis 中常用的 SQL 语句,并结合 MyBatis 的特性进行说明:

1. SELECT (查询)

  • 基本查询:
<select id="selectUserById" parameterType="int" resultType="User">SELECT id, username, password, email FROM users WHERE id = #{id}
</select>
  • id: 该 SQL 语句的唯一标识符,用于在 Java 代码中引用。

  • parameterType: 传入参数的类型 (可选,MyBatis 可以自动推断)。

  • resultType: 查询结果映射的 Java 类型 (POJO)。

  • #{id}: 占位符,表示传入的参数,MyBatis 会自动进行参数绑定和类型转换,防止 SQL 注入。

  • 多条件查询 (动态 SQL):

<select id="selectUsers" parameterType="map" resultType="User">SELECT id, username, password, email FROM users<where><if test="username != null and username != ''">AND username LIKE CONCAT('%', #{username}, '%')</if><if test="email != null and email != ''">AND email = #{email}</if></where>
</select>
  • <where>: 自动添加 WHERE 关键字,并处理多余的 ANDOR

  • <if>: 根据条件判断是否包含该 SQL 片段。

  • test: 条件表达式,使用 OGNL 表达式。

  • LIKE: 模糊查询,CONCAT('%', #{username}, '%') 用于构建模糊查询条件。

  • 关联查询 (JOIN):

<select id="selectUserWithOrders" parameterType="int" resultMap="userWithOrdersResultMap">SELECTu.id AS user_id,u.username,o.id AS order_id,o.order_dateFROM users uLEFT JOIN orders o ON u.id = o.user_idWHERE u.id = #{id}
</select><resultMap id="userWithOrdersResultMap" type="User"><id property="id" column="user_id"/><result property="username" column="username"/><collection property="orders" ofType="Order"><id property="id" column="order_id"/><result property="orderDate" column="order_date"/></collection>
</resultMap>
  • LEFT JOIN: 左连接,获取用户及其所有订单。

  • resultMap: 自定义结果映射,用于处理复杂的关联关系。

  • <collection>: 映射一对多关系,将订单列表映射到 User 对象的 orders 属性。

  • 分页查询 :

<!-- MySQL -->
<select id="selectUsersByPage" parameterType="map" resultType="User">SELECT id, username, password, email FROM users LIMIT #{offset}, #{pageSize}
</select><!-- Oracle -->
<select id="selectUsersByPage" parameterType="map" resultType="User">SELECT * FROM (SELECT t.*, ROWNUM rn FROM (SELECT id, username, password, email FROM users) t WHERE ROWNUM <= #{endRow}) WHERE rn > #{startRow}
</select>
  • LIMIT: MySQL 中的分页关键字。
  • ROWNUM: Oracle 中的伪列,用于分页。
  • 需要根据不同的数据库方言使用不同的分页语法。 MyBatis 提供了 Dialect 接口来支持不同的数据库方言。

2. INSERT (插入)

  • 基本插入:
<insert id="insertUser" parameterType="User">INSERT INTO users (username, password, email) VALUES (#{username}, #{password}, #{email})
</insert>
  • 获取自增主键:
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">INSERT INTO users (username, password, email) VALUES (#{username}, #{password}, #{email})
</insert>
  • useGeneratedKeys="true": 启用获取自增主键。

  • keyProperty="id": 指定将自增主键值设置到 User 对象的哪个属性 (通常是 id)。

  • 批量插入 (foreach):

<insert id="batchInsertUsers" parameterType="java.util.List">INSERT INTO users (username, password, email) VALUES<foreach collection="list" item="user" separator=",">(#{user.username}, #{user.password}, #{user.email})</foreach>
</insert>
  • <foreach>: 循环遍历 list 集合,生成多个插入值。
  • collection: 指定要遍历的集合。
  • item: 集合中每个元素的别名。
  • separator: 分隔符,用于分隔每次循环生成的 SQL 片段。

3. UPDATE (更新)

  • 基本更新:
<update id="updateUser" parameterType="User">UPDATE users SET username = #{username}, password = #{password}, email = #{email} WHERE id = #{id}
</update>
  • 动态更新 (set + if):
<update id="updateUserSelective" parameterType="User">UPDATE users<set><if test="username != null and username != ''">username = #{username},</if><if test="password != null and password != ''">password = #{password},</if><if test="email != null and email != ''">email = #{email},</if></set>WHERE id = #{id}
</update>
  • <set>: 自动添加 SET 关键字,并处理多余的逗号。
  • 只更新传入的非空字段。

4. DELETE (删除)

  • 基本删除:
<delete id="deleteUserById" parameterType="int">DELETE FROM users WHERE id = #{id}
</delete>
  • 批量删除 (foreach):
<delete id="deleteUsersByIds" parameterType="java.util.List">DELETE FROM users WHERE id IN<foreach collection="list" item="id" open="(" close=")" separator=",">#{id}</foreach>
</delete>
  • open: 循环开始前添加的字符串。
  • close: 循环结束后添加的字符串。

5. 其他常用标签和特性

  • <sql>: 定义可重用的 SQL 片段。
<sql id="userColumns">id, username, password, email
</sql><select id="selectUserById" parameterType="int" resultType="User">SELECT <include refid="userColumns"/> FROM users WHERE id = #{id}
</select>
  • #{} vs ${}:
    • #{}: 预编译参数,防止 SQL 注入,推荐使用。
    • ${}: 字符串替换,直接将值拼接到 SQL 语句中,有 SQL 注入风险,谨慎使用 (例如,用于动态表名或列名)。
  • typeAliases: 定义类型别名,简化 resultTypeparameterType 的书写。
  • <cache>: 开启二级缓存,提高查询性能。
  • Result Maps (结果映射): 处理复杂类型和关联关系的映射。

总结:

MyBatis 的核心在于将 SQL 语句与 Java 代码分离,并通过 XML 或注解的方式进行配置。 尽可能使用 #{} 进行参数绑定,以防止 SQL 注入。


文章转载自:

http://nx7Ckrui.gcrLb.cn
http://hABXUNFT.gcrLb.cn
http://lBVBXqPU.gcrLb.cn
http://Mz73PQ3a.gcrLb.cn
http://ALeq4I60.gcrLb.cn
http://ltqnSUqV.gcrLb.cn
http://Ruurz9BE.gcrLb.cn
http://MvrSLcGq.gcrLb.cn
http://WWpTktnm.gcrLb.cn
http://i5gpOB2z.gcrLb.cn
http://rSMcRCxd.gcrLb.cn
http://nXc3ptkU.gcrLb.cn
http://XDe34D3f.gcrLb.cn
http://k0DCjVB7.gcrLb.cn
http://35Lobjck.gcrLb.cn
http://r84p3JGC.gcrLb.cn
http://FWPfHdQA.gcrLb.cn
http://7yuYXRRu.gcrLb.cn
http://y5hzMYCN.gcrLb.cn
http://v4FPqucx.gcrLb.cn
http://7gxn15Ei.gcrLb.cn
http://q9JdURVE.gcrLb.cn
http://RTcEqzvz.gcrLb.cn
http://UXR2MInq.gcrLb.cn
http://JVMqYFn1.gcrLb.cn
http://6gXUxeJI.gcrLb.cn
http://pvAqxGzP.gcrLb.cn
http://srMn8g3p.gcrLb.cn
http://oIJCLUqz.gcrLb.cn
http://44O7bBgI.gcrLb.cn
http://www.dtcms.com/wzjs/628878.html

相关文章:

  • 企业网站建设试题萍乡做网站的公司有哪些
  • 赣州网站制作公司建设兼职网站目的
  • 做一个在线支付网站搜索关键词技巧
  • 自己做网站转发新闻违法么下载官方正版app
  • 济源网站优化wordpress图片轮播插件
  • 网站文章伪原创如何做宝塔安装wordpress教程
  • ppt的网站导航栏怎么做安徽建新建设工程有限公司网站
  • 提供网站制作公司报价wordpress模板下载失败
  • 贵阳微网站意见反馈的网站怎么做
  • 推进网站集约化建设制度2022华为云营销季
  • 网站开发及建设成都企业网站建站
  • 做新媒体应该关注什么网站软文推广的作用
  • 北京 网站建设 公司新网站怎么做seo优化
  • 台州宇洋台州网站建设网站开发工程师简介
  • 门户网站开发工具网站建设需求说明文档
  • 资讯网站的优势自建 wordpress
  • 密云建设网站公司her123 wordpress
  • 双语企业网站源码公司要想做个网站这么弄
  • 济宁 做网站网站seo优化如何做
  • 网站推广广告公司花都网站建设网页设计
  • 酒泉建设局造价官网站浙江平台网站建设哪家有
  • 用手机可以做网站嘛如何做app推广运营
  • 重庆做网站letide关键词优化排名易下拉霸屏
  • 网站seo优化课程烟台 做网站的公司
  • 做完整的网站设计需要的技术做网站设计用什么软件最好
  • jsp做的网站中企动力网站后台
  • 阿里巴巴有几个网站是做外贸的个人网站开发流程
  • 做单页免费模板网站wordpress 移动端网页
  • 司法政务网站群建设引流推广平台是什么意思
  • 网站开发和程序员Wordpress 跨域登录