V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  timethinker  ›  全部回复第 7 页 / 共 19 页
回复总数  369
1 ... 3  4  5  6  7  8  9  10  11  12 ... 19  
2022-09-16 13:04:08 +08:00
回复了 kqq19930511 创建的主题 Java jpa update 和 delete 之前都会 select 一次
这是因为框架机制的原因导致的,Hibernate 使用了一种被称之为工作单元模式( Unit of Work ),与数据库的事务进行对应,这样就会对实体的状态进行追踪,在这种机制下就会产生一个问题:如果没有这条数据,会发生什么?程序无法推测你的意图,有的场景下当数据不存在会导致一致性问题,也有的场景下存在“不关心有没有这条数据,如果有的话就删掉”这种逻辑。后者更偏向于面向数据库编程的过程式逻辑。

这种工作机制不适合用于进行批量处理的场景,它更适合用于处理一些小范围的 OLTP 业务,带来的好处也是明显的,一级缓存避免了在接下来的事务范围中对同一个实体进行重复查询,也不需要显式的调用底层的数据操作,你只需要简单的查询对象,修改对象,在工作单元结束时(提交事务),它会根据对象现在的状态自动调用底层的数据操作,执行对应的 SQL 语句。

所以很多人用 JPA 会觉得很别扭,本质上是因为思考的方式跟它的工作机制存在差异,理解工具的处理机制是很重要的,因为这样才能让你更好的使用它。如果你写代码的逻辑思维处于那种过程式的增删改查,那么 MyBatis 或许更简单直观。

我个人认为,Hibernate 与 MyBatis 之间,不存在哪一个工具更好的这种说法,完全取决于你编写代码的模式,选一种你认为适合当下的工具就行,使用工具的目的是为了提升效率,仅此而已。
2022-09-15 12:04:45 +08:00
回复了 guanhui07 创建的主题 Go 编程语言 这个 golang struct 是用的什么生成的
挺有意思,刚才用 JS 手写了一个 DDL 的解析器,可以将这种 CREATE TABLE 转换成 JSON ,然后有了 JSON 以后就可以用来生成代码了,仓促之下只做了 CREATE TABLE 这种 SQL 语句,写的也比较凌乱,可能还有一些 BUG ,不过可以自行拓展。

地址: https://jsfiddle.net/AlexMaho/b6c1utoe/
2022-09-14 09:33:53 +08:00
回复了 PendingOni 创建的主题 程序员 [疑惑]-C#中一个奇怪的现象
C#的 Socket 光是异步的写法目前就有 3 种编程模型:

APM:即 BeginXXX 和 EndXXX 配对使用的异步编程模型。
EAP:即基于事件的异步模式,也就是使用 SocketAsyncEventArgs 配合 Socket 的 XXXAsync 系列方法使用。
TAP:既基于任务的异步模式,最新的使用方法,不再需要 SocketAsyncEventArgs ,直接返回 Task/ValueTask 配合异步上下文使用 await/async 语法。
@K1W1 这个跟 5G 手机壳有异曲同工之妙。
2022-09-05 12:02:27 +08:00
回复了 CodeXx 创建的主题 Java 发现一个 Java 代码耗时统计的问题
建议楼主先把计算的结果缓存到一个数组内,最后再打印出来数组内的结果,看看是否可以得到心中想要的答案,就能确定问题出在什么地方了。
2022-09-05 11:53:11 +08:00
回复了 CodeXx 创建的主题 Java 发现一个 Java 代码耗时统计的问题
@fzdwx 之前的时间都是单纯的计算两个时间差,并没有把每次的输出计算在内,但是最后的输出包含了循环内的 println 语句,所以总时间跟之前的时间存在悬殊。
2022-09-04 19:21:15 +08:00
回复了 edis0n0 创建的主题 游戏开发 游戏里的“AI”是不是都是一堆 if+random 的假 AI?
是的,游戏里面的 AI 简单一点的直接用状态机来做,稍微复杂一点的用行为树,说白了还是状态机。为了达到预期效果,流程的建模都是有意设计的,再加入一些基于权重的概率随机。
2022-09-02 15:25:50 +08:00
回复了 timethinker 创建的主题 Twitter 为啥国外各大互联网公司都在发推说自己?
2022-09-02 13:59:45 +08:00
回复了 erwin985211 创建的主题 问与答 日经,稳定理财选哪家,年华超越招行月月宝的
微众的 [活期+Plus],每天 3 点放量,稳健理财里面的基本上也都能超过 4 个点
2022-09-02 11:09:45 +08:00
回复了 abc0123xyz 创建的主题 Java 求教一个 Java 线程池的问题
这个对象有没有可能创建多个实例,每一个线程使用自己所绑定的那一个?这样线程之间就不用竞争,也无需加锁。

具体的做法就是,在线程池中的其中一个线程执行你的代码的时候:
1 、从 ThreadLocal 取出这个对象。
2 、如果不存在,实例化这个对象并对它进行初始化,然后再保存到 ThreadLocal 里面。
3 、使用这个对象。

这样当下一次这个线程再次执行时,就可以省略掉第二个步骤,对象就可以得到复用。

至于你说的这个对象有可能会损坏,你可以创建一个类来包装并代理委托执行相关的方法,通过封装内部实际对象,就可以对异常进行处理,比如重新构造内部实际对象,这样外部的代码就可以不用关心内部的处理流程。但是如果异常是必须要在业务逻辑中进行处理的,就不能通过代理类对这些异常进行掩盖,以免导致意外的 BUG 。
2022-08-31 14:27:16 +08:00
回复了 wenzaiquan199 创建的主题 问与答 为安全问题,早上公司热烈讨论
看来本楼还有很多人不知道 HTTPS 是用来解决什么问题的。
2022-08-30 14:26:29 +08:00
回复了 SamJaak 创建的主题 问与答 Magic Trackpad 鼠标箭头漂移怎么办
确保触摸板上面没有其他的东西,比如耳机线如果搭在上面了也会出现这种情况。
2022-08-30 11:04:02 +08:00
回复了 shanghai1943 创建的主题 问与答 话说有哪些不粘锅比较持久不粘
我个人只用铁锅,最好开一下锅。注意每次用完以后要擦干水分,然后再开火把水份烧干,不然会生锈。
不沾的秘密在于热锅冷油,也就是先用油过一遍,然后把油倒出来在加点油直接开炒。
铁锅的优点就是便宜,耐用,用钢丝球擦洗也不心疼,铁铲圆勺使劲造。
2022-08-23 17:21:23 +08:00
回复了 dream4ever 创建的主题 Windows Windows Server 是否适合用 Docker?
@pannanxu [生产] 数据库为了保证环境相对稳定,一般需要独占服务器,而且使用容器的主要目的在于部署和编排方便,但是数据库一般不需要频繁部署,因此也就没必要使用容器了。另外生产数据库为了使硬件资源利用率最大化,一般都会针对主机进行一些参数调优。
2022-08-17 11:55:21 +08:00
回复了 jollylee2012 创建的主题 问与答 办公室挂一幅画,你会挂什么?
这个问题可以改成电脑桌面用什么图片。
2022-08-15 13:18:39 +08:00
回复了 zhengzhou 创建的主题 问与答 最近很闲,上班天天摸鱼,已经摸了一个月
不知道是不是年纪上去了,一天摸鱼摸久了以后,吸收信息能力与耐心也逐渐减少,脑子就特别乱,也特别累,容易打瞌睡,必须要打一会儿盹脑子才能清醒一下。
纯水机长期来看就 RO 膜滤芯的耗材稍微贵一点,买通用规格的划算一些
1 ... 3  4  5  6  7  8  9  10  11  12 ... 19  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1414 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 17:25 · PVG 01:25 · LAX 09:25 · JFK 12:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.