混合面试题

索引在单表中建议不要创建的数量超过6个,在大的字段上不要建立索引例如书的目录不要以文章的一个长句子为目录索引

mybatis是半自动的,是JDBC的浅封装,以sql语句的工作量换取了程序执行的高灵活性。

foreach标签:用于循环语句,它很好的支持了数据和 List、set 接口的集合,并对此提供遍历的功能。

3、为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

最明显的就是sql语句的编写方式MyBatis 需要手动编写 SQL,Hibernate自动生成

4、Hibernate 和 MyBatis 的区别

相同,不同,选用方式这三个方面回答。mybatis在新兴项目中应用的比较多,Hibernate在老旧项目中应用的比较多

6、MyBatis编程步骤是什么样的?

SQLSessionFactoryBuilder是用于对xml文件的读取并解析

SqlSessionFactory线程安全的重量级对象,会采用单例模式进行创建

sqlsession充当了实体管理器的功能,是一个线程不安全的轻量级对象,是对connection对象的浅封装,以ORM方式进行数据库操作

(6)在web中以opensessionInviewFilter的方式进行编程,opensessionInviewFilter是一个过滤器,servlet三生命周期,默认是单实例多实例,如果要破坏则使用single。。。忘了

连接是一个稀有资源,当开了连接时要注意及时释放连接。

  1. #{}和${}的区别?

#{}默认使用的是perpared

预编译处理就是PERPARED,在一定程度上可以避免sql语句注入问题,sql语句是非过程语言。Perparedstatment。

  1. 通常一个Xml映射文件,都会写一个Dao接口与之对应,那么这个Dao接口的工作原理是什么?Dao接口里的方法、参数不同时,方法能重载吗?

dao接口是一个代理,典型的阳奉阴违。任何一个增删改(insert,delete,update)的标签都对应的是MapperStatement

  1. 在Mapper中如何传递多个参数?

一般建议使用map

  1. Mybatis动态sql有什么用?执行原理是什么?有哪些动态sql?
<!--动态sql语句-->
<set><if test = "username != null">username = #{username.jdbcType = VARCHAR},</if>
</set>

重点注意foreach语句

  1. Mybatis实现一对一有几种方式?具体是怎么操作的?

表的关联有有三种方式1:1,1:N,N:M

多表的联合查询有三种方式:(1)交叉连接又称笛卡尔积

select * * from tbl_user;

(2)内连接:满足条件显示分为等值内连接,非等值连接

(3)外连接:左外,右外,全外(mysql不支持全外)

  1. Mybatis实现一对多有几种方式?具体是怎么操作的?

建议一般使用联合查询

方法一:

  <!-- 获取用户信息的同时获取所有对应的角色信息 --><select id="selectUserAndRoles" parameterType="long" resultMap="extResultMap">select u.*,r.name,ur.* from tbl_users u left join tbl_user2role ur on u.id=ur.user_idleft join tbl_roles r on ur.role_id=r.id where u.id=#{id,jdbcType=BIGINT}</select>
  <resultMap id="extResultMap" type="com.yan.entity.User" extends="BaseResultMap"><collection property="roleSet" ofType="com.yan.entity.Role"><id column="role_id" jdbcType="BIGINT" property="id" /><result column="name" jdbcType="VARCHAR" property="name" /><result column="descn" jdbcType="VARCHAR" property="descn" /></collection></resultMap>

方法2:

  <resultMap id="extResultMap" type="com.yan.entity.User" extends="BaseResultMap"><collection property="roleSet" column="id" select="selectRoleByKey"/></resultMap><select id="selectRoleByKey" parameterType="long" resultMap="com.yan.mapper.RoleMapper.BaseResultMap">select r.*,ur.* from tbl_roles r left join tbl_user2role ur on ur.role_id=r.id where ur.user_id=#{id}</select>
  <!-- 获取用户信息的同时获取所有对应的角色信息 --><select id="selectUserAndRoles" parameterType="long" resultMap="extResultMap">select * from tbl_users where id=#{id,jdbcType=BIGINT}</select>

优先使用联合查询,会提高性能,在分页查询时出现问题时则使用嵌套查询,但嵌套查询会导致1+N问题直播16:37

参数类型与结果映射搭配使用

linkedhashmap:底层是双向链表记录插入顺序。LinkedList 底层使用的是双向循环链表数据

spring中security体现了一般的权限管理方法,提供了更多的方法,shiro也是一种权限管理的方法基本使用这个方法,是一个轻量级的工作原理主要包括身份验证和授权两个方面

跟踪用户 4 大方法

  • 隐藏域

  • URL (统一资源管理器,网络连接地址即网址)重写 http://localhost:8080/dd.do?id=11

  • Cookie 用于实现客户端跟踪用户一种是文件cookie一种是内存cookie(内存cookie用来存储一个编号是UUID)

    cookie大小会有限制:一般范围在4KB到10KB之间

  • session 用于实现服务器端跟踪用户,但是需要客户端的内存 Cookie 的支持,每次提交时需要传递一个 Session的编号,用于区分不同用户,一个用户一个session 例如购物车。必须实现序列化接口

静态资源(static)是不会因人因时因地而发生变化的资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做一个蛋糕店小程序需要哪些步骤?

对于一些不懂技术的新手来说&#xff0c;创建蛋糕店小程序可能会感到有些困惑。但是&#xff0c;有了乔拓云平台的帮助&#xff0c;你可以轻松地创建自己的蛋糕店小程序。下面&#xff0c;我将为大家详细介绍一下具体的操作步骤。 首先&#xff0c;登录乔拓云平台并进入后台管理…

Mysql报错 mysqladmin flush-hosts

出现这个的原因是错误连接达到数据库设置的最大值。 此时需要释放重置连接最大值。 进入mysql使用命令 flush-hosts;环境说明&#xff1a; 内网测试服务器192.168.18.251 为WEB服务器&#xff0c;安装了mysql; 内网音视频转码服务器192.168.18.253安装了转码工具&#xff0…

Java“牵手”根据关键词搜索(分类搜索)义乌购商品列表页面数据获取方法,义乌购API实现批量商品数据抓取示例

义乌购商城是一个网上批发购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取义乌购商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问义乌购商城的网页来获取商品详情信息。以下是两种常用方法…

网络安全---Ring3下动态链接库.so函数劫持

一、动态链接库劫持原理 1.1、原理 Unix操作系统中&#xff0c;程序运行时会按照一定的规则顺序去查找依赖的动态链接库&#xff0c;当查找到指定的so文件时&#xff0c;动态链接器(/lib/ld-linux.so.X)会将程序所依赖的共享对象进行装载和初始化&#xff0c;而为什么可以使用…

[软件工具]精灵标注助手目标检测数据集格式转VOC或者yolo

有时候我们拿到一个数据集发现是xml文件格式如下&#xff1a; <?xml version"1.0" ?> <doc><path>C:\Users\Administrator\Desktop\test\000000000074.jpg</path><outputs><object><item><name>dog</name>…

7个改变玩法规则的ChatGPT应用场景

ChatGPT因各种原因受到了广泛关注&#xff1a;ChatGPT可以充当各种改善生活改进工作的小助手&#xff0c;如内容写手、客户支持、语言翻译、编码专家等等。只需在你的聊天内容中添加适当的提示&#xff0c;人工智能将为你提供各项支持。[1] 1.ChatGPT作为内容写手 通过AI的帮助…

基于java SpringBoot CRM客户关系管理系统设计

当今计算机技术和信息管理技术的迅速发展和广泛应用&#xff0c;为管理相关理论的应用提供了广阔的平台。IT技术和DBT技术&#xff08;数据库技术&#xff09;基于《客户信息管理系统》设计的客户信息管理系统正在逐步发展成为管理模式发展的新趋势&#xff0c;企业建立客户信息…

常用的数据可视化工具有哪些?要操作简单的

随着数据量的剧增&#xff0c;对分析效率和数据信息传递都带来了不小的挑战&#xff0c;于是数据可视化工具应运而生&#xff0c;通过直观形象的图表来展现、传递数据信息&#xff0c;提高数据分析报表的易读性。那么&#xff0c;常用的操作简单数据可视化工具有哪些&#xff1…

java八股文面试[JVM]——JVM内存结构

参考&#xff1a; JVM学习笔记&#xff08;一&#xff09;_卷心菜不卷Iris的博客-CSDN博客 JVM是运行在操作系统之上的&#xff0c;它与硬件没有直接的交互 JVM内存结构&#xff1a; 方法区&#xff1a;存储已被虚拟机加载的类元数据信息(元空间) 堆&#xff1a;存放对象实…

视频汇聚/视频云存储/视频监控管理平台EasyCVR提升网络稳定小tips来啦!

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

【点击新增一个下拉框 与前一个内容一样 但不能选同一个值】

点击新增一个下拉框 与前一个内容一样 但不能选同一个值 主要是看下拉选择el-option的disabled,注意不要混淆 <el-form label-width"120px" :model"form" ref"form" style"color: #fff"><template v-for"(trapolicy, i…

史上最全软件测试入门到精通【测试+测开】

测试学习大纲梳理 根据本人过往学习经验与理解&#xff0c;整理了一些关于测试学习内容与顺序&#xff0c;涵盖了基本软件测试工程师需要掌握的所有技能&#xff0c;希望可以给想了解的小伙伴们一些指引与帮助&#xff0c;有错误或需求的欢迎留言指出~ 一、web开发者模式 这…

如何做好作品集?告诉你这7个技巧

又到了一年一度的求职季&#xff0c;无论你是毕业生、专业人士还是自由职业者&#xff0c;一个高质量的个人作品集都是你的第一块垫脚石。作品集的制作是你工作能力的缩影&#xff0c;也是面试官认识你的第一站。制作一个作品集需要展示你的广度、技能和经验&#xff0c;甚至是…

系统级封装(SiP)技术如何助力智能化应用发展呢?

智能化时代&#xff0c;各种智能设备、智能互连的高速发展与跨界融合&#xff0c;需要高密度、高性能的微系统集成技术作为重要支撑。 例如&#xff0c;在系统级封装&#xff08;SiP&#xff09;技术的加持下&#xff0c;5G手机的射频电路面积更小&#xff0c;但支持的频段更多…

Java学数据结构(1)——抽象数据类型ADT 表List、栈Stack和队列Qeue

目录 引出抽象数据类型&#xff08;abstract data type,ADT&#xff09;表ListArrayList,Vector, LinkedListArrayList手动实现与分析Vector的分析&#xff08;线程安全&#xff09;LinkedList 的手动实现与分析 栈stack—后进先出java中stack源码分析栈的应用&#xff1a;检查…

使用 Feature Flags 与可观测工具实现数据库灰度迁移

场景描述 很多企业会遇到数据库升级、或数据库迁移的情况&#xff0c;尤其是在自建数据库服务向云数据库服务、自建机房向云机房、旧数据库向新数据库迁移等场景。 然而&#xff0c;我们需要在整个移植过程中保证其稳定性、避免数据遗失、服务宕机等情况&#xff0c;最常见的移…

数据结构 | 堆

本文简要总结堆的概念。 更新&#xff1a;2023 / 8 / 20 数据结构 | 堆 堆概念方法插入步骤 删除步骤 示例大根堆堆插入删除堆排序 代码实现Python大根堆1.2. heapq 小根堆1.2. heapq 参考链接 堆 概念 如果谈到堆排序&#xff0c;那么必然要说说什么是 大根堆 max heap 和 …

百度23Q2财报最新发布:营收利润加速增长,AI+生态战略渐显规模

百度集团-SW(9888.HK)Q2财报已于2023/08/22(美东)盘前发布&#xff0c;二季度百度集团整体收入实现341亿元&#xff0c;同比增长15%;归属百度的净利润(non-GAAP)达到80亿元&#xff0c;同比增长44%。营收和利润双双实现大幅增长&#xff0c;超市场预期。其中&#xff0c;百度核…

数学建模-常见算法(3)

KMP算法&#xff08;Knuth-Morris-Pratt算法&#xff09; KMP算法是一种用于字符串匹配的算法&#xff0c;它的时间复杂度为O(mn)。该算法的核心思想是在匹配失败时&#xff0c;利用已经匹配的信息&#xff0c;减少下一次匹配的起始位置。 def kmp(text, pattern): n len(…

【框架】SpringBoot数组传参问题

方式一 前端以字符串形式传递idList&#xff0c;采用逗号拼接&#xff0c;后端直接使用list接收 // 前端代码 form: {otherParam: ,idList: [id1,id2].join(,) }//后端代码 // 在后端接收idList时&#xff0c;直接使用List<T> 就可以接收前端字符串&#xff08;默认使用…