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

广西智能网站建设平台商丘网站优化公司

广西智能网站建设平台,商丘网站优化公司,深圳网页设计教程,做一个php连接sql网站文章目录 一、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动态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持久化框架而动态SQL是MyBatis中的一个特性。动态SQL允许在SQL语句中根据不同的条件动态地生成不同的SQL片段。这样可以根据不同的情况来构建灵活的SQL查询语句而不需要编写多个静态的SQL语句。动态SQL可以通过使用if语句、choose语句、foreach语句等来实现条件判断、循环等功能从而根据不同的条件生成不同的SQL语句。这种灵活性使得MyBatis在处理复杂的查询需求时非常有用。 1.2 if元素 用于根据条件判断是否包含某个SQL片段。 update idupdateByPrimaryKeySelective parameterTypecom.xqx.model.Book update t_mvc_bookset if testbname ! null bname #{bname,jdbcTypeVARCHAR},/ifif testprice ! null price #{price,jdbcTypeREAL},/if/setwhere bid #{bid,jdbcTypeINTEGER}/update在这个示例动态生成查询语句的条件部分中。id属性指定了映射的唯一标识也是映射的方法名字。 1.3 foreach元素 用于遍历集合或数组并生成对应的SQL语句。 select idselectByIn resultMapcom.xqx.model.Book parameterTypejava.util.List selectinclude refidBase_Column_List /from t_mvc_bookwhere bid inforeach collectionbookIds open( close) separator, itembid#{bid}/foreach/select二、模糊查询 2.1 使用#{字段名} 这种方式是最常见且推荐的方式。 在SQL语句中使用#{字段名}会将字段值作为预编译参数进行处理可以有效防止SQL注入攻击。MyBatis会自动为参数添加引号和转义特殊字符确保查询的准确性和安全性。 select idselectBooksLike1 resultTypecom.xqx.model.Book parameterTypejava.lang.Stringselect * from t_mvc_book where bname like #{bname} /select2.2 使用${字段名} 这种方式是直接将字段值替换到SQL语句中。 在SQL语句中使用${字段名}会将字段值直接拼接到SQL语句中没有经过预编译处理。 使用这种方式更加灵活可以完成一些复杂的字符串拼接操作. select idselectBooksLike2 resultTypecom.xqx.model.Book parameterTypejava.lang.Stringselect * from t_mvc_book where bname like ${bname} /select2.3 使用concat{‘%’,#{字段名},‘%’} 这种方式使用concat函数将字段值与通配符’%进行拼接。 类似于第一种方式使用了预编译参数的方式相对安全且可读性较好。这种方式适用于需要在查询条件中同时使用通配符前后匹配的情况。 select idlike3 resultTypecom.xqx.model.Book parameterTypejava.lang.Stringselectinclude refidBase_Column_List /from t_mvc_bookwhere bname like concat(%,#{bname},%);/select 2.4 mybatis中#与$的区别 #将传入的数据都当成一个字符串会对自动传入的数据加一个双引号。 如order by #user_id#如果传入的值是111,那么解析成sql时的值为order by ‘111’, 如果传入的值是id则解析成的sql为order by “id”. $将传入的数据直接显示生成在sql中。 如order by u s e r i d user_id useri​d如果传入的值是111,那么解析成sql时的值为order by 111, 如果传入的值是id则解析成的sql为order by id. select idexecuteSQL ${executeSQL} /select#方式能够很大程度防止sql注入。 $方式无法防止Sql注入。 $方式一般用于传入数据库对象例如传入表名. 一般能用#的就别用$. 三、MyBatis结果映射 3.1 区别 resultType是指查询结果的类型。它指定了查询结果的数据类型通常是一个Java类或基本数据类型。当查询结果只有一个字段时可以使用resultType来指定该字段的数据类型。 resultMap是指查询结果的映射规则。它定义了如何将查询结果映射到Java对象或数据结构中。“resultMap通常用于复杂的查询结果其中涉及多个表或多个字段的组合。通过定义resultMap”可以指定每个字段如何映射到Java对象的属性或数据结构的元素。 简而言之resultType用于简单的查询结果类型而resultMap用于复杂的查询结果映射规则。 3.2 应用场景 在使用MyBatis中拥有多个场景返回的结果是多样的 返回单表的对应的实体类仅有一个查询结果可以用resultType/resultMap。返回单表的对应的实体类有多个查询结果可以用resultType/resultMap。返回多表对应结果仅有一个查询结果通常用resultType也可以用resultMap。返回多表对应结果有多个查询结果通常用resultType也可以用resultMap。返回单个列段仅有一个查询结果就用resultType。返回单个列段有多个查询结果就用resultType。 如果是单表的情况下resultType与resultMap都可以使用。 使用resultMap返回映射关系指的是实体类与数据库字段的关系使用resultType返回List使用resultType返回单个对象使用resultType返回List【适用于多表查询返回结果集】使用resultType返回MapString,Object【适用于多表查询返回单个结果集】
http://www.hkea.cn/news/14352884/

相关文章:

  • 深度科技商业官方网站网站建设设计有限公司
  • 网站备案要多少钱外链推广
  • 品牌网站建设市场分析凯胜东营小程序开发
  • 网站规划与网页设计总结wordpress drupal
  • 洛阳便宜网站建设费用网站建设专业网站设计公司物格网
  • 网站开发图前端开发工程师招聘
  • wap网站开发多少钱网站设计与开发公司
  • 昆明企业做网站wordpress多专题模版
  • 网站备案号取消原因种子搜索引擎 磁力天堂
  • 做网站行业怎么样快速做网站视频
  • 网站允许flash搜索指数在线查询
  • 义乌建设局网站定制企业网站
  • 餐饮美食网站模板源码网站建设或网站优化排名
  • 文登住房和建设局网站外贸网站建设 推广
  • 中国建设银行集团网站找人做网站需要交接什么
  • 南通市区有哪几家做网站的建立网站的技术
  • 深圳机械网站建设自己开发一款app软件
  • 网站建设合同 售后维护期中山百度推广优化排名
  • 上海浦东建筑建设网站丽水微信网站建设哪家好
  • 学校如何建网站石家庄划定6个高风险区
  • 官方网站建设项目询价有人有片视频吗免费的下载
  • 优秀企业网站建设做外单要上什么网站
  • 做网站用tomcat做网站对程序员说那些需求
  • 湖南佳程建设有限公司网站上海巴士公司
  • 北京经济技术开发区建设局网站南阳做玉器网站
  • 都匀网站开发7万字短篇小说哪家网站做的好
  • 网站后台开发教程室内设计师培训网
  • 网站制作费一般多少中山 在门户网站推广
  • 长沙武广新城建设网站快捷的赣州网站建设
  • 网站开发需求文档案例做网站如何买量