Home » 企业级Java

企业级Java

Hibernate教程-终极指南

编者按:Hibernate ORM(简称Hibernate)是一个对象-关系映射框架,用于将面向对象的域模型转换为传统的关系数据库。Hibernate通过将直接的持久性相关的数据库访问替换掉,而高级对象处理功能来替换,解决了对象-关系间不匹配的问题。 Hibernate是最流程的Java框架之一。为此,我们在Java Code Geeks提供了大量的教程,点击这里查看它们。 现在,我们想要创建一个独立的、具有参考性的文章,来提供一个关于如何使用Hibernate的框架,并且帮助你快速开启你的Hibernate应用开发。开始享受吧! 目录 1. 简介 2. 项目搭建 3. 基础知识 3.1. SessionFactory 和Session 3.2. 事务(Transactions) 3.3. 表(Tables) 4. 继承(Inheritance) 5. 关系(Relationships) 5.1. 一对一 5.2. 一对多 5.3. 多对多 5.4. 组件(Components) 6. 用户自定义数据类型 7. 拦截器(Interceptors) 8. 源码下载 简介 Hibernate是Java世界里最流程的对象/关系映射框架(ORM)之一。它允许开发者将普通的Java类的对象结构,映射到数据库中的关系结构。借助于ORM框架,我们的一些工作,比如将内存中的对象实例存储到持久化的数据库,和加载这些数据到原来的对象结构,都变得更加容易。 同时,这些ORM解决方案,比如Hibernate,旨在从那些用于存储数据的数据库产品中建立抽象层。这样,就能够面向不同的数据库产品使用相同的Java代码,而不需面向不同的数据库编写不同的代码,来处理其中细微的差别。 Hibernate也是一个JPA提供者,这意味着它实现了Java持久化API(JPA)。JPA是一个独立于厂商的规范,用于定义Java对象和关系型数据表的映射关系。在终结系列中另一篇文章已经详细解释了JPA,所以我们在本文将重点介绍Hibernate,因此,我们也不会使用JPA注解,而是使用Hibernate专有的配置文件。 Hibernate由三个不同的组件组成: 实体(Entities):Java类(普通Java对象),用于在Hibernate中映射到关系型数据库系统的表。 对象-关系元数据(Object-Relational metadata):实体和关系型数据库的映射信息,可以通过注解(Java 1.5开始支持)实现,或者使用传统的基于XML的配置文件。这些配置信息,用于在运行时执行Java对象和数据库数据的存储和恢复。 Hibernate查询语言(HQL):使用Hibernate时,发送到数据库的查询,不必是原生的SQL格式,而是使用Hibernate专有的查询语言。这些查询语句,会在运行时被翻译成当前应用正在使用的数据库对应方言;所以说,HQL格式的语句是独立于特定数据库供应商的。 在本教程,我们将解释这个框架的各个方面,同时开发一个简单的Java SE应用程序,功能主要包括存储和检索关系型数据库的数据。我们将要使用到的类库/环境如下: maven >= 3.0 :编译环境 Hibernate(4.3.8.Final) H2 (1.3.176):关系型数据库 项目搭建 第一步,我们通过命令行创建一个简单的Maven项目: mvn archetype:create -DgroupId=com.javacodegeeks.ultimate -DartifactId=hibernate 这个命令会在文件系统中生成如下结构: |-- src | |-- main | ...

Read More »

JPA入门教程 – 终极指南

java-interview-questions-answers

编者按:Java持久化API(JPA)是Java语言中的应用程序编程接口规范,在基于Java平台标准版和Java平台企业版的应用程序中,JPA负责管理关系数据。 JPA已经成为事实上的标准,用于编写与数据库交互的代码。也正由于此,我们已经在Java Code Geeks提供了丰富的教程,可以在这里访问这些教程。此外,我们还制作了一本JPA迷你书,它能够帮助你入门JPA,而且顺利过渡到更高级的概念(加入我们的newsletter,可以免费获取)。 现在,我们想要建立一篇独立的、可做参考的文章:提供一个帮助你了解如何使用JPA的框架;并帮助你快速启动你的JPA应用程序开发。开始享受吧! 目录 1. 简介 2. 创建项目 3. 基础知识 3.1. EntityManager和持久化单元(Persistence Unit) 3.2. 事务(Transactions) 3.3. 数据库表(Tables) 4. 继承(Inheritance) 5. 实体关系(Relationships) 5.1. 一对一(OneToOne) 5.2. 一对多(OneToMany) 5.3. 多对多(ManyToMany) 5.4. Embedded / ElementCollection 6. 数据类型和转换器(Converters) 7. 条件查询(Criteria) API 8. 序列(Sequences) 9. 源码下载 1. 简介 Java持久化API(JPA)是一个独立于供应商的、用于映射Java对象和关系型数据库表的规范。此规范的实现,使得应用程序的开发者们可以不依赖于他们工作中面对的特定数据库产品,从而开发出可以与不同数据库产品良好工作的CRUD(创建、读取、更新、删除)操作代码。这些框架除了可以用于处理与数据库交互的代码(JDBC代码),也可以用于映射数据和应用程序中的对象。 JPA由三个不同的组件构成: 实体(Entities): 在当前版本的JPA中实体是普通Java对象(POJO)。老版本的JPA中实体类需要继承JPA提供的实体基类,但是这样的设计导致框架中存在了严重的依赖关系,测试变得更加困难;所以在新版JPA中不再要求实体类继承任何框架类。 对象-关系型元数据(Object-relational metadata): 应用程序的开发者们必须正确设定Java类和它们的属性与数据库中的表和列的映射关系。有两种设定方式:通过特定的配置文件建立映射;或者使用在新版本中支持的注解。 Java持久化查询语句(Java Persistence Query Language - JPQL): 因为JPA旨在建立不依赖于特定的数据库的抽象层,所以它也提供了一种专有查询语言来代替SQL。 这种由JPQL到SQL语言的转换,为JPA提供了支持不同数据库方言的特性,使得开发者们在实现查询逻辑时不需要考虑特定的数据库类型。 在本教程中,我们会纵览JPA框架的不同方面,同时开发一个简单的、可以从关系数据库中存储和检索数据的Java SE应用程序。我们使用到的类库/环境如下: ...

Read More »

69 个Spring 面试问题和答案 – 终极列表 (PDF 下载)

spring-interview-questions-answers

这篇文章是关于Spring框架的一些最重要问题的总结,在面试或笔试过程中可能被问到! 不用担心您的下一个面试的的测试,因为Java Code Geeks会为您服务!您可能被问到的大部分问题都列在了这里。所有的核心模块, 从基础的Spring功能例如Spring Beans到 Spring MVC 框架都被列在了这里而且简单的介绍了。在查看了这些面试问题后,您可以查看我们的 Spring教程页面。那么,我们开始吧…! 提示:您在寻找java方面的工作机会吗?访问我们的工作面板  来搜索和查看精心选择的为全世界的IT专业人士准备的Java工作。另外,您也可以把您的简历添加到我们的  简历面板来提高您的技能来使全世界的Java招聘者看到您。 目录 Spring 概述 依赖注入 Spring Beans Spring 注解 Spring 数据访问 Spring 面向方面编程 (AOP) Spring 模型视图控制器 (MVC) Spring 概述 1. Spring是什么? Spring是针对企业版 Java的开源的开发框架 。Spring框架的核心功能能被用于开发任何的Java程序,但有针对基于Java EE平台上的Web应用程序的扩展。Spring框架的目标是使JavaEE的开发更加容易并通过使用基于POJO的编程模型来促进编程最佳实践的应用。 2. Spring 框架有什么优势? 轻量级: 在尺寸和透明度方面Spring 是轻量级的。spring框架的基础版本只有大约 2MB 大小。 控制反转 (IOC): 通过控制反转技术 ,Spring实现了松耦合。对象间只是给出了依赖性,而不是创建或寻找依赖对象。 面向切面 (AOP): Spring 支持面向切面编程 而且把应用的业务逻辑从系统服务分离开了。 容器: Spring 包含并管理应用对象的生命周期和配置。 MVC 框架: Spring的 web 框架是一个设计良好的 web MVC 框架, 它可以作为其他web框架的替代。 事务管理: Spring ...

Read More »

JMeter负载测试入门教程 – 终极指南

本教程是关于JMeter的。我们将会涉及到的要点如下: 我们会解释JMeter是用来干什么的。 JMeter是如何设计和实现的以及涉及到哪些技术。 如何正确的安装和配置它。 它的用户界面(UI)的基本功能。 详细介绍如何配置不同的测试计划。 展示如何分析它的输出结果。 最后我们会提到一些重要的最佳实践。 本文所提到的所有示例的配置和实现环境是: Java 8 update 0.20,Eclipse Luna 4.4, JMeter 2.11 和MySQL Community Server 5.6.21. 目录 1. 简介 2. 涉及到的技术 3. 本文主要讲些什么? 4. 安装 5. GUI 概述 6. 可用的请求类型 7. 测试计划和组件 7.1. 线程组 7.2. 取样器 7.3. 逻辑控制器 7.4. 监听器 7.5. 定时器 7.6. 断言 7.7. 配置元件 7.8. 前置处理器 7.9. 后置处理器 8. 测试计划元素的执行顺序 9. 启动/停止测试计划 10. Web (HTTP) 测试计划 11. 数据库测试计划入门 12. Junit测试计划 13. 录制HTTP测试 14. JMeter 插件 ...

Read More »