设为首页 收藏本站
查看: 406|回复: 0

[经验分享] Hibernate+Myeclipse+MySQL实例1

[复制链接]

尚未签到

发表于 2015-6-19 09:18:17 | 显示全部楼层 |阅读模式
链接自http://beansoft.java-cn.org/myeclipse_doc_cn/hibernateintroduction/
这是一个非常好的视频教程,如果我这里链接打不开的话可以上网看!我按步骤做了,可以执行。

1. 简介
  欢迎阅读 MyEclipse 的 Hibernate 入门教程. 在这个教程里我们将会介绍一些 Hibernate 框架基本功能的使用, 例如在 MyEclipse 中进行 OR 映射.
  就核心而言, Hibernate 是 OR-mapping 技术的具体实现, 用来在运行的时候映射数据库表格到 Java 对象. 使用像 Hibernate 这样的持久化框架可以让开发人员关注于如何编写业务逻辑而不是去编写正确有效的持久层(包括但不限于 DAO, SQL 查询, JDBC 代码, 连接管理等).
  然而, 要使用 Hibernate, 必须生成正确的持久化映射文件, 设置数据库连接属性以及编写 DAO 来读写映射的实体类. 很幸运的是, 使用 MyEclipse 的开发人员不需要写这样的代码因为 MyEclipse 会自动生成所有的代码. 这一点自动生成的代码可以将你从编写 Hibernate 代码中解放出来, 这样你就可以集中精力在最重要的任务上: 编写应用的业务逻辑.
2. 建议的听众
  这个教程的目标受众是那些好歹对 MyEclipse 或者 Eclipse 有所了解的开发人员, 应该掌握使用 IDE 进行浏览以及理解一些常见的概念例如 "View 视图" . 另外, 开发人员最好熟悉 Java 中的持久化开发 (JDBC, EJB, iBatis, JPA, 等等.), 这样才能更快的理解 Hibernate 扮演的角色. 尽管这个教程介绍了一些 Hibernate 的基础只是, 但是这并不能代替 Hibernate 官方网站的 Hibernate 参考手册, 这些信息位于文末的 资源 部分. Hibernate 包含了很多功能来支持企业级别的应用开发, 这些可以通过官方参考文档或者阅读高质量的 Hibernate 书籍来学习.
  如果您对 MyEclipse 和 Hibernate 都感到不熟悉, 这个教程可以帮你熟悉两个部分的基础知识.  要学习更多的 MyEclipse 或者 Hibernate 文档, 请阅读我们的产品 文档 或者文末的 资源 部分.
3. 系统需求
  这个教程基于 MyEclipse 5.1 制作, 捆绑的是 Hibernate 3.1 类库. 如果你在使用其它版本的 MyEclipse, Hibernate, 绝大部分的屏幕操作和说明都将是十分相似的.
  如果你使用的是最新版本的 MyEclipse, 并且发现本教程的一些部分和你使用 MyEclpse 时所看到的屏幕不一样, 请 告诉我们 , 我们(注: MyEclipse 文档团队, 不是我, 翻译这份文档的人) 将会确保解决任何不一致的地方.
4. Hibernate 介绍
  在早期的 Java 数据库和网站开发中, 开发人员通过 java.sql 包里面的各式各样的类来操作数据库; 你甚至可以记起来自己当时怎么写的. 编写的方式基本上就是通过 DriverManager 获取 Driver, 创建 Connection, 使用 Connection, 正确处理异常, 关闭连接等等. 这种情况下常见问题包括忘记关闭数据库连接, 或者运行一段时间后出现了连接异常.
  几年之后 "连接池" 成了个大话题因为它可以让开发人员不用再关心创建和管理(关闭)数据库连接, 这样可以集中精力于他们的 SQL 和ResultSet 分析代码中. 这样, 我们几乎解决了长时间运行的应用程序里面的连接异常的问题. 然而, 还是经常能看到成百上千行的代码来生成一段查询数据的SQL 然后分析 ResultSet 来填充查询结果.
  又是几年过去了, 某些人产生了一个想法: 自动将 ResultSet 里面的结果直接映射成 Java 对象, 这解决了大部分的像模版一样的重复多余的分析结果集的代码. 这时候 Java 数据库开发已经前进了好几步, 已经变得相对很容易了. 在这些基础之上, Hibernate 出现在我们的面前.
  Hibernate 带来的想法不仅仅是自动化这些过程, 而且在内存中管理对象的状态, 它来关心什么时候以及如何将对象值"读取"或者"写入"数据库. 忽然的, 所有的开发人员都在完全使用对象(或者映射的对象)并且让 Hibernate 来处理其它的事情. 开发人员完全不再需要编写 JDBC 和 SQL 代码(译者注: 这只是用对象方式设计数据库的新项目中才可以, OR 这个词限定了它的适用范围, 并不是什么项目都能用 Hibernate 的). 现在他们通过持久化框架的代码来代替过去所写的那些复杂的代码.
  在 Hibernate 出现的时候, 其它的可用的持久化技术包括 EJB 2.x. Hibernate 的适时出现, 易用性, 以及大量开发人员的支持导致它很快在 Java 开发领域声名雀起.
  在这个教程中, 我们将会看一看如何使用 MyEclipse 开发 Hibernate 来简化开发过程, 甚至比单独使用 Hibernate 更方便. 事实上, MyEclipse 通过在短短几秒内生成 Java 应用的持久层的代码, 不需要你来编写任何 Hibernate 映射或者配置文件.
  我们通过创建一个简单的数据库开始, 稍后这个数据库将会被反向工程来生成到一个启用了 Hibernate 的项目中. 接下来, 我们将会编写一些简单的 Java 代码来使用 MyEclipse 所自动生成的 Hibernate 代码来存储, 读取以及更新数据库中的信息.
5. 开始工作
  如果你需要这个教程所创建的项目文件, 以及所使用的数据库表格的建表 SQL 脚本, 可以在文末的 资源 部分找到. 不过还是强烈鼓励读者自己照着教程来创建这个项目.
  要在 MyEclipse 中开始使用 Hibernate 和 Spring, 首先我们需要有一个数据库连接来供程序来使用. 在这里, 使用的是 MySQL 5, 事先创建了一张示例表格 user table . 我们使用 MySQL Connector/J JDBC 驱动来连接到安装好的 MySQL. 现在首先来创建一个新的连接, 在 MyEclipse 中连接到我们的数据库:

图 1. 创建数据库连接
  现在已经创建好了连上了数据库的连接, 第二步就是创建一个启用了Hibernate 功能的项目 (Java, Web, Web Service, 等等, 都可以). 可以先创建一个任意类型的基本项目, 例如 Java 或者 Web 项目, 然后通过 MyEclipse 菜单下的选项来添加 Hibernate capabilities 给当前项目, 如下所示:

图 2. 创建一个支持 Hibernate 的项目
6. 反向工程
  现在已经建好了数据库连接和配置好的项目, 接下来要做的就是使用 MyEclipse 来进行反向工程, 从数据库表格生成 Hibernate (Java) 对象并把这些对象放到当前的项目中去.
  在下面的例子中, 我们使用了最简单模式下的反向工程, 全部采用默认设置. 当然, 如果愿意你也可以通过点击 "Next" 按钮切换屏幕时来选择一些选项例如主键生成策略, 对象名字, 类型以及其它设置. 现在让我们开始反向工程表格:

图 3. 反向工程从 user 表生成 Hibernate (Java) 对象
  现在数据库表格已经被自动反向工程到我们的项目中了, MyEclipse 中有很多种 Hibernate 工具可以使用(甚至不需要写代码!). 第一个要看的工具是 HSQL 编辑器.
  HQL 编辑器, 以及其它的 HQL 视图都位于 Hibernate 透视图中, 可以协助开发, 执行或者测试 HQL 查询. HQL 是一种类似于 SQL的语言, 叫做 "Hibernate 查询语言". 它可以从某种意义上看作简化过的 SQL, 但是用的是对象名字和属性来代替数据库表和字段的名字. 可以在位于 资源 部分的 Hibernate 参考文档中来详细的学习 HQL.
  使用 HQL 编辑器你可以即时编写 HQL 然后执行. 编辑器通过使用 MyEclipse 从数据库反向工程所生成的对象, 把 HQL 查询翻译成 SQL(显示于界面的右下侧), 然后加以执行.  查询结果将会返回为 Java 对象然后显示在界面的左下侧. 让我们来看看工作过程:

图 4. 使用 HQL 编辑器和 HQL 视图
7. 编写和运行 Hibernate 代码
  尽管熟悉 MyEclipse 提供的工具很重要, 不过我们只需要了解部分工具就行了, 所以让我们写点自己的代码测试吧!
  像我们以前提到的那样, 使用 MyEclipse 的一个最大的好处就是可以生成所有的模式化的 Hibernate 映射和 DAO 的代码. 这意味着反向工程数据库之后你就可以开始编写自己的程序来读取, 写入以及更新数据库中的数据了.
  在这个教程里面我们讲编写一些简单的方法, 依次执行下面的3个操作:

  • 创建一个新 User 然后把他添加到数据库中
  • 根据主键从数据库中加载 User , 并打印出他的信息
  • 修改 User 的值, 更新数据库中的记录然后打印出来修改过的值进行验证
  这三个方法 ( addUser, listUser, changeUser) 将在新建的类里面的 main 方法中调用. 要更好的理解这个 Hibernate 代码如何编写的, 让我们创建这个类, 将方法复制到类里面(使用复制和粘贴)然后一行一行的检查:

图 5. 创建一个使用我们所生成的 Hibernate 代码的新类
  看过代码后我们可以很直接的理解所有的事情. 我们使用 MyEclipse 为我们生成的 DAO 类来获取, 更新以及保存我们的对象到数据库中, MyEclipse/Hibernate 来关心所有的其它细节的实现. 没有比这更简单的了.
  现在到了有趣的地方了, 让我们运行代码并且看看是不是真正的进行了正确的操作:

图 6. 运行我们的示例 Hibernate 代码
  真棒! 工作的结果完全符合我们的预期! 我们使用 HQL Editor 来查询数据库并确保我们的用户保存成功. 另外, 我们还可以很容易的切换到 Database 透视图然后查询数据库来检查表格中的用户记录.
8. 小结
  尽管教程里面的例子非常简单, 但是涉及的技术和信息对我们理解 Hibernate 和 MyEclipse 都是至关重要的. 这个教程中所涉及的基础知识对任何使用 Hibernate 的项目都是有效的: 将对象映射到数据库的核心思想. 在这些基本的功能正常工作后, 你可以任意根据需要来增强, 扩展或者改变应用程序, 而 MyEclipse 将继续帮助你开发和扩展.
  希望本教程对你有所帮助. 如果你对本教程有任何建议或者问题, 请 告诉我们. 用户的反馈对我们编写这些教材是非常用价值的.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-78729-1-1.html 上篇帖子: 给mysql增加用户权限 下篇帖子: MySQL学习--使用客户端程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表