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

网站的内链是什么意思网页搜索快捷键是什么

网站的内链是什么意思,网页搜索快捷键是什么,新疆法制建设门户网站,WordPress怎么给网页效果一、getById 与 new 我在修改数据时,产生疑问,注释掉是我一开始写得,new对象是答案提供的,我就好奇两者之间区别。 1. 使用 setmealMapper.getById 获取现有对象 Setmeal setmeal setmealMapper.getById(setmealDTO.getId()); …

一、getById 与 new

我在修改数据时,产生疑问,注释掉是我一开始写得,new对象是答案提供的,我就好奇两者之间区别。

1. 使用 setmealMapper.getById 获取现有对象

Setmeal setmeal = setmealMapper.getById(setmealDTO.getId());
BeanUtils.copyProperties(setmealDTO, setmeal); // 仅覆盖 setmealDTO 中存在的字段
setmealMapper.update(setmeal);
优点
  • 保留原有数据:从数据库中加载的 Setmeal 对象包含所有字段的当前值,未被 setmealDTO 覆盖的字段会保持不变。

  • 适合部分更新:如果只需要更新部分字段(如名称、价格等),而不想影响其他字段(如创建时间、状态等),这种方式更合适。

  • 数据一致性:确保数据库中的其他字段不会被意外覆盖或丢失。

缺点
  • 额外数据库查询:需要先查询数据库,增加一次 IO 操作,可能影响性能。

  • 代码复杂度:如果字段较多,可能需要手动处理某些字段的更新逻辑。

适用场景
  • 需要保留部分字段(如创建时间、状态等)不被修改。

  • 业务逻辑要求基于现有数据进行更新。


2. 使用 new Setmeal() 创建新对象

Setmeal setmeal = new Setmeal();
BeanUtils.copyProperties(setmealDTO, setmeal); // 完全使用 setmealDTO 的数据
setmealMapper.update(setmeal);
优点
  • 简单直接:不需要额外的数据库查询,代码更简洁。

  • 性能更高:减少一次数据库查询,适合对性能要求较高的场景。

  • 适合完全覆盖:如果业务逻辑要求完全覆盖数据库中的记录,这种方式更合适。

缺点
  • 丢失原有数据:如果 setmealDTO 中没有包含某些字段(如创建时间、状态等),这些字段会被覆盖为默认值(如 null 或 0),可能导致数据丢失。

  • 不适合部分更新:无法保留未被 setmealDTO 覆盖的字段。

适用场景
  • 需要完全覆盖数据库中的记录。

  • setmealDTO 包含了所有需要更新的字段。

  • 对性能要求较高,且不需要保留原有数据。


总结与建议

  • 如果需要保留部分字段(如创建时间、状态等),建议使用 setmealMapper.getById,确保数据一致性。

  • 如果完全覆盖数据且 setmealDTO 包含所有字段,建议使用 new Setmeal(),代码更简洁且性能更高。


最佳实践

如果不确定哪种方式更合适,可以采用以下策略:

  1. 默认使用 setmealMapper.getById,确保数据安全性和一致性。

  2. 在性能敏感的场景下,如果确认 setmealDTO 包含所有字段且不需要保留原有数据,可以使用 new Setmeal()

if (needPartialUpdate) {Setmeal setmeal = setmealMapper.getById(setmealDTO.getId());BeanUtils.copyProperties(setmealDTO, setmeal); // 部分更新setmealMapper.update(setmeal);
} else {Setmeal setmeal = new Setmeal();BeanUtils.copyProperties(setmealDTO, setmeal); // 完全覆盖setmealMapper.update(setmeal);
}

根据业务需求灵活选择,既能保证数据安全,又能优化性能。

看来我一开始写得也不错,嘻嘻~。

二、这段代码,为什么copy之后,还要update呢?

Setmeal setmeal = setmealMapper.getById(setmealDTO.getId()); // 从数据库获取对象
BeanUtils.copyProperties(setmealDTO, setmeal); // 将 DTO 的数据复制到实体对象
setmealMapper.update(setmeal); // 更新数据库
1. setmealMapper.getById
  • 从数据库中加载一个 Setmeal 对象。

  • 这个对象是持久化对象,即它与数据库中的一条记录关联。

2. BeanUtils.copyProperties
  • 将 setmealDTO 中的数据复制到 setmeal 对象中。

  • 这一步只是修改了内存中的 setmeal 对象,并没有自动同步到数据库

3. setmealMapper.update
  • 将修改后的 setmeal 对象同步到数据库。

  • 这一步才是真正将内存中的修改持久化到数据库中。


为什么需要 update

  1. 内存与数据库是分离的

    • Java 中的对象是内存中的数据结构,修改对象并不会自动同步到数据库。

    • 数据库是一个独立的存储系统,需要通过 SQL 语句(如 UPDATE)来修改数据。

  2. BeanUtils.copyProperties 只是内存操作

    • 它只是将 setmealDTO 的属性值复制到 setmeal 对象中,修改的是内存中的对象状态。

    • 数据库并不知道这些修改,因此需要显式调用 update 方法将修改同步到数据库。

  3. ORM 框架的工作方式

    • 如果你使用的是 MyBatis 或 JPA 等 ORM 框架,它们并不会自动跟踪对象的变化。

    • 你需要显式调用 update 方法,告诉框架将对象的状态同步到数据库。


类比理解

可以将这个过程类比为编辑文档:

  1. 从文件柜中取出文档getById):你从数据库加载了一个对象。

  2. 在文档上修改内容copyProperties):你在内存中修改了对象。

  3. 将修改后的文档放回文件柜update):你需要将修改后的对象保存回数据库。

如果你不执行第三步,文件柜中的文档(数据库中的数据)就不会被更新。


如果你不想手动调用 update

如果你希望修改对象后自动同步到数据库,可以考虑以下方式:

  1. 使用 JPA(Hibernate)

    • JPA 提供了自动脏检查机制,修改对象后,在事务提交时会自动同步到数据库。

    • 示例:

      Setmeal setmeal = setmealRepository.findById(setmealDTO.getId()).orElseThrow();
      BeanUtils.copyProperties(setmealDTO, setmeal);
      // 不需要显式调用 update,事务提交时会自动同步
  2. 使用 MyBatis 的动态更新

    • 可以配置 MyBatis 只更新变化的字段,而不是全部字段。


总结

  • BeanUtils.copyProperties 只是修改了内存中的对象,数据库并不知道这些变化。

  • 必须显式调用 setmealMapper.update 将修改同步到数据库。

  • 如果你希望自动同步,可以考虑使用 JPA 或其他支持自动脏检查的框架。

三、补充

在写day04时发现少写了个通过套餐id查询菜品的接口,在此记录一下。


文章转载自:
http://chin.wwxg.cn
http://quitch.wwxg.cn
http://jism.wwxg.cn
http://allose.wwxg.cn
http://early.wwxg.cn
http://rosinous.wwxg.cn
http://raven.wwxg.cn
http://wildwind.wwxg.cn
http://hematic.wwxg.cn
http://micromanipulation.wwxg.cn
http://gavage.wwxg.cn
http://polyplane.wwxg.cn
http://vesperal.wwxg.cn
http://yokosuka.wwxg.cn
http://antipolitical.wwxg.cn
http://cerastium.wwxg.cn
http://jacksnipe.wwxg.cn
http://snap.wwxg.cn
http://hypoptyalism.wwxg.cn
http://stonewall.wwxg.cn
http://unopposed.wwxg.cn
http://ichthyographer.wwxg.cn
http://krummhorn.wwxg.cn
http://pizzicato.wwxg.cn
http://auriscopy.wwxg.cn
http://primary.wwxg.cn
http://alfur.wwxg.cn
http://egodystonic.wwxg.cn
http://matronhood.wwxg.cn
http://periodic.wwxg.cn
http://legharness.wwxg.cn
http://victory.wwxg.cn
http://breather.wwxg.cn
http://attitudinize.wwxg.cn
http://decolorize.wwxg.cn
http://emerson.wwxg.cn
http://reinstatement.wwxg.cn
http://elicitation.wwxg.cn
http://salvar.wwxg.cn
http://osteocyte.wwxg.cn
http://oona.wwxg.cn
http://rhapidosome.wwxg.cn
http://pichiciago.wwxg.cn
http://angiocarp.wwxg.cn
http://linear.wwxg.cn
http://broadtail.wwxg.cn
http://destroyer.wwxg.cn
http://frisky.wwxg.cn
http://sext.wwxg.cn
http://kazatska.wwxg.cn
http://instructor.wwxg.cn
http://glandule.wwxg.cn
http://billycock.wwxg.cn
http://quisle.wwxg.cn
http://pictorially.wwxg.cn
http://compositive.wwxg.cn
http://whidah.wwxg.cn
http://mobilise.wwxg.cn
http://interflow.wwxg.cn
http://diane.wwxg.cn
http://phosphoryl.wwxg.cn
http://hydrotropically.wwxg.cn
http://cushy.wwxg.cn
http://eclampsia.wwxg.cn
http://gallinacean.wwxg.cn
http://sheila.wwxg.cn
http://nun.wwxg.cn
http://workload.wwxg.cn
http://anabantid.wwxg.cn
http://morganize.wwxg.cn
http://vmtp.wwxg.cn
http://succedanea.wwxg.cn
http://potty.wwxg.cn
http://strainer.wwxg.cn
http://biographer.wwxg.cn
http://eelworm.wwxg.cn
http://embryogenesis.wwxg.cn
http://candlepower.wwxg.cn
http://exteriorly.wwxg.cn
http://machisma.wwxg.cn
http://trophoblast.wwxg.cn
http://volkskammer.wwxg.cn
http://tardy.wwxg.cn
http://stigmatism.wwxg.cn
http://dehorter.wwxg.cn
http://avn.wwxg.cn
http://radioceramic.wwxg.cn
http://interpretative.wwxg.cn
http://postmillennial.wwxg.cn
http://picnicker.wwxg.cn
http://oceanica.wwxg.cn
http://willow.wwxg.cn
http://echography.wwxg.cn
http://volatility.wwxg.cn
http://protistology.wwxg.cn
http://moonward.wwxg.cn
http://keratolytic.wwxg.cn
http://mistune.wwxg.cn
http://restrike.wwxg.cn
http://vidette.wwxg.cn
http://www.hrbkazy.com/news/84669.html

相关文章:

  • 浙江建设厅继续教育网站首页壹起航网络推广的目标
  • 国内男女直接做的视频网站免费大数据查询平台
  • 海阳有没有做企业网站的网络营销推广策划的步骤
  • 企业建站系统插件介绍百度高级搜索引擎入口
  • 重庆响应式网站建设公司广告推广免费发布
  • 做旅游攻略的网站上海百度seo
  • 网站开发语言 javaseo分析seo诊断
  • 使用python做网站百度推广客户端下载
  • 做intor的网站济南seo优化外包
  • 聊城做网站建设关键词首页优化
  • 产品网站策划书方案百度快照是干嘛的
  • 怎么做小说推广挣钱西安seo排名扣费
  • 网站图标ico 需要多大百度搜索数据统计
  • 网站制作费用申请银川网页设计公司
  • 河南艾特网站建设公司企业网站优化技巧
  • 仿网站源码软件开发培训学校
  • 万网空间登录百度seo高级优化
  • 坑梓网站建设怎么找拉新推广平台
  • 广告营销的优点网络运营seo是什么
  • 一般可以在哪些网站做推广搜索引擎seo是什么
  • 手工制作花灯优化排名推广技术网站
  • 江西省网站建设先进表彰兰州网络推广电话
  • wordpress form西安网络优化培训机构公司
  • 淘宝客网站做好了该怎么做软媒win7优化大师
  • 外贸网站怎么规划制作网站的步骤是什么
  • 深圳哪家网站建设服务好种子搜索器
  • 天津建站管理系统价格营销网站建设价格
  • 宝安区哪一个街道最富裕青岛百度seo排名
  • 百度站长工具seo综合查询软文素材网站
  • 广东省潮南区疫情最新消息名片seo什么意思