V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vishun  ›  全部回复第 3 页 / 共 10 页
回复总数  192
1  2  3  4  5  6  7  8  9  10  
win11 抠图完成后后左右拖动时很大几率软件崩溃自动关闭。
@diagnostics #101 chrome 大部分用 c++写的啊。
167 天前
回复了 leejinhong 创建的主题 MySQL 关于在业务中 MYSQL 事务查询的一个疑惑
总结下:
- 数据库层面:
- 要么 field=field+xxx 来保证原子性,比较简单,但是无法阻止超发等场景。
- version 乐观锁,大概率不会重复的情况下用。
- select for update 悲观锁,经常重复的情况下用或不太在乎性能下用。
- 极端的隔离级别设置为序列化,额,貌似很少用。
- 应用方面
- 各种应用锁、redis 锁,分布式锁等。
@ddsfeng 安卓的已经找不到相关应用了。
楼主这个试了下,确实非常好用。
168 天前
回复了 sleepingdog 创建的主题 Windows win11 的秒又加回来了?
@xiyan00 #11 微软的这个设计真是垃圾,明明鼠标移动上去的浮窗展示秒就行,就是不给处理,一开始直接没有,后来有了也是要么打开要么关闭,什么脑回路。
Vivaldi 的垂直标签没有鼠标移动过去后自动展开,只能手动设置垂直标签的大小,要么太小,要么太宽,而且整体的界面也没有 edge 好,但是 edge 是真的恶心,时不时给你恶心一下。
177 天前
回复了 frencis107 创建的主题 信息安全 OpenSSH 爆高危漏洞 CVE-2024-6387
@hellolinuxer #102 8.9 不是还在漏洞范围内吗?
182 天前
回复了 yinzmcn 创建的主题 Java pigx 有用过的吗?和 ruoyi-vue 比哪个好一些?
pigx 不是微服务版本吗? ruoyi-vue 是个单机的,压根就不一样,怎么比?
183 天前
回复了 zedking 创建的主题 Edge edge 又作恶?
真的恶心,这种小动作不停的,一套一套的。
正在用`stretchly`,已满足要求。
@lfitzgerald #1 你这个不准:
续费价格等值人民币 (CNY): 210.42

交易价格等值人民币 (CNY): 140.00

剩余价值 (CNY): 189.09

溢价金额 (CNY): -49.09
197 天前
回复了 dc2002007 创建的主题 Java 为何不选 Hibernate,非要 MyBatis?
原先也很倾向纯 ORM ,但是现在反而越来越觉得复杂 sql 还是原生的更直观,可以参考这个[根据条件分页查询用户列表]( https://gitee.com/mybatis-flex/mybatis-flex/issues/I90V7G#note_25272825_link),我贴过来:
```
/**
* 根据条件分页查询用户列表
*
* @param searchReq 用户信息
*
* @return 用户信息集合信息
*/
@Override
@DataScope(deptAlias = SysDept.TABLE_ALIAS, userAlias = SysUser.TABLE_ALIAS)
public Page<SysUser> selectUserList(PageAdapter<SysUser> pageAdapter, final SysUser searchReq) {
final QueryWrapper queryWrapper = queryChain()
.select(SYS_USER.DEFAULT_COLUMNS, SYS_DEPT.DEPT_NAME, SYS_DEPT.LEADER)
.from(SYS_USER.as(SysUser.TABLE_ALIAS))
.leftJoin(SYS_DEPT).as(SysDept.TABLE_ALIAS).on(SYS_USER.DEPT_ID.eq(SYS_DEPT.DEPT_ID))

.eq(SysUser::getDelFlag, UserConstants.NORMAL) // 是否删除: 否
.eq(SysUser::getUserId, searchReq.getUserId(), IdUtils.isIdValid(searchReq.getUserId())) // 用户 ID
.like(SysUser::getUserName, searchReq.getUserName(), StrUtil.isNotBlank(searchReq.getUserName())) // 用户名称
.eq(SysUser::getStatus, searchReq.getStatus(), StrUtil.isNotBlank(searchReq.getStatus())) // 用户状态
.like(SysUser::getPhonenumber, searchReq.getPhonenumber(), StrUtil.isNotBlank(searchReq.getPhonenumber())) // 手机号码
.ge(SysUser::getCreateTime, searchReq.getParams().getBeginTime(), Objects.nonNull(searchReq.getParams().getBeginTime())) // 创建时间开始
.le(SysUser::getCreateTime, searchReq.getParams().getEndTime(), Objects.nonNull(searchReq.getParams().getEndTime())) // 创建时间结束
.and(qw -> qw.eq(SysUser::getDeptId, searchReq.getDeptId()) // 部门过滤
.or(SYS_USER.DEPT_ID.in(QueryWrapper.create().select(SYS_DEPT.DEPT_ID)
.from(SYS_DEPT)
.where(QueryMethods.findInSet(QueryMethods.number(searchReq.getDeptId()), SYS_DEPT.ANCESTORS).gt(0)))),
IdUtils.isIdValid(searchReq.getDeptId()))
// 数据权限
.and(qw -> qw.where(searchReq.getParams().getDataScope()), searchReq.getParams().hasDataScopeFilter());

return getMapper().paginate(pageAdapter.getPage(), queryWrapper);
}
```
如果用 xml 差不多是这样:
```
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password,
u.sex,u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time,
u.remark,
u.show_tag,
d.dept_name, d.leader
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="searchValue != null and searchValue != ''">
AND (
u.user_name like concat('%', #{searchValue}, '%')
OR u.nick_name like concat('%', #{searchValue}, '%')
)
</if>
<if test="userId != null ">
AND u.user_id = #{userId}
</if>
<if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%')
</if>
<if test="status != null and status != ''">
AND u.status = #{status}
</if>
<if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%')
</if>
<if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
</if>
<if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
</if>
<if test="deptId != null and deptId != 0">
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET
(#{deptId},ancestors) ))
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
```
个人感觉 xml 方式反而更加直观看出查询的字段和检索条件。
绝对压根没有用参数化查询
用 fastcgi 应该没问题吧?
222 天前
回复了 azev 创建的主题 宽带症候群 关于 frp 内网穿透能不能实现这一点
貌似没提供多少 api ,但是它有个 web 界面,可以参考这个 web 界面怎么实现动态配置的,或者是更简单的自己写个脚本,触发来替配置或注释配置,然后调用应用重启来生效。
230 天前
回复了 hubaq 创建的主题 互联网 RustDesk 由于诈骗猖獗,暂停国内服务
这官方纯有病,其他国家电诈少吗?相关中国目前打击电诈的力度是数一数二的,一个举报就封禁整个区域,真行。
@rehoni #9 我的手机浏览器不是弹广告,而是一进去就自动请求淘宝、京东等要求打开这些 app ,现在手机浏览器上看到简书链接根本不敢点进去,也就 PC 端还敢点,但是早就没什么好内容了。
302 天前
回复了 hankli 创建的主题 程序员 一个工具管理所有运行时版本!
合 nvm 的区别是这个可以管理更多的工具吗?只针对 npm 来说,功能和 nvm 一样?
@huangliu #25 仔细观察了下,当这个 db 中没有数据时,别名就不会显示。
1  2  3  4  5  6  7  8  9  10  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2738 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 11:56 · PVG 19:56 · LAX 03:56 · JFK 06:56
Developed with CodeLauncher
♥ Do have faith in what you're doing.