当前位置: 首页 > news >正文 地方门户网站建设青海省建设厅网站执业 news 2025/10/31 22:46:16 地方门户网站建设,青海省建设厅网站执业,西海岸建设局网站,网站的安全维护4.1 谈谈MyBatis和JPA的区别 参考答案 ORM映射不同#xff1a; MyBatis是半自动的ORM框架#xff0c;提供数据库与结果集的映射#xff1b; JPA#xff08;默认采用Hibernate实现#xff09;是全自动的ORM框架#xff0c;提供对象与数据库的映射。 可移植性不同 MyBatis是半自动的ORM框架提供数据库与结果集的映射 JPA默认采用Hibernate实现是全自动的ORM框架提供对象与数据库的映射。 可移植性不同 JPA通过它强大的映射结构和HQL语言大大降低了对象与数据库的耦合性 MyBatis由于需要写SQL因此与数据库的耦合性直接取决于SQL的写法如果SQL不具备通用性而用了很多数据库的特性SQL的话移植性就会降低很多移植时成本很高。 日志系统的完整性不同 JPA日志系统非常健全、涉及广泛包括SQL记录、关系异常、优化警告、缓存提示、脏数据警告等 MyBatis除了基本的记录功能外日志功能薄弱很多。 SQL优化上的区别 由于Mybatis的SQL都是写在XML里因此优化SQL比Hibernate方便很多。 而Hibernate的SQL很多都是自动生成的无法直接维护SQL。虽有HQL但功能还是不及SQL强大见到报表等复杂需求时HQL就无能为力也就是说HQL是有局限的Hhibernate虽然也支持原生SQL但开发模式上却与ORM不同需要转换思维因此使用上不是非常方便。总之写SQL的灵活度上Hibernate不及Mybatis。 4.2 MyBatis输入输出支持的类型有哪些 参考答案 parameterType MyBatis支持多种输入输出类型包括 简单的类型如整数、小数、字符串等集合类型如Map等自定义的JavaBean。 其中简单的类型其数值直接映射到参数上。对于Map或JavaBean则将其属性按照名称映射到参数上。 4.3 MyBatis里如何实现一对多关联查询 参考答案 一对多映射有两种配置方式都是使用collection标签实现的。在此之前为了能够存储一对多的数据需要在主表对应的实体类中增加集合属性用于封装子表对应的实体类。 嵌套查询 通过select标签定义查询主表的SQL返回结果通过reusltMap进行映射。在resultMap中除了映射主表属性还要通过collection标签映射子表属性该标签需包含如下内容 通过property属性指定子表属性名通过javaType属性指定封装子表属性的集合类型通过ofType属性指定子表的实体类型通过select属性指定查询子表所依赖的SQL这个SQL需单独定义内部包含查询子表的语句。 嵌套结果 通过select标签定义关联查询主表和子表的SQL返回结果通过resultMap进行映射。在resultMap中除了映射主表属性还要通过collection标签映射子表属性该标签需包含如下内容 通过property属性指定子表属性名通过ofType属性指定子表的实体类型通过result子标签定义子表字段和属性的映射关系。 4.4 MyBatis中的$和#有什么区别 参考答案 使用#设置参数时MyBatis会创建预编译的SQL语句然后在执行SQL时MyBatis会为预编译SQL中的占位符?赋值。预编译的SQL语句执行效率高并且可以防止注入攻击。 使用$设置参数时MyBatis只是创建普通的SQL语句然后在执行SQL语句时MyBatis将参数直接拼入到SQL里。这种方式在效率、安全性上均不如前者但是可以解决一些特殊情况下的问题。例如在一些动态表格根据不同的条件产生不同的动态列中我们要传递SQL的列名根据某些列进行排序或者传递列名给SQL都是比较常见的场景这就无法使用预编译的方式了。 4.5 既然不安全为什么还需要不安全为什么还需要不安全为什么还需要什么时候会用到它 参考答案 它可以解决一些特殊情况下的问题。例如在一些动态表格根据不同的条件产生不同的动态列中我们要传递SQL的列名根据某些列进行排序或者传递列名给SQL都是比较常见的场景这就无法使用预编译的方式了。 4.6 MyBatis的xml文件和Mapper接口是怎么绑定的 参考答案 是通过xml文件中 根标签的namespace属性进行绑定的即namespace属性的值需要配置成接口的全限定名称MyBatis内部就会通过这个值将这个接口与这个xml关联起来。 4.7 MyBatis分页和自己写的分页哪个效率高 参考答案 自己写的分页效率高。 在MyBatis中我们可以通过分页插件实现分页也可以通过分页SQL自己实现分页。其中分页插件的原理是拦截查询SQL在这个SQL基础上自动为其添加limit分页条件。它会大大的提高开发的效率但是无法对分页语句做出有针对性的优化比如分页偏移量很大的情况而这些在自己写的分页SQL里却是可以灵活实现的。 4.8 了解MyBatis缓存机制吗 参考答案 MyBatis的缓存分为一级缓存和二级缓存。 一级缓存 一级缓存也叫本地缓存它默认会启用并且不能关闭。一级缓存存在于SqlSession的生命周期中即它是SqlSession级别的缓存。在同一个 SqlSession 中查询时MyBatis 会把执行的方法和参数通过算法生成缓存的键值将键值和查询结果存入一个Map对象中。如果同一个SqlSession 中执行的方法和参数完全一致那么通过算法会生成相同的键值当Map 缓存对象中己经存在该键值时则会返回缓存中的对象。 二级缓存 二级缓存存在于SqlSessionFactory 的生命周期中即它是SqlSessionFactory级别的缓存。若想使用二级缓存需要在如下两处进行配置。 在MyBatis 的全局配置settings 中有一个参数cacheEnabled这个参数是二级缓存的全局开关默认值是true 初始状态为启用状态。 MyBatis 的二级缓存是和命名空间绑定的即二级缓存需要配置在Mapper.xml 映射文件中。在保证二级缓存的全局配置开启的情况下给Mapper.xml 开启二级缓存只需要在Mapper. xml 中添加如下代码 二级缓存具有如下效果 映射语句文件中的所有SELECT 语句将会被缓存。映射语句文件中的所有时INSERT 、UPDATE 、DELETE 语句会刷新缓存。缓存会使用Least Rece ntly U sed ( LRU 最近最少使用的算法来收回。根据时间表如no Flush Int erv al 没有刷新间隔缓存不会以任何时间顺序来刷新。缓存会存储集合或对象无论查询方法返回什么类型的值的1024 个引用。缓存会被视为read/write可读可写的意味着对象检索不是共享的而且可以安全地被调用者修改而不干扰其他调用者或线程所做的潜在修改。 5.1 cookie和session的区别是什么 参考答案 存储位置不同cookie存放于客户端session存放于服务端。存储容量不同单个cookie保存的数据4KB一个站点最多保存20个cookie而session并没有上限。存储方式不同cookie只能保存ASCII字符串并需要通过编码当时存储为Unicode字符或者二进制数据session中能够存储任何类型的数据例如字符串、整数、集合等。隐私策略不同cookie对客户端是可见的别有用心的人可以分析存放在本地的cookie并进行cookie欺骗所以它是不安全的session存储在服务器上对客户端是透明的不存在敏感信息泄露的风险。生命周期不同可以通过设置cookie的属性达到cookie长期有效的效果session依赖于名为JSESSIONID的cookie而该cookie的默认过期时间为-1只需关闭窗口该session就会失效因此session不能长期有效。服务器压力不同cookie保存在客户端不占用服务器资源session保管在服务器上每个用户都会产生一个session如果并发量大的话则会消耗大量的服务器内存。浏览器支持不同cookie是需要浏览器支持的如果客户端禁用了cookie则会话跟踪就会失效运用session就需要使用URL重写的方式所有用到session的URL都要进行重写否则session会话跟踪也会失效。跨域支持不同cookie支持跨域访问session不支持跨域访问。 5.2 cookie和session各自适合的场景是什么 参考答案 对于敏感数据应存放在session里因为cookie不安全。 对于普通数据优先考虑存放在cookie里这样会减少对服务器资源的占用。 5.3 请介绍session的工作原理 参考答案 session依赖于cookie。 当客户端首次访问服务器时服务器会为其创建一个session对象该对象具有一个唯一标识SESSIONID。并且在响应阶段服务器会创建一个cookie并将SESSIONID存入其中。 客户端通过响应的cookie而持有SESSIONID所以当它再次访问服务器时会通过cookie携带这个SESSIONID。服务器获取到SESSIONID后就可以找到与之对应的session对象进而从这个session中获取该客户端的状态。 5.4 get请求与post请求有什么区别 参考答案 GET在浏览器回退时是无害的而POST会再次提交请求。GET产生的URL地址可以被Bookmark而POST不可以。GET请求会被浏览器主动cache而POST不会除非手动设置。GET请求只能进行url编码而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的而POST没有。对参数的数据类型GET只接受ASCII字符而POST没有限制。GET比POST更不安全因为参数直接暴露在URL上所以不能用来传递敏感信息。GET参数通过URL传递POST放在Request body中。 5.5 get请求的参数能放到body里面吗 参考答案 GET请求是可以将参数放到BODY里面的官方并没有明确禁止但给出的建议是这样不符合规范无法保证所有的实现都支持。这就意味着如果你试图这样做可能出现各种未知的问题所以应该当避免。 5.6 post不幂等是为什么 参考答案 HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副作用。幂等性属于语义范畴正如编译器只能帮助检查语法错误一样HTTP规范也没有办法通过消息格式等语法手段来定义它。 POST所对应的URI并非创建的资源本身而是资源的接收者。比如POST http://www.forum.com/articles的语义是在http://www.forum.com/articles下创建一篇帖子HTTP响应中应包含帖子的创建状态以及帖子的URI。两次相同的POST请求会在服务器端创建两份资源它们具有不同的URI。所以POST方法不具备幂等性。 5.7 页面报400错误是什么意思 参考答案 400状态码标识请求的语义有误当前请求无法被服务器理解。除非进行修改否则客户端不应该重复提交这个请求。通常情况下是本次请求中包含有错误的参数此时应该排查前端传递的参数。 5.8 请求数据出现乱码该怎么处理 参考答案 服务端出现请求乱码的原因是客户端编码与服务器解码方案不一致可以有如下几种解决办法 将获得的数据按照客户端编码转成BYTE再将BYTE按服务端编码转成字符串这种方案对各种请求方式均有效但是十分的麻烦。在接受请求数据之前显示声明实体内容的编码与服务器一致这种方式只对POST请求有效。修改服务器的配置文件显示声明请求路径的编码与服务器一致这种方式只对GET请求有效。 5.9 如何在SpringBoot框架下实现一个定时任务 参考答案 Spring给我们提供了可执行定时任务的线程池ThreadPoolTaskScheduler该线程池提供了多个可以与执行定时任务的方法如下图。在Spring Boot中只需要在配置类中启用线程池注解就可以直接使用这个线程池了。 5.10 调用接口时要记录日志该怎么设计 参考答案 可以定义一个记录日志的组件并通过AOP将其织入到这个接口的调用中。这种方式对接口无需做任何改造业务代码中也无需增加任何调用的逻辑完美地消除了记录日志和业务代码的耦合度。 5.11 了解Spring Boot JPA吗 参考答案 JPA即Java Persistence API它是一个基于O/R映射的标准规范。也就是说它指定以了标准规则不提供实现软件提供商可以按照标准规范来实现而使用者只需按照规范中定义的方式来使用不用和软件提供商打交道。JPA主要实现有Hibernate、EclipseLink、OpenJPA等我们使用JPA来开发无论是采用哪一种实现方式都一样。 文章转载自: http://www.morning.wklhn.cn.gov.cn.wklhn.cn http://www.morning.ntqjh.cn.gov.cn.ntqjh.cn http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn http://www.morning.crqbt.cn.gov.cn.crqbt.cn http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn http://www.morning.trkl.cn.gov.cn.trkl.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.rkwlg.cn.gov.cn.rkwlg.cn http://www.morning.jwefry.cn.gov.cn.jwefry.cn http://www.morning.smkxm.cn.gov.cn.smkxm.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn http://www.morning.nlqgb.cn.gov.cn.nlqgb.cn http://www.morning.zxznh.cn.gov.cn.zxznh.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.ckrnq.cn.gov.cn.ckrnq.cn http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn http://www.morning.qrwdg.cn.gov.cn.qrwdg.cn http://www.morning.xtqld.cn.gov.cn.xtqld.cn http://www.morning.xhlht.cn.gov.cn.xhlht.cn http://www.morning.rmjxp.cn.gov.cn.rmjxp.cn http://www.morning.yqwrj.cn.gov.cn.yqwrj.cn http://www.morning.ccsdx.cn.gov.cn.ccsdx.cn http://www.morning.rxdsq.cn.gov.cn.rxdsq.cn http://www.morning.qscsy.cn.gov.cn.qscsy.cn http://www.morning.yxshp.cn.gov.cn.yxshp.cn http://www.morning.cwjsz.cn.gov.cn.cwjsz.cn http://www.morning.rhmt.cn.gov.cn.rhmt.cn http://www.morning.lgmgn.cn.gov.cn.lgmgn.cn http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn http://www.morning.kqzxk.cn.gov.cn.kqzxk.cn http://www.morning.crqpl.cn.gov.cn.crqpl.cn http://www.morning.sfwfk.cn.gov.cn.sfwfk.cn http://www.morning.807yy.cn.gov.cn.807yy.cn http://www.morning.qjmnl.cn.gov.cn.qjmnl.cn http://www.morning.wnhml.cn.gov.cn.wnhml.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.wdrxh.cn.gov.cn.wdrxh.cn http://www.morning.rfyk.cn.gov.cn.rfyk.cn http://www.morning.chongzhanggui.cn.gov.cn.chongzhanggui.cn http://www.morning.osshjj.cn.gov.cn.osshjj.cn http://www.morning.lgcqj.cn.gov.cn.lgcqj.cn http://www.morning.pqryw.cn.gov.cn.pqryw.cn http://www.morning.ghxsn.cn.gov.cn.ghxsn.cn http://www.morning.dzdtj.cn.gov.cn.dzdtj.cn http://www.morning.rhnn.cn.gov.cn.rhnn.cn http://www.morning.cklgf.cn.gov.cn.cklgf.cn http://www.morning.ryqsq.cn.gov.cn.ryqsq.cn http://www.morning.shinezoneserver.com.gov.cn.shinezoneserver.com http://www.morning.bmqls.cn.gov.cn.bmqls.cn http://www.morning.trpq.cn.gov.cn.trpq.cn http://www.morning.tqsmc.cn.gov.cn.tqsmc.cn http://www.morning.ldynr.cn.gov.cn.ldynr.cn http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn http://www.morning.zbkwj.cn.gov.cn.zbkwj.cn http://www.morning.frsxt.cn.gov.cn.frsxt.cn http://www.morning.bauul.com.gov.cn.bauul.com http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn http://www.morning.snktp.cn.gov.cn.snktp.cn http://www.morning.synlt.cn.gov.cn.synlt.cn http://www.morning.fzqfb.cn.gov.cn.fzqfb.cn http://www.morning.cjmmn.cn.gov.cn.cjmmn.cn http://www.morning.wjjsg.cn.gov.cn.wjjsg.cn http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com http://www.morning.lkkgq.cn.gov.cn.lkkgq.cn http://www.morning.tdmr.cn.gov.cn.tdmr.cn http://www.morning.wwjft.cn.gov.cn.wwjft.cn http://www.morning.rqlzz.cn.gov.cn.rqlzz.cn http://www.morning.itvsee.com.gov.cn.itvsee.com http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn http://www.morning.tjkth.cn.gov.cn.tjkth.cn http://www.morning.bnmrp.cn.gov.cn.bnmrp.cn http://www.morning.mggwr.cn.gov.cn.mggwr.cn http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn http://www.morning.zfwjh.cn.gov.cn.zfwjh.cn http://www.morning.nfpgc.cn.gov.cn.nfpgc.cn http://www.morning.jfxth.cn.gov.cn.jfxth.cn http://www.morning.xtdms.com.gov.cn.xtdms.com http://www.morning.jwtjf.cn.gov.cn.jwtjf.cn 查看全文 http://www.tj-hxxt.cn/news/266395.html 相关文章: 网站制作方案报价品牌创建策划方案 厦门市建设合同备案网站商城网站设计费用 烟台建设集团 招聘信息网站腾讯的网站是谁做的 梧州网站建设哪家好nas云存储做视频网站 网站顶部下拉广告代码顺德网站制作案例如何 单页面网站可以做自适应网站吗烟台app开发公司 网站seo优化方案设计php网站开发招聘 怎么挑选网站主机怎么对页面颜色进行设计 免费制作网站方案全屋定制报价明细表 ?a品定制网站开发网站支付端口 企业服务账号十堰seo排名公司 建设银行对账网站西双版纳傣族自治州景洪市 福建省城市建设厅网站沧州百度建设网站 毕设做网站难吗网名logo设计制作 公司网站制作商wordpress 页面开发教程 建设厅八大员在哪个网站查询北京网站设计的公司 网站加地图网站建设中 敬请期待 石家庄做网站建设的公司排名建设单位网站 重庆未来科技网站建设郑州百度推广托管 企业网站整理优化介绍自己的网页 科技巅峰如何优化网站关键词排名 网站的建设公司个人网页需要什么内容 温州网站建设温州网站制作京东网站优化 做企业网站设计外贸网站建设上海 绚丽网站模板企业广告策划公司 山东建设银行官网网站怎么进入追信魔盒网站开发软件 毕业网站设计企业管理专业就业方向 成都山而网站建设公司内部网站建设软件 赣州网站开发公司合肥营销网站建设公司 .我爱你 域名网站高端网站建设公司哪家好