网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月01日
漏签
0
天
java吧
关注:
1,252,586
贴子:
12,738,744
看贴
图片
吧主推荐
视频
游戏
首页
上一页
1
2
3
下一页
尾页
50
回复贴,共
3
页
,跳到
页
确定
<返回java吧
>0< 加载中...
回复:学习记录贴,从零造一个简单db库。
只看楼主
收藏
回复
运气时好时坏
淼淼水
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
厉害
IP属地:广东
来自
Android客户端
18楼
2020-11-25 21:58
回复
收起回复
徯无
淼淼淼
9
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
看过 Spring data jpg 根据方法名 就搞过类似的 不过楼主这个更好用
IP属地:安徽
来自
iPhone客户端
19楼
2020-11-25 21:58
回复(1)
收起回复
官渡区天互软件开发工作室
Vue2+Vue3,低代码/无代码,分布式,单体式,工作流引擎,流程设计器,表单设计器,规则引擎,代码生成器,SaaS多租户,接口集成引擎,页面视图引擎,数据报表引擎,BI大屏引擎
2025-04-01 11:24
广告
立即查看
彼岸
司马水
13
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
666
IP属地:江苏
来自
iPhone客户端
20楼
2020-11-26 11:04
回复
收起回复
十七
淼淼淼水
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
顶顶
IP属地:上海
21楼
2020-11-26 16:03
回复
收起回复
回首山河旧
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
IP属地:四川
22楼
2020-11-26 16:10
回复
收起回复
fly
淼淼
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
🐮🐮🐮
IP属地:广东
来自
Android客户端
23楼
2020-11-26 18:05
回复
收起回复
gqmgyy
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
楼主咱不更了呢?继续啊。
IP属地:浙江
来自
Android客户端
24楼
2020-11-27 10:35
回复(1)
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
继续开始更。
回顾之前的能力,我们做到的什么呢?
单表,多表的join动态sql拼接,
单表,多表的join聚合。
在这里,我们抽象个概念,sql实体。
定义,类加了JoinTable或者JoinTableList 注解的,都是sql字段
sql字段,加了JoinField 字段的,简称sql字段。
IP属地:马来西亚
25楼
2020-11-27 20:21
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我们观察下,mybatis 之类的框架,他们有个实体概念
叫做,一对一,一对多概念
在传统的写法里,我们是怎么写的呢?
我们会写2个方法,在其中一个方法里,调用另外一个方法,完成一对多之类的数据注入
也就是说,复杂度,比之前复杂了。
IP属地:马来西亚
26楼
2020-11-27 20:24
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我们举个例子,部门,用户,一个部门下面有多个用户
假设有sys_user 用户表,sys_dept部门表。
我们定义sql实体
用户实体
部门实体
我们看到了一个新的注解
JoinQuery,我们定义,提示一个自动查询,根据当前实体,自动做数据注入用的。
他在查询sys_user 的sql ,应该是,from sys_user where sys_dept_id = #{id}
#{id} 当前实体的id值
他是实现自动一对一,一对多概念用的。
IP属地:马来西亚
27楼
2020-11-27 20:34
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个玩意,实现起来有点复杂的。改天再实现
我们看点简单的,jpa 哪里,有个方法名即sql。
这个概念,在某些查询非常有用。
我们实现他试试看
我们定义前缀,findBy 无意义前缀
条件判别式
${Key} ${Where}
${key} sql实体字段名 ${where} 查询条件别名
多个条件判别式,用And Or 链接
拿用户表做演示
根据账号查询用户信息
SysUser findByUsernameEq(String username);
根据账号密码查询用户
SysUser findByUsernameEqAndPasswordEq(String username,String password);
//查询部门下面的用户
List<SysUser> findBySysUserDeptIdEq(String sysDeptId);
IP属地:马来西亚
28楼
2020-11-27 20:42
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
方法名怎么解析呢?
我们先设计一个Wrapper,他是根据方法名称做解析的
fingByUsernameEqAndPasswordEq
这个我们要做字符串分解,根据And关键字分割
也就是用正则实现
IP属地:马来西亚
29楼
2020-11-27 22:02
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
编写单元测试
运行效果如下
看起来,和实体类差不多的,但多了灵活性
IP属地:马来西亚
30楼
2020-11-27 22:26
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
前面,基本把查询相关的,都实现了。
现在把更新相关的实现一下。
更新分为
插入
修改
删除
3种类型
插入,删除都是简单类型的,实现起来也比较简单。
修改复杂点,分情况讨论
1:字段被JoinPrimary 修饰的
2:字段被JoinWhere 修饰的
当修改操作发生时,所有JoinPrimary 的字段都有值,则它们已经唯一定位了数据。
此时,被JoinWhere 的字段哪怕有值,也不会作为条件
如果JoinPrimary 字段,存在至少一个没有值,则所有JoinWhere字段都作为条件的一部分
IP属地:马来西亚
31楼
2020-11-28 20:37
回复
收起回复
J雨霖霖
淼淼淼淼
12
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我们拿sys_user做例子演示,并且实现一个简单的乐观锁
id 主键
version 版本号,每次更新,都会+1
编写测试
运行的效果,生成的sql和预想一致
IP属地:马来西亚
32楼
2020-11-28 21:04
回复
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
解放军联合演训释放什么信号
2161470
2
甲亢哥被女coser贴脸歧视
1830103
3
愚人节告白失败成小丑
1689744
4
马斯克的百日维新要失败
1333395
5
81192收到请返航
998634
6
《白雪公主》票房大扑主演被切割
892925
7
哈兰德脚踝受伤接近赛季报销
636984
8
WE悬崖勒马晋级登峰组
575943
9
怎么看待杭州版订婚强奸案
502084
10
吧友锐评甲亢哥中国行
495306
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示