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

有关网站建设的视频云安区学校网站建设统计表

有关网站建设的视频,云安区学校网站建设统计表,体育网站模版,济南网站建设首推企优互联不错目录 什么是MyBtais动态语句#xff1f;#xff1f;#xff1f; MyBatis常用的动态标签和表达式 if标签 Choose标签 where标签 MyBatis模糊查询 #与$的区别 ​编辑 MyBatis映射 resultType resultMap 什么是MyBtais动态语句#xff1f;#xff1f;#xff1f;…目录 什么是MyBtais动态语句 MyBatis常用的动态标签和表达式 if标签 Choose标签 where标签 MyBatis模糊查询  #与$的区别 ​编辑 MyBatis映射 resultType resultMap 什么是MyBtais动态语句 MyBatis动态语句是指在编写SQL语句时使用MyBatis提供的动态标签和表达式根据不同的条件生成不同的SQL语句片段。通过使用动态语句我们可以根据不同的条件动态地拼接SQL语句使其更灵活和可复用。 MyBatis常用的动态标签和表达式 if标签 用于根据条件判断是否包含某个SQL语句片段。当条件成立时会将if标签内部的SQL语句包含到最终生成的SQL语句中 示例代码 select idgetUser parameterTypeint resultTypeUserSELECT * FROM user WHERE 11if testid ! nullAND id #{id}/ifif testusername ! nullAND username #{username}/if /select 上面属性解释具体定义一个查询语句的标签id属性指定了查询语句的唯一标识parameterType属性指定了输入参数的类型resultType属性指定了返回结果的类型 if testid ! null:动态语句的起始标签用于判断条件是否成立 AND id #{id}            :SQL语句片段 将id!null 成立sql条件包含到最终生成的SQL语句中 AND username #{username}SQL语句片段当条件username ! null成立时将被包含到最终生成的SQL语句中 其中的 test属性用于指定一个表达式用来判断条件是否成立。表达式可以是任意的合法表达式通常使用参数的属性进行判断。#{}是MyBatis中的占位符可以获取参数的值。 Choose标签 使用choose标签和when、otherwise标签来实现多条件选择根据条件选择对应的SQL语句片段 示例代码 select idgetUser parameterTypeint resultTypeUserSELECT * FROM user WHERE 11choosewhen testid ! nullAND id #{id}/whenwhen testusername ! nullAND username #{username}/whenotherwiseAND age #{age}/otherwise/choose /select 在上面的代码otherwise标签用于指定条件都不成立时执行的SQL语句片段。 where标签 使用where标签将条件拼接到WHERE子句中如果条件不成立则不会生成WHERE关键字  示例代码 select idgetUser parameterTypeint resultTypeUserSELECT * FROM userwhereif testid ! nullAND id #{id}/ifif testusername ! nullAND username #{username}/if/where /select Set标签 使用set标签将更新的字段拼接到SET子句中如果条件不成立则不会生成SET关键字  实例代码 update idupdateUser parameterTypeUserUPDATE usersetif testusername ! nullusername #{username},/ifif testpassword ! nullpassword #{password},/if/setWHERE id #{id}MyBatis模糊查询  #与$的区别 #井号       用于预编译阶段也称为安全的参数替换。当我们使用#来表示一个参数时MyBatis会自动将传入的参数进行预编译处理并且会对参数进行类型安全检查然后将其转义后嵌入到SQL语句中。这样可以防止SQL注入攻击。因此#通常在我们需要传递动态参数时使用。在SQL语句中使用#表示参数的位置 例如 SELECT * FROM user WHERE id #{userId} $美元符号 美元符号则是直接拼接参数值。当我们使用来表示一个参数时MyBatis会把参数原封不动地拼接到SQL语句中而不会进行任何转义或预编译处理。这样的参数替换是不安全的容易受到SQL注入攻击。因此通常在我们确保参数安全或需要传递动态的表名、列名等情况下使用。在SQL语句中使用表示参数的内容 例如: SELECT * FROM ${tableName} 注意使用$进行参数替换时我们需要自己确保参数的值正确并且安全以避免潜在的安全风险。而使用#进行参数替换时MyBatis会帮助我们处理参数的类型安全和转义等问题更加安全可靠。   代码展示 为了更好的体现出#跟$的区别我们配置三种方式来测试#和$及concat 在我们前面一篇的Mybatis讲解中生成增删改查的类中配置刚所写的xml中的模糊查询方法 package com.xiaoxu.mapper;import com.xiaoxu.model.Book; import org.apache.ibatis.annotations.Param;import java.util.List; import java.util.Map;public interface BookMapper {int deleteByPrimaryKey(Integer bid);int insert(Book record);int insertSelective(Book record);Book selectByPrimaryKey(Integer bid);int updateByPrimaryKeySelective(Book record);int updateByPrimaryKey(Book record);ListBook selectByBids(Param(bids) List bids);ListBook like1(Param(bname)String bname);ListBook like2(Param(bname)String bname);ListBook like3(Param(bname)String bname);在前端和后端进行相对应的dao方法 定义一个接口并实现 接口方法 ListBook like1(Param(bname) String bname);ListBook like2(Param(bname) String bname);ListBook like3(Param(bname) String bname); 实现类 package com.xiaoxu.biz.impl;import com.xiaoxu.biz.BookBiz; import com.xiaoxu.mapper.BookMapper; import com.xiaoxu.model.Book;import java.util.List;/*** author小徐* site www.veryedu.cn* company xu集团* create 2023-08-20 16:02*/ public class BookBizImpl implements BookBiz {private BookMapper bookMapper;public BookBizImpl() {}public BookMapper getBookMapper() {return bookMapper;}public void setBookMapper(BookMapper bookMapper) {this.bookMapper bookMapper;}Overridepublic int deleteByPrimaryKey(Integer bid) {return bookMapper.deleteByPrimaryKey(bid);}Overridepublic int insert(Book record) {return bookMapper.insert(record);}Overridepublic int insertSelective(Book record) {return bookMapper.insertSelective(record);}Overridepublic Book selectByPrimaryKey(Integer bid) {return bookMapper.selectByPrimaryKey(bid);}Overridepublic int updateByPrimaryKeySelective(Book record) {return bookMapper.updateByPrimaryKeySelective(record);}Overridepublic int updatByPrimaryKey(Book record) {return bookMapper.updatByPrimaryKey(record);}Overridepublic ListBook selectByBids(List bids) {return bookMapper.selectByBids(bids);}Overridepublic ListBook like1(String bname) {return bookMapper.mhcx1(bname);}Overridepublic ListBook like2(String bname) {return bookMapper.mhcx2(bname);}Overridepublic ListBook like3(String bname) {return bookMapper.mhcx3(bname);}} 接下来测试#号记得调用#的方法 Testpublic void like1() {bookBiz.like1(%圣墟%).forEach(System.out::println);} 运行结果 #{bname}会将传入的bname值进行预编译转义处理然后再拼接到SQL语句中 测试$号 Testpublic void mhcx2() {bookBiz.mhcx2(%圣墟%).forEach(System.out::println);} 运行会报错 在测试一遍 MyBatis映射 resultType 是在 SQL 映射文件中指定查询结果的数据类型。它可以直接指定一个基本数据类型如 String、Integer 等或一个实体类的全限定名。当查询结果只包含单个简单数据类型时通常使用 resultType 例如 select idgetUserAge resultTypeIntegerSELECT age FROM user WHERE id #{userId} /select resultMap 是用于处理复杂的查询结果映射关系。它定义了数据库列和 Java 对象属性之间的映射规则。通过使用 resultMap我们可以将查询结果映射到一个复杂的对象结构中可以包含嵌套查询结果、联合查询等复杂情况。通常在查询结果需要转换成复杂对象或者集合时使用 resultMap resultMap iduserMap typeUserid columnid propertyid/result columnname propertyname/result columnage propertyage/!-- 其他属性映射 -- /resultMapselect idgetUsers resultMapuserMapSELECT * FROM user /select 其中 resultMap 标签定义了 User 类中各个属性与数据库表的列之间的映射规则并设置了唯一标识符 userMap。在 select 标签中使用 resultMap 属性指定查询结果的映射关系。 总结来说resultType 适用于简单的查询结果映射而 resultMap 适用于复杂的查询结果映射。根据实际情况选择合适的方式可以提高 MyBatis 查询结果的灵活性和可读性。
http://www.hkea.cn/news/14336116/

相关文章:

  • 做公众号试卷的网站淮南网站建设公司
  • 深圳宝安网站制作公司外贸网站设计设计注意事项
  • 创建网站流程图怎么找外包公司
  • 企业网站模板中文 产品列表泉州企业网站建设
  • 网站建设还流行吗品牌设计流程
  • 北京中兴时代网站建设专业团队建设实施方案
  • 网站建设制作定制wordpress展示页面
  • 网站和数据库微信运营专员
  • 网站建立的方式是什么张家港建设局门户网站
  • 做公司网站,哪个程序用的多保定百度推广排名
  • 用jsp怎么做的购物网站wordpress站点设置使用期限
  • 电子商城开发网站开发四个常见的网络营销方式
  • 网站建设前台功能设计与实现开网站怎么开
  • 网站服务器无法访问邢台网站建设平台
  • 论坛门户网站开发保定网站建设推广
  • 品牌设计网站怎么做wordpress小工具使用
  • 建站用哪个模板好如何快速推广自己的网站
  • 阜蒙县建设学校网站是什么做网页的软件h
  • 泉州做网站便宜做网络优化哪家公司比较好
  • 北京代理网站备案深圳网站推广哪家好
  • 软件开发公司在哪里企业seo解决方案
  • 建设 政务数据共享网站网站搭建公司哪家好
  • flask做的网站如何上传文件东阿网站制作
  • 网站建设运营有限公司网站国内服务器租用
  • 网站开发经济可行性最有效的app推广方式有哪些
  • 网页网站公司如何做备份广西最优秀的品牌网站建设公司
  • 网站的收费标准怎么创建网页
  • 衡水做网站推广找谁专门做护肤品的网站是
  • 石家庄建设公司网站个人做网站有什么用
  • 除了亚马逊还有啥网站做海淘农业银行官网