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

自己如何做网站搜索引擎快速优化排名

自己如何做网站,搜索引擎快速优化排名,北京微信网站建设,旅游网站html5代码文章目录 一、MyBatis动态sql1.1 概述1.2 if元素1.3 foreach元素 二、模糊查询2.1 使用#{字段名}2.2 使用${字段名}2.3 使用concat{%,#{字段名},%}2.4 mybatis中#与$的区别 三、MyBatis结果映射3.1 区别3.2 应用场景 一、MyBatis动态sql 1.1 概述 MyBatis是一个Java持久化框架…

文章目录

  • 一、MyBatis动态sql
    • 1.1 概述
    • 1.2 if元素
    • 1.3 foreach元素
  • 二、模糊查询
    • 2.1 使用#{字段名}
    • 2.2 使用${字段名}
    • 2.3 使用concat{'%',#{字段名},'%'}
    • 2.4 mybatis中#与$的区别
  • 三、MyBatis结果映射
    • 3.1 区别
    • 3.2 应用场景

一、MyBatis动态sql

1.1 概述

MyBatis是一个Java持久化框架,而动态SQL是MyBatis中的一个特性。动态SQL允许在SQL语句中根据不同的条件动态地生成不同的SQL片段。这样可以根据不同的情况来构建灵活的SQL查询语句,而不需要编写多个静态的SQL语句。动态SQL可以通过使用if语句、choose语句、foreach语句等来实现条件判断、循环等功能,从而根据不同的条件生成不同的SQL语句。这种灵活性使得MyBatis在处理复杂的查询需求时非常有用。

1.2 if元素

用于根据条件判断是否包含某个SQL片段。

<update id="updateByPrimaryKeySelective" parameterType="com.xqx.model.Book" >update t_mvc_book<set ><if test="bname != null" >bname = #{bname,jdbcType=VARCHAR},</if><if test="price != null" >price = #{price,jdbcType=REAL},</if></set>where bid = #{bid,jdbcType=INTEGER}</update>

在这个示例动态生成查询语句的条件部分中。id属性指定了映射的唯一标识,也是映射的方法名字。

1.3 foreach元素

用于遍历集合或数组,并生成对应的SQL语句。

 <select id="selectByIn" resultMap="com.xqx.model.Book" parameterType="java.util.List" >select<include refid="Base_Column_List" />from t_mvc_bookwhere bid in<foreach collection="bookIds" open="(" close=")" separator="," item="bid">#{bid}</foreach></select>

二、模糊查询

2.1 使用#{字段名}

这种方式是最常见且推荐的方式。
在SQL语句中使用#{字段名}会将字段值作为预编译参数进行处理,可以有效防止SQL注入攻击。MyBatis会自动为参数添加引号和转义特殊字符,确保查询的准确性和安全性。

 <select id="selectBooksLike1" resultType="com.xqx.model.Book" parameterType="java.lang.String">select * from t_mvc_book where bname like #{bname}
</select>

2.2 使用${字段名}

这种方式是直接将字段值替换到SQL语句中。
在SQL语句中使用${字段名}会将字段值直接拼接到SQL语句中,没有经过预编译处理。
使用这种方式更加灵活,可以完成一些复杂的字符串拼接操作.

  <select id="selectBooksLike2" resultType="com.xqx.model.Book" parameterType="java.lang.String">select * from t_mvc_book where bname like '${bname}'
</select>

2.3 使用concat{‘%’,#{字段名},‘%’}

这种方式使用concat函数将字段值与通配符’%'进行拼接。
类似于第一种方式,使用了预编译参数的方式,相对安全且可读性较好。这种方式适用于需要在查询条件中同时使用通配符前后匹配的情况。

 <select id="like3" resultType="com.xqx.model.Book" parameterType="java.lang.String">select<include refid="Base_Column_List" />from t_mvc_bookwhere bname like concat('%',#{bname},'%');</select>

2.4 mybatis中#与$的区别

  1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。
    如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by ‘111’,
    如果传入的值是id,则解析成的sql为order by “id”.

  2. $将传入的数据直接显示生成在sql中。
    如:order by u s e r i d user_id userid,如果传入的值是111,那么解析成sql时的值为order by 111,
    如果传入的值是id,则解析成的sql为order by id.

    <select id="executeSQL" >${executeSQL}
    </select>
    
  3. #方式能够很大程度防止sql注入。

  4. $方式无法防止Sql注入。

  5. $方式一般用于传入数据库对象,例如传入表名.

  6. 一般能用#的就别用$.

三、MyBatis结果映射

3.1 区别

"resultType"是指查询结果的类型。它指定了查询结果的数据类型,通常是一个Java类或基本数据类型。当查询结果只有一个字段时,可以使用"resultType"来指定该字段的数据类型。

"resultMap"是指查询结果的映射规则。它定义了如何将查询结果映射到Java对象或数据结构中。“resultMap"通常用于复杂的查询结果,其中涉及多个表或多个字段的组合。通过定义"resultMap”,可以指定每个字段如何映射到Java对象的属性或数据结构的元素。

简而言之,"resultType"用于简单的查询结果类型,而"resultMap"用于复杂的查询结果映射规则。

3.2 应用场景

在使用MyBatis中拥有多个场景,返回的结果是多样的

  1. 返回单表的对应的实体类,仅有一个查询结果,可以用resultType/resultMap。
  2. 返回单表的对应的实体类,有多个查询结果,可以用resultType/resultMap。
  3. 返回多表对应结果,仅有一个查询结果,通常用resultType也可以用resultMap。
  4. 返回多表对应结果,有多个查询结果,通常用resultType也可以用resultMap。
  5. 返回单个列段,仅有一个查询结果,就用resultType。
  6. 返回单个列段,有多个查询结果,就用resultType。

如果是单表的情况下,resultType与resultMap都可以使用。

  1. 使用resultMap返回映射关系,指的是实体类与数据库字段的关系
  2. 使用resultType返回List
  3. 使用resultType返回单个对象
  4. 使用resultType返回List【适用于多表查询返回结果集】
  5. 使用resultType返回Map<String,Object>【适用于多表查询返回单个结果集】
http://www.khdw.cn/news/707.html

相关文章:

  • 建站公司还赚钱吗做seo用哪种建站程序最好
  • 张家口网站建设电商自学网
  • 阿里巴巴运营教程seo搜索引擎优化薪酬
  • 黔西南建设厅网站b站视频推广
  • wp网站如何做文件的付费下载搜索关键词热度
  • 网站开发用什么技术做好北京网站设计公司
  • 中装建设官方网站百度站长平台工具
  • 别人公司网站进不去武汉网络seo公司
  • 合肥 网站建设郑州百度公司地址
  • 建材网站开发我们公司想做网络推广
  • 设计网站怎样做色卡宁波关键词优化平台
  • 行业门户网站是什么网站建设方案优化
  • 邯郸做企业网站设计的公司今日头条热搜
  • 剑阁住房和城乡建设厅网站个人博客登录入口
  • 广东城乡建设厅网站首页网站优化包括
  • 网站导航栏不显示十大新媒体平台有哪些
  • 苏州吴中网站建设公司seo整站优化哪家好
  • 山东省建设工程质量监督总站网站百度seo咋做
  • 大连哪家网站建设好跨境电商有哪些平台
  • 手机在线做ppt模板下载网站关键词排名方法
  • 可信网站查询官网百度seo关键词优化费用
  • 帆客建设网站国外网站怎么推广
  • 金融企业类网站模板免费下载seo关键词搜索和优化
  • 微网站开发方案模板深圳做网站的公司
  • 易语言怎么做网站网络推广的手段
  • 深圳专业app网站开发google排名
  • 政府网站建设先进经验汇报长春百度推广电话
  • 佟年做网站给KK什么是互联网营销师
  • 网站建设大概价格可以进入任何网站的浏览器
  • 福田做网站多少钱电商运营基础知识