JavaEE进阶(Mybatis)5/31

这篇具有很好参考价值的文章主要介绍了JavaEE进阶(Mybatis)5/31。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. SQL注入

2.concat()用于like模糊查询

3.resultMap

4.

5.动态SQL

6.foreach标签


1. SQL注入

$问题会导致SQL注入       

JavaEE进阶(Mybatis)5/31

 因为$是直接替换的,and的优先级高于or

true or false

#不存在SQL注入的问题,因为他是预编译的,他先把#{ }的内容替换为?占位符然后把这个占位符替换掉,MySQL认为它不是关键字,而是值

一个是直接替换,一个是把他当作值处理了

2.concat()用于like模糊查询

concat是MySQL中的方法

JavaEE进阶(Mybatis)5/31

3.resultMap

作用

        1.我们知道resultType要求java属性和数据库字段保持一致,如果不一致的话就不能查 询。使用resultMap可以解决这个不一致的问题

        2.一对一和一对多关系可以使用resultMap映射并查询数据         

JavaEE进阶(Mybatis)5/31

如果数据库的column和对象的property名字不一致还可以把SQL语句重命名(使用的比较多)

JavaEE进阶(Mybatis)5/31

4.

JavaEE进阶(Mybatis)5/31

 对该类的实例的打印只会打印username,不会打印它父类的属性@Date注解的缺点

当Lombok提供toString用户还重写toString的话优先调用用户写的

实体 类需要写Serializable接口 可序列化

5.动态SQL

if标签

<if test="xxx!=null">

xxx,

</if>

JavaEE进阶(Mybatis)5/31

 

trim标签

<trim pre   suf   ><trim>

JavaEE进阶(Mybatis)5/31

 suffixOverrides","表示把尾部的,去掉

where标签

Where标签自动去除最前面的and   不用再trim去除了,一定配合if使用

JavaEE进阶(Mybatis)5/31

 如果where标签无内容,则不会生成sql关键字where        

JavaEE进阶(Mybatis)5/31

 

set标签

set是去掉最后的一个,的

set是update更新的

JavaEE进阶(Mybatis)5/31

 JavaEE进阶(Mybatis)5/31

 

6.foreach标签

批量的(操作)删除 

 

JavaEE进阶(Mybatis)5/31文章来源地址https://www.toymoban.com/news/detail-471481.html

到了这里,关于JavaEE进阶(Mybatis)5/31的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaEE进阶】MyBatis的创建及使用

    MyBatis是一种开源的持久层框架,它可以与Java程序一起使用,用于简化数据库操作。MyBatis提供了一个简单且灵活的方式来将Java对象映射到关系型数据库中的数据表。 MyBatis的主要目标是通过将SQL查询与Java代码的解耦来简化数据库访问,并提供了丰富的映射功能和灵活的查询选

    2024年02月12日
    浏览(37)
  • MyBatis进阶:掌握MyBatis动态SQL与模糊查询、结果映射,让你在面试中脱颖而出!!

    目录 一、引言 二、MyBatis动态SQL 2.1.if元素使用 2.2.foreach元素使用 三、MyBatis模糊查询 ①使用#{字段名} ②使用${字段名} ③使用concat{\\\'%\\\',#{字段名},\\\'%\\\'} 总结 四、MyBatis结果映射 4.1.案例演示 4.1.1.resultType进行结果映射 4.1.2.resultMap进行结果映射 在当今的软件开发环境中,数据库的使

    2024年02月11日
    浏览(46)
  • MyBatis进阶:告别SQL注入!MyBatis分页与特殊字符的正确使用方式

    目录 引言 一、使用正确的方式实现分页 1.1.什么是分页 1.2.MyBatis中的分页实现方式 1.3.避免SQL注入的技巧 二、特殊字符的正确使用方式 2.1.什么是特殊字符 2.2.特殊字符在SQL查询中的作用 2.3.如何避免特殊字符引起的问题 2.3.1.使用CDATA区段  2.3.2.使用实体引用 三、总结和展望

    2024年02月11日
    浏览(40)
  • 论文阅读-AFLNET:一种用于网络协议的灰盒模糊器

    现有服务器模糊测试的困难性: 服务器具有庞大的状态空间 服务器的响应依赖于当前消息和内部服务器状态 现有模糊测试方法在处理服务器模糊测试时的局限性 协议规范和实际协议实现之间的不匹配 AFLNet的创新(解决问题): 变异方法:AFLNet采用了变异方法,通过对初始

    2024年02月07日
    浏览(50)
  • javaee spring依赖注入之spel方式

    2024年02月11日
    浏览(41)
  • mybatis模糊查询以及结果封装详解

    创建maven项目:项目结构如图所示 准备数据库表: 准备pom.xml所需的依赖: 编写核心配置文件加载所需要的资源 编写config.xml文件 创建工厂连接数据处理工具SqlSessionUtil.java SqlSessionUtil.java 创建学生实体类对象Student.java 1、添加模糊查询的接口方法:getStudentSname; 2、配置接口方

    2023年04月22日
    浏览(49)
  • SQL防止注入工具类,可能用于SQL注入的字符有哪些

    SQL注入是一种攻击技术,攻击者试图通过在输入中注入恶意的SQL代码来干扰应用程序的数据库查询。为了防止SQL注入,你需要了解可能用于注入的一些常见字符和技术。以下是一些常见的SQL注入字符和技术: 单引号 \\\' ​: 攻击者可能会尝试通过输入 ​ ​\\\'​ ​ 来结束 SQL 查

    2024年02月21日
    浏览(43)
  • MyBatis动态SQL、模糊查询与结果映射

    目录 前言 一、MyBatis动态SQL 1.动态SQL是什么 2.动态SQL的作用 3.常用动态SQL元素 1. where + if 元素 2. set + if 元素 3. choose + when + otherwise 元素 4. 自定义 trim 元素  1. 自定义 trim 元素改写上面的 where + if 语句 2. 自定义 trim 元素改写上面的 set + if 语句 5. foreach 元素 6.SQL片段重用 二、

    2024年02月11日
    浏览(40)
  • JavaSE、JavaEE、JavaWeb 三大工程目录详解

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! JavaSE、JavaEE 和 JavaWeb 是 Java 开发中的三个重要框架,它们都是为了支持 Java 应用程序的开发而设计

    2023年04月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包