V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Sepping  ›  全部回复第 1 页 / 共 1 页
回复总数  18
2 年的 CRUD Boy 可以吗?
2019-07-31 20:13:48 +08:00
回复了 guodastanson 创建的主题 Java 作为一个半路出家的后端开发,我迷茫了
坐标广州,同 985 半路出家,最近在找工作,真的困难。面试就是高并发分布式,小公司哪来这些东西?资料面经也看了不少,没实际做过背书都背不流畅。真心不知道怎么办。
2019-07-20 09:44:20 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@Samuelcc 另一种思路吧
2019-07-19 15:55:12 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@alw 唉,很怕会变得更乱啊……
2019-07-19 15:52:51 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@glaucus 借你吉言了,希望能和你有一样的好运
2019-07-19 15:50:24 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@sarices 另外比起 star,我更希望有人能看看代码给点意见。目前这个框架离能让人使用还很远,能让人用了自然 star 不会少,现在拿一两个 star 没啥意思
2019-07-19 15:42:47 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@sarices 我有 30 天限制,没法直接发 URL
2019-07-19 15:39:41 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@glaucus 因为我刚发帖的时候有 30 天注册限制,把 URL 换成 base64 才能发出来。
很感谢你的鼓励,只是现在没钱交房租了……想着如果干不了程序员这行了,也可以继续发展这个框架,所以壮着胆子来这里宣传了一波
2019-07-19 15:32:21 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@sarices = = 啥意思呢……我没有骗 star 的意思啊
2019-07-19 15:22:34 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@cominghome 不知道能不能算 orm,因为很多东西都没加进去,事务控制之类的
2019-07-19 14:14:30 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@breezeFP 我理解错了,sry
2019-07-19 13:56:16 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@breezeFP 老哥,这不冲突吧……?
2019-07-19 13:45:03 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@nvioue 投简历内推都少有回应,唯一有回应的一个昨天电话面试感觉凉了
2019-07-19 13:44:08 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@zvcs 谁呢
2019-07-19 13:43:35 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@Pyjamas 防广告吗?
2019-07-19 13:43:04 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
@lhx2008 是,有参考过 Jooq。不过我觉得我的做法更有意思哈哈
2019-07-19 03:45:06 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
真对不起各位!第一次再 V2EX 发帖不知道要用 base64,用了 base64 从记事本里拷文本的时候又没发现排版已经乱了。。。
2019-07-19 03:41:48 +08:00
回复了 Sepping 创建的主题 开源软件 找工作失败,推广一下自己的开源框架吧
有点失落,准备回家咯~不过还是想让自己做的东西见见光,可能也有长期发展这个框架的打算。本人菜鸟一枚,欢迎各种建议。

aHR0cHMlM0EvL2dpdGh1Yi5jb20vU2VwaW5nL0pRTA==

主要功能:这是一个可以让你用 Java 8 以上的方法引用来写 SQL 的框架。例如,假如你要写一句 SQL:SELECT * FROM user WHERE user.name = "John"

你可以这样来写:JQL.from(User.class) .where((root1, conditionChain) -> { return conditionChain .equal(root1.getAttribute(User::getName), "John"); }); 其中,User 是 user 表对应的实体类,有 get/set 方法。

为什么要用“方法引用”呢?我只能说,初衷是为了能用 IDE 里的自动提示……

部件构成:1、实体类 需要在类上标注 @Table 注解,表明这是与数据库表对应的实体类。实体类须有 get/set 方法,在 get 方法上可以用 @Column 注解标明该字段的特殊功能(插入时写默认值,逻辑删除标识等等)。

2、实体类解析器 实体类需要经 EntityResolver 解析,得到实体类的通用抽象 Entity<t>,并存放于 EntityRepository 中。 我默认提供了一个用 ASM 解析的解析器,AnnotationBasicASMResolver。</t>

3、JQL JQL 就是用来写 SQL 的类了。很抱歉,目前只支持 SELECT 语句和 MySQL 的部分语法。。。

4、执行 SQL 在接口 SQLExecutor 中实现,查询结果以 List<CompositeEntity<t>>返回。</t>

5、结果 结果封装为 CompositeEntity<t>的形式。CompositeEntity 是根据查询语句的 join 来封装的,例如,对于以下查询:SELECT * FROM user JOIN city ON city.name = user.city WHERE user.name = "John" 然后,得到了一个 CompositeEntity<user>对象 userResult,你可以用 userResult.getJoinEntities(City.class)来获得这条 user 关联的所有 city。 我默认提供了一个较为简陋的实现。</user></t>

再杂谈一下吧。这个框架的具体实现其实很早就做出来了( master )分支,但是发现想扩展一个功能时存在了困难,就着手改造,把部件全部抽象化接口化。这才发现接口化、定义规范是最难的事情。当然,目前的组件结构我也不是很满意,主要在于复合条件链( ConditionChain )这个地方。有兴趣的大佬可以去看看代码,指点迷津一下。

以上,觉得有意思就 star 一下吧~
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2757 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 19ms · UTC 00:30 · PVG 08:30 · LAX 16:30 · JFK 19:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.