社区
Web 开发
帖子详情
大家讨论一下。。多表关联时, 用是用jdbc好,还是用hibernate好。
hongseyouyang
2010-09-28 01:26:10
例如我有一个SQL,要关联五六个表。
是用jdbc好,还是用hibernate好。
什么时候适用hibernate???什么时候适用jdbc???
...全文
470
49
打赏
收藏
大家讨论一下。。多表关联时, 用是用jdbc好,还是用hibernate好。
例如我有一个SQL,要关联五六个表。 是用jdbc好,还是用hibernate好。 什么时候适用hibernate???什么时候适用jdbc???
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
49 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaomaha
2011-07-06
打赏
举报
回复
对于关联不多的查询 hibernate hql查询效率也很高,如果关联关系太多,那么建议使用createSQLQuery 这个接口,我们项目都是这样做的·
allengor
2010-10-11
打赏
举报
回复
当表很多而且业务逻辑比较繁琐的时候还是使用hibernate更好,jdbc的话就不如hibernate有优势,但是5个表,如果业务逻辑不复杂的话,用JDBC也行,楼主自己决定喽
lasthope
2010-10-02
打赏
举报
回复
ibatis
lmf19900120
2010-10-02
打赏
举报
回复
如果觉得hibernate用不习惯就用jdbc了,不是因为麻烦,表多其实更应该用hibernate,我们做一个项目有30多张表,还是用的hibernate,只要表的关系先维护好,自动生成后,XML中就不用配了,所有的关系都有,5个表,不多的 还是用jdbc没那么麻烦 不用你去维护表的关系和结构。
marqio
2010-10-02
打赏
举报
回复
hibernate也不错,可以实现多表关联,而且支持原生sql,如果想使用,建议对hibernate很了解的基础上,不然后面带来的开发问题会很多,如果不是很熟悉还是建议jdbc,开发起来快,多表操作也方便。
qingyuan18
2010-10-02
打赏
举报
回复
参考这篇文章,之前做项目的时候写的:
http://www.ibm.com/developerworks/cn/java/j-lo-hibernate-jdbc/index.html?ca=drs-
多表关联用hibernate效率很低,毕竟这个框架主要的任务是OR映射而不是查询优化
aNIITtoKYRJ
2010-10-02
打赏
举报
回复
hibernate 你少写很多代码 jdbc 执行效率高 各有优点 看你自己对哪个熟悉 用起来爽
微甜灬呼吸
2010-10-02
打赏
举报
回复
我除了单表的都是用sql
b1412
2010-10-02
打赏
举报
回复
多表关联并要拼凑非持久化的我觉得还是jdbc灵活些。
风影萧诺
2010-10-01
打赏
举报
回复
当然用框架好了
代码写的少。。。。 效率又高。。。。
sun0322
2010-10-01
打赏
举报
回复
[Quote=引用 38 楼 sxzlc 的回复:]
iBaits好,感觉比hibernate好多了,自由对Sql进行操作。
[/Quote]
没看清题目,
多表关联
时, 用hibernate吧!
sun0322
2010-10-01
打赏
举报
回复
iBaits好,感觉比hibernate好多了,自由对Sql进行操作。
cnjzy0106
2010-09-30
打赏
举报
回复
sql 多表关联hibernate效率慢了。
yinxingchen521165737
2010-09-30
打赏
举报
回复
在咱们编程中,其实没有什么是最好的,而是有什么是合适的
有的小项目如果你用Hibernian那就大材小用了,
如果你有些大项目但是业务关系不够复杂,你用Hibernian也是大材小用
反之JDBC也不一定在每个地方都很好,看项目情况
最近几年看穿了Hibernian的东西,感觉自己可以根据实际情况,
在JDBC的基础上自己封装,这样既提高了效率也提高了开发速度,
关键在于我们用的Hibernian它会加载好多没有用途的东西在里面,所以我
跟提倡大家自己没事的时候自己封装一套属于自己的JDBC框架,
然后在很多项目中实现它,慢慢完善最后等框架成熟了,自己就有相应的想法和看法了
scentdia
2010-09-30
打赏
举报
回复
不建议用hibernate,特别是表记录数大的情况下
sword_zhou
2010-09-30
打赏
举报
回复
hibernate底层还不就是jdbc ,那肯定用jdbc快了,hibernate还多一个编译、翻译的过程
shadow55
2010-09-30
打赏
举报
回复
多表关联处理的时候,我就会情不自禁幻想着hibernate带来的好处,jdbc要写的代码太多了
薛--松
2010-09-30
打赏
举报
回复
才六张表 用Hibernate貌似有点浪费 但用什么还要看情况了
比如 如果这些表关系比较复杂的话 如有一对多 多对多 多对一 都存在的话 建议用Hibernate 因为配置好关系好 Hibernate 离线查询 抓取 容易多了 可以省好多代码
如果你的项目 业务不复杂的话 还是用JDBC吧 用JDBC灵活多了 但用什么决定权还在你手上啦
hongseyouyang
2010-09-30
打赏
举报
回复
原来如此
COCO_AS
2010-09-30
打赏
举报
回复
更多的情况下,执行的快慢远不如开发的快慢重要,还有就是易于维护更重要。考虑维护人员的水平才是长久之道。
加载更多回复(29)
数据获取压缩包(zsxq)
zzxq代码获取压缩包
管家婆加密狗读写工具
"管家婆加密狗读写工具"是一款专门针对管家婆软件的辅助工具,旨在帮助用户进行加密狗的读取和写入操作。加密狗是一种硬件设备,通常用于软件的授权管理,确保只有拥有正确密钥的用户才能运行特定的软件。在IT行业中,这种技术被称为硬件锁或USB Dongle,它通过USB接口连接到计算机,存储了软件的许可证信息。 管家婆软件是一款广泛应用于中小企业财务管理、进销存管理、生产管理等领域的应用软件。它的不同版本可能需要不同的加密狗来验证用户的使用权。"适用于多种版本"表明这款工具兼容管家婆的多个产品版本,为用户提供了一站式的加密狗管理解决方案。 "已测试可用"意味着开发者或提供者已经对这个工具进行了实际的测试,确保它在实际环境中可以正常工作。这是非常重要的,因为它给用户带来了一定程度的信任,表明该工具在使用
时
不会出现严重的兼容性问题或功能失效。 "要有狗才能用哦"这一提示强调了加密狗是必不可少的,没有加密狗,这个读写工具将无法执行其功能。这意味着用户必须拥有合法的管家婆加密狗才能使用这个工具,否则将无法进行任何读写操作。 从压缩包中的文件名"管家婆写狗(R4ND全集)无壳版.exe"可以看出,这是一个针对管家婆软件的写狗工具,而且是"无壳版"。"无壳版"通常指的是软件去除了保护壳,即没有额外的防逆向工程措施,这可能使工具更易于理解和使用,但同
时
也可能让软件更容易被破解。"R4ND全集"可能表示这个工具包含了针对各种随机情况的全面支持,比如处理各种类型的加密狗或者各种数据写入需求。 "管家婆加密狗读写工具"是为了解决管家婆软件用户在加密狗管理上的问题而设计的,它具备广泛的版本兼容性,并经过了实际测试,确保功能的稳定性和可靠性。用户需要拥有管家婆的加密狗才能使用此工具进行读写操作,而提供的无壳版本可能方便了用户进行更深入的使用或调试。然而,使用无壳版工具也需谨慎,因为这可能会增加软件被非法利用的风险。
怎样学好计算机组成原理知识.md
怎样学好计算机组成原理知识.md
PA1实验报告1
【PA1实验报告1】是关于计算机系统和软件开发的一个实验项目,主要涵盖了以下几个关键知识点: 1. **指令集架构**:实验的目标之一是熟悉指令集的架构。指令集是计算机处理器理解和执行的基本命令集合,它定义了处理器如何处理数据和控制硬件。在这里,虽然可以选择不同的指令集,如RISC-V或x86,但因为实现多个指令集的复杂性,实验选择了x86。x86架构是一种复杂的CISC(复杂指令集计算)架构,包含了大量的单条指令,可以执行多种操作。 2. **图灵机原理**:图灵机是一种理论计算模型,用于描述通用计算能力的极限。在实验中,探究图灵机的运行原理意味着理解其基本操作,包括如何读取和修改存储带上的符号,以及如何根据当前状态和读取的符号来改变状态和移动读写头。 3. **调试器的工作原理**:调试器是软件开发中的重要工具,用于检查和控制程序的执行。实验要求用代码模拟寄存器结构,实现调试器的基本功能。这包括设置断点、单步执行、查看寄存器和内存状态等。调试器的工作原理涉及追踪程序执行流程,中断执行以便分析,并能恢复执行以继续调试。 4. **寄存器结构模拟**:在x86架构中,有不同大小的寄存器,如32位、16位和8位寄存器。实验要求使用`union`结构来模拟这些寄存器,因为`union`可以在同一内存空间中存储不同大小的数据类型,从而反映x86寄存器的共用特性。例如,EAX寄存器可以视为AX、AH和AL的组合。 5. **NEMU模拟器**:NEMU是一个程序模拟器,它的目的是使其他程序能够在NEMU上运行,就像在真实的硬件上一样。实验中提到的`init_monitor()`函数是NEMU启动
时
调用的关键初始化函数,负责处理参数解析、日志文件初始化、镜像加载和ISA相关的初始化工作。`load_img()`函数用于加载客户程序的镜像,而`init_isa()`则涉及CPU状态的初始化,包括寄存器的设置。 6. **内存管理**:实验中提到了固定内存位置0x10000来加载客户镜像,以及抽象出来的API如`isa_default_img[]`和`isa_default_img_size`,这些API简化了镜像加载和内存管理。 7. **设备初始化**:`init_device()`函数用于初始化设备,这是模拟真实计算机环境的关键部分,因为模拟器需要模拟I/O设备以处理输入输出操作。 8. **断点和监视点**:实验还要求实现监视点功能,即断点。断点是调试中的一个关键元素,允许在特定代码行暂停程序执行,以便检查程序的状态。 这个实验全面地覆盖了计算机系统的基础知识,从底层的指令集到高级的调试技术,旨在加深学生对计算机系统运行机制的理解,并提供实践经验。通过这样的实验,学生不仅能够学习到理论知识,还能提升实际编程和解决问题的能力。
nexus-3.30.0-01-win64.zip
Nexus是Sonatype公司开发的一款强大的 Maven仓库管理器,它集成了Maven仓库代理、存储库聚合以及组件发布等功能,广泛应用于Java开发者的构建和部署流程中。标题"nexus-3.30.0-01-win64.zip"表示的是Nexus 3的30.0.0.1版本的Windows 64位安装包,这通常用于在Windows操作系统上搭建和管理本地或企业级的Maven仓库。 描述中提到可以从官方网站下载,这确保了软件来源的正规性与安全性。下载地址是https://help.sonatype.com/repomanager3/download/,这是Sonatype官方的帮助页面,用户可以在此获取最新版本的Nexus Repository Manager及其相关的文档和资源。 Nexus的核心功能包括: 1. **代理仓库**:Nexus可以作为Maven中央仓库的代理,减少对互联网的直接访问,提高开发效率。通过配置,它可以缓存远程仓库中的组件,本地团队可以快速获取所需依赖。 2. **存储库聚合**:允许用户将多个存储库(如Maven、npm、NuGet等)组合成一个逻辑组,便于管理和查找组件。 3. **组件发布**:开发者可以使用Nexus发布自己的软件组件,确保版本控制和权限管理。 4. **安全控制**:Nexus提供了精细的访问控制策略,可以限制不同用户或团队对不同存储库的访问权限。 5. **质量检查**:内置的构件验证功能可以检查上传的组件是否符合预设的规则,比如POM格式正确性、签名验证等。 6. **搜索与浏览**:Nexus提供图形界面,方便用户搜索、浏览和管理仓库中的组件。 7. **持续集成**:与CI/CD工具如Jenkins、GitLab CI/CD等集成,自动化构建和部署过程。 8. **版本管理**:支持SNAPSHOT版本的管理,方便进行开发阶段的版本迭代。 压缩包内的两个主要文件“sonatype-work”和“nexus-3.30.0-01”可能是Nexus的安装目录结构。"sonatype-work"通常包含Nexus运行
时
的数据和配置,如数据库连接信息、日志文件等;而"nexus-3.30.0-01"可能是Nexus的可执行程序和配置文件,用于启动和配置服务。 在安装和配置Nexus
时
,用户需要注意以下几点: - 安装路径应避免有空格和特殊字符,以防运行
时
出现问题。 - 配置文件通常位于“nexus-3.30.0-01/conf”目录下的“nexus.properties”,根据实际需求进行修改。 - 启动Nexus通常需要指定JAVA_HOME环境变量,确保使用的是兼容的Java版本。 - 需要创建并配置至少一个仓库,如Maven公共仓库的代理,以便开始使用。 - 对于生产环境,应考虑设置备份策略,防止数据丢失。 Nexus作为一款强大的软件仓库管理工具,对于Java开发者和企业来说,是构建高效、安全的软件供应链的重要组成部分。通过正确配置和使用,能够大大提高软件开发和发布的效率,同
时
保障组件的质量和安全性。
Web 开发
81,117
社区成员
341,740
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章