由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 赵老师,郝老师,你们再讲讲Java->DB这一块吧
相关主题
Goodbug你给个学java的roadmap吧继续挖坑JAVA和C++
Using Spring in Vert.x请教个技术问题,hibernate里的Set数据类型该怎么存到MYSQL里
你们读写数据库,是直接用java hibernate,还是Spring Framework transaction management?公司咋从外面招senior java developer, java developer lead?空降一个领导?
弯曲用j2ee spring , Jpa , jersey 这些老技术的公司还多么向赵册请教几个Spring问题
高性能Java系统的Persistence(持久化)一般用什么技术?Pivotal Drops Groovy and Grails
想学Java EE,请大侠指点dropwizard or spring
终于理解为什么java比C++牛x了新手学习java spring, hibernate或者struts的问题 (转载)
java一年内能搞的比较精通不? (转载)求NY,NJ 附近java 工作机会。 (转载)
相关话题的讨论汇总
话题: db话题: spring话题: hibernate话题: java话题: jpa
进入Programming版参与讨论
1 (共1页)
c********1
发帖数: 421
1
比如各种xDBC, ORM, JPA之类
还有小型开发用到的embedded数据库,比如H2
c********1
发帖数: 421
2
mybatis, hibernate. whatever
d****i
发帖数: 4809
3
你不是已经上了LAMP了吗?PHP连DB比Java容易方便快捷很多。

【在 c********1 的大作中提到】
: 比如各种xDBC, ORM, JPA之类
: 还有小型开发用到的embedded数据库,比如H2

c********1
发帖数: 421
4
我想学学东西,
而且我的老本行是JAVA
再说DB这一块,早晚要学,趁现在郝蛋老师和赵册老师和其它的大牛都有闲
不如让他们上上公开课,有何不可?

【在 d****i 的大作中提到】
: 你不是已经上了LAMP了吗?PHP连DB比Java容易方便快捷很多。
w**z
发帖数: 8232
5
直接JDBC 硬搞。最多上个connection pool

【在 c********1 的大作中提到】
: 我想学学东西,
: 而且我的老本行是JAVA
: 再说DB这一块,早晚要学,趁现在郝蛋老师和赵册老师和其它的大牛都有闲
: 不如让他们上上公开课,有何不可?

c********1
发帖数: 421
6
大多数项目,还是ORM快

【在 w**z 的大作中提到】
: 直接JDBC 硬搞。最多上个connection pool
p*****g
发帖数: 7
7
Spring JdbcTemplate is good enough. Do not touch Hibernate :) It is evil.
g*****g
发帖数: 34805
8
Spring jdbc and spring data.
z****e
发帖数: 54598
9
感觉java所有的东西都不要太关注细节,以掌握idea为主
idea对,剩下的你只要投入时间,慢慢google,慢慢试
都能搞定,这就是java的好,一个东西的经验往往可以直接挪用到其他东西上去
因为idea一样,标准一样,剩下的都是私货了,别太关心私货
都是导致vendor lockin的东西
db的话
jdbc->connection pool->orm/推荐hibernate->jpa
jpa就是j2ee的一部分,hibernate就是jpa的impl之一
jpa就是hibernate那个gavin king带头搞的标准
颠覆了entity bean
gavin king是monash大学读数学本科毕业的
澳洲人比较蠢,所以不会造太复杂的东西,思路都是线性简化的
所以spring什么都是愚蠢的aussi搞出来的东西,相对容易掌握
搞ejb那拨人智商很高,很多都是一流发达国家一流大学毕业的
比如巴黎高师,斯坦福这种,搞jboss那个就是巴黎高师的校友
所有的db都提供jdbc驱动,不管用哪个db,都能用jdbc连
但是连了之后,执行的sql不同的db不一样
当年gavin king因为在不同的db之间对付不同db上的不同sql搞疯了
于是写了一个hibernate出来,一下子大受欢迎
因为程序员们象当年讨厌不同的os一样讨厌不同的db
分布式就这毛病,平台碎片化,经常花很长时间在不同的平台上折腾
所以java有多东西都在封装不同的it产品
hibernate尽可能多地封装了不同db上sql的差异
统一接口,然后再在hibernate的原型之上,定义了jpa
统一了app server也就是j2ee的接口
所以你搞懂了hibernate,基本上就都打通了
jdbc->连接池->hibernate,搞懂这三个,可以了,前两个很容易
第三个稍微麻烦点,但是做几个例子,也都那么一回事
spring data没用过,不知道
ibatis也就是mybatis的邪恶前世,我觉得不好,还要手写sql,烦
sql真应该早点淘汰掉,尤其是store procedure,噩梦
现在之所以还有公司被oracle插管吸血,就是sp太多
z****e
发帖数: 54598
10
行业trend是cassandra
现在把hibernate放简历上
加分有限,cassandra比较热
至少nosql这个热点就算过了巅峰
也还没过去太久
相关主题
想学Java EE,请大侠指点继续挖坑JAVA和C++
终于理解为什么java比C++牛x了请教个技术问题,hibernate里的Set数据类型该怎么存到MYSQL里
java一年内能搞的比较精通不? (转载)公司咋从外面招senior java developer, java developer lead?空降一个领导?
进入Programming版参与讨论
o***g
发帖数: 2784
11
repository那套是属于jpa里的?

【在 z****e 的大作中提到】
: 感觉java所有的东西都不要太关注细节,以掌握idea为主
: idea对,剩下的你只要投入时间,慢慢google,慢慢试
: 都能搞定,这就是java的好,一个东西的经验往往可以直接挪用到其他东西上去
: 因为idea一样,标准一样,剩下的都是私货了,别太关心私货
: 都是导致vendor lockin的东西
: db的话
: jdbc->connection pool->orm/推荐hibernate->jpa
: jpa就是j2ee的一部分,hibernate就是jpa的impl之一
: jpa就是hibernate那个gavin king带头搞的标准
: 颠覆了entity bean

s****y
发帖数: 503
12

ibatis的sql是可以自动生成的 我觉得比hibernate灵活一些

【在 z****e 的大作中提到】
: 感觉java所有的东西都不要太关注细节,以掌握idea为主
: idea对,剩下的你只要投入时间,慢慢google,慢慢试
: 都能搞定,这就是java的好,一个东西的经验往往可以直接挪用到其他东西上去
: 因为idea一样,标准一样,剩下的都是私货了,别太关心私货
: 都是导致vendor lockin的东西
: db的话
: jdbc->connection pool->orm/推荐hibernate->jpa
: jpa就是j2ee的一部分,hibernate就是jpa的impl之一
: jpa就是hibernate那个gavin king带头搞的标准
: 颠覆了entity bean

z****e
发帖数: 54598
13
看名字就知道了
jpa == java persistence api

【在 o***g 的大作中提到】
: repository那套是属于jpa里的?
c********1
发帖数: 421
14
请赵老师再详细解释解释,
比如一个小的操作(routine),
用stored procedure,里面用两个变量
对于逻辑层,只需要call一次SP就行了
但如果把SP去掉,用逻辑层实现的话
虽然架构上更加符合设计原则
但是,性能上就多了一次(或多次)从逻辑层到db的round trip
另外,如果instance/nodes一多,可能还需要考虑并发的同步锁问题
所以SP在性能上还是有优势的,虽然developer们心理这么做不舒服
不知道赵老师在不提倡SP之余,有什么更好的方案?

【在 z****e 的大作中提到】
: 看名字就知道了
: jpa == java persistence api

c********1
发帖数: 421
15
赵老师说“jdbc->连接池->hibernate”,貌似没有提到spring 的那些东西
你要不和赵老师互相辩论一下:) 不是挑拨,我是想从讨论中学东西

【在 p*****g 的大作中提到】
: Spring JdbcTemplate is good enough. Do not touch Hibernate :) It is evil.
c********1
发帖数: 421
16
郝老师,你说的和phiking 说的是不是同一个东西?

发信人: phiking (A Programmer), 信区: Programming
标 题: Re: 赵老师,郝老师,你们再讲讲Java->DB这一块吧
发信站: BBS 未名空间站 (Fri Sep 5 00:44:37 2014, 美东)
Spring JdbcTemplate is good enough

【在 g*****g 的大作中提到】
: Spring jdbc and spring data.
z****e
发帖数: 54598
17
sp高度依赖db,换个db就不能用了,不少db不支持sp
sp当然可以做一些简单的逻辑,要不然就不叫sp了
backend里面这种陷阱很多,一旦陷进去,以后再拔出来时候
就加倍还回去,当你高度依赖一个db的时候,比如oracle
那么oracle哪天突然觉得不爽了,license fee加倍,咋办?
至于并发带来的锁的冲突,这个就是为啥我们需要jta
jta封装了所有的底层逻辑,你只需要拿到context之后
选择ctx.begin,然后ctx.commit就好了,或者高级点@Transaction
剩下的底层逻辑压给框架比如hibernate去做,你就不需要折腾了
如果性能上有问题,那就直接干掉db
用nosql分担大部分persistence的东西
如果实在是db撑不住,那就看看newsql吧
db有75%的时间浪费在一些其实没啥必要的事情上
什么write ahead log之类的,不过newsql还不成熟

【在 c********1 的大作中提到】
: 请赵老师再详细解释解释,
: 比如一个小的操作(routine),
: 用stored procedure,里面用两个变量
: 对于逻辑层,只需要call一次SP就行了
: 但如果把SP去掉,用逻辑层实现的话
: 虽然架构上更加符合设计原则
: 但是,性能上就多了一次(或多次)从逻辑层到db的round trip
: 另外,如果instance/nodes一多,可能还需要考虑并发的同步锁问题
: 所以SP在性能上还是有优势的,虽然developer们心理这么做不舒服
: 不知道赵老师在不提倡SP之余,有什么更好的方案?

z****e
发帖数: 54598
18
不冲突
spring最重要的是ioc和aop,5分钟就能搞懂ioc
至于spring data,本质上跟hibernate这些是一回事
用法稍微有些不同而已,spring各个components凑一起
可以说是jee的非标准化实现,hibernate更为标准一点
但是spring data也同样遵照了jta,所以在某些方面用起来不会有区别
另外spring也可以很容易地跟hibernate这些框架集成
java就这样,任何一个component都有三个以上的东西在竞争
不象其他语言,一个领域基本上就那么一个东西可以用
当你觉得不爽了,要换framework,连同语言都要换
java至少能保证你不需要换语言,这样可以降低学习成本
尽早脱离语言这个level,去思考一些更为不那么繁琐的事情

【在 c********1 的大作中提到】
: 赵老师说“jdbc->连接池->hibernate”,貌似没有提到spring 的那些东西
: 你要不和赵老师互相辩论一下:) 不是挑拨,我是想从讨论中学东西

c********1
发帖数: 421
19
感谢赵老师指点
“如果实在是db撑不住,那就看看newsql吧
db有75%的时间浪费在一些其实没啥必要的事情上
什么write ahead log之类的,不过newsql还不成熟”
这里面“如果实在是db撑不住”是什么意思?
另外“DB”又是指什么?我个人觉得(不对请指正),DB包括所有的sql,nosql,newsql
您前面说如果DB的performance不符合需要,可以干掉DB...
newsql本身也是一种DB吧

【在 z****e 的大作中提到】
: sp高度依赖db,换个db就不能用了,不少db不支持sp
: sp当然可以做一些简单的逻辑,要不然就不叫sp了
: backend里面这种陷阱很多,一旦陷进去,以后再拔出来时候
: 就加倍还回去,当你高度依赖一个db的时候,比如oracle
: 那么oracle哪天突然觉得不爽了,license fee加倍,咋办?
: 至于并发带来的锁的冲突,这个就是为啥我们需要jta
: jta封装了所有的底层逻辑,你只需要拿到context之后
: 选择ctx.begin,然后ctx.commit就好了,或者高级点@Transaction
: 剩下的底层逻辑压给框架比如hibernate去做,你就不需要折腾了
: 如果性能上有问题,那就直接干掉db

c********1
发帖数: 421
20
赵老师,请问:
您所指的spring data,究竟用这图
左上角那一块 表述更恰当
还是下面这图
中的“Spring ORM + Spring DAO”那一块表述更精确?

【在 z****e 的大作中提到】
: 不冲突
: spring最重要的是ioc和aop,5分钟就能搞懂ioc
: 至于spring data,本质上跟hibernate这些是一回事
: 用法稍微有些不同而已,spring各个components凑一起
: 可以说是jee的非标准化实现,hibernate更为标准一点
: 但是spring data也同样遵照了jta,所以在某些方面用起来不会有区别
: 另外spring也可以很容易地跟hibernate这些框架集成
: java就这样,任何一个component都有三个以上的东西在竞争
: 不象其他语言,一个领域基本上就那么一个东西可以用
: 当你觉得不爽了,要换framework,连同语言都要换

相关主题
向赵册请教几个Spring问题新手学习java spring, hibernate或者struts的问题 (转载)
Pivotal Drops Groovy and Grails求NY,NJ 附近java 工作机会。 (转载)
dropwizard or springspring 和hibernate 掰了吗?
进入Programming版参与讨论
z****e
发帖数: 54598
21
名字不重要,spring data就是那么个意思
把握idea,你看这图里面几个模块
都给你切割得很清楚了
orm就是类似hibernate一样的东西
jdbc就是底层sql接口
transaction就是jta,spring现在也越来越大
关键是现在spring文档也越来越糟糕,vmware故意把文档写糟糕来
好让客户去买他们的service,我觉得你就搞懂spring ioc部分
其他可用可不用,orm什么你用hibernate是一样的
一些细节语法上的出入而已,idea是共通的

【在 c********1 的大作中提到】
: 赵老师,请问:
: 您所指的spring data,究竟用这图
: 左上角那一块 表述更恰当
: 还是下面这图
: 中的“Spring ORM + Spring DAO”那一块表述更精确?

z****e
发帖数: 54598
22
这个图表述得也不清不楚
有些名称用j2ee标准化得名称
比如jms
有些又用了idea的名字
比如orm,用标准化名称应该是jpa
有些又用了关键字
比如transaction,用标准化名称应该是jta
所以说,backend就这样,各种乱七八糟得概念凑一起
很容易乱,所以最重要还是把握思想,不要被这些东西所迷惑

【在 c********1 的大作中提到】
: 赵老师,请问:
: 您所指的spring data,究竟用这图
: 左上角那一块 表述更恰当
: 还是下面这图
: 中的“Spring ORM + Spring DAO”那一块表述更精确?

z****e
发帖数: 54598
23
另外dao这个其实是一个pattern name
你还是自己动手实现一个就明白了
dao+dto差不多就是orm,官方接口总称叫做jpa
1 (共1页)
进入Programming版参与讨论
相关主题
求NY,NJ 附近java 工作机会。 (转载)高性能Java系统的Persistence(持久化)一般用什么技术?
spring 和hibernate 掰了吗?想学Java EE,请大侠指点
Spring hibernate 学起来 要多久终于理解为什么java比C++牛x了
想转Java开发,学什么framework最好找工作? (转载)java一年内能搞的比较精通不? (转载)
Goodbug你给个学java的roadmap吧继续挖坑JAVA和C++
Using Spring in Vert.x请教个技术问题,hibernate里的Set数据类型该怎么存到MYSQL里
你们读写数据库,是直接用java hibernate,还是Spring Framework transaction management?公司咋从外面招senior java developer, java developer lead?空降一个领导?
弯曲用j2ee spring , Jpa , jersey 这些老技术的公司还多么向赵册请教几个Spring问题
相关话题的讨论汇总
话题: db话题: spring话题: hibernate话题: java话题: jpa