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

MyBatis面试题系列三

1、#{}${}的区别是什么?
#{}是预编译处理,${}是字符串替换。
Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的
set 方法来赋值;
Mybatis 在处理${}时,就是把${}替换成变量的值。
使用#{}可以有效的防止 SQL注入,提高系统安全性。
2、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
第 1种: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类
的属性名一致。

<select id=”selectorder” parametertype=”int” resultetype=”me.gacl.domain.order”>select order_id id,order_no orderno,order_price price fromorders where order_id=#{id};</select>

第2种:通过<resultMap>来映射字段名和实体类属性名的一一对应的关系。

<select id="getOrder" parameterType="int" resultMap="orderresultmap">select * from orders where order_id=#{id}</select><resultMap type=”me.gacl.domain.order” id=”orderresultmap”><!–用id属性来映射主键字段–><id property=”id”  column=”order_id”><!–用result属性来映射非主键字段,property为实体类属性名,column
为数据表中的属性–><result property=“orderno” column=”order_no”/><result property=”price” column=”order_price”/></reslutMap>

3、模糊查询like语句该怎么写?
第1种:在Java代码中添加sql通配符。

string wildcardname=“%smi%”;list<name> names=mapper.selectlike(wildcardname);
<select id=”selectlike”>select * from foo where bar like #{value}</select>

第 2种:在sql语句中拼接通配符,会引起sql注入


string wildcardname = “smi”;list<name> names = mapper.selectlike(wildcardname);<select id=”selectlike”>select * from foo where bar like "%"#{value}"%"</select>

阿里云“99计划”,新老同享,低价长效,助力开发者普惠上云!


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 何为屎山代码?
  • Facebook海外户|如何制作出引人注目的Facebook广告素材?
  • lua vm 五: upvalue
  • django ORM model update常规用法
  • java面试题:java三大特性多态又是如何实现的
  • 作文笔记11 推荐一本书
  • 磁力狗ciligou,磁力链接使用步骤
  • Java--Math类和Random类
  • 【设计模式】面向对象与UML
  • uni-app加持下的Vue开发:效率与功能的双赢
  • requests库的常用方法
  • 数据结构--第七章--树和二叉树
  • 调研管理系统的设计
  • odoo15升级odoo16遇到的问题及解决过程
  • 关于fedora中的wheel组
  • 10个确保微服务与容器安全的最佳实践
  • android 一些 utils
  • flask接收请求并推入栈
  • httpie使用详解
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • Redis中的lru算法实现
  • V4L2视频输入框架概述
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 编写高质量JavaScript代码之并发
  • 订阅Forge Viewer所有的事件
  • 关于List、List?、ListObject的区别
  • 排序算法之--选择排序
  • 前端js -- this指向总结。
  • 区块链共识机制优缺点对比都是什么
  • 设计模式 开闭原则
  • 手机端车牌号码键盘的vue组件
  • 微信小程序:实现悬浮返回和分享按钮
  • 在Docker Swarm上部署Apache Storm:第1部分
  • (LeetCode 49)Anagrams
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (新)网络工程师考点串讲与真题详解
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ***检测工具之RKHunter AIDE
  • *2 echo、printf、mkdir命令的应用
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET微信公众号开发-2.0创建自定义菜单
  • @antv/g6 业务场景:流程图
  • @EnableWebMvc介绍和使用详细demo
  • [20160902]rm -rf的惨案.txt
  • [Angular] 笔记 20:NgContent
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [BZOJ 4034][HAOI2015]T2 [树链剖分]
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [CERC2017]Cumulative Code