当前位置: 首页 > 编程日记 > 正文

《妙解Hibernate 3.X》读书笔记一-Hibernate概述及环境搭建

很早就想开始Hibernate的系统学习,但是一是工作原因,二是苦于找不到合适的书籍。Hibernate更新较快,一些被称为经典的书籍,如<深入浅出Hibernate>、《Hibernate实战》等都过于年老,介绍的为Hibernate2.1,而现在Hibernate4.o core都已经出来了,读起来怎么有点别扭。现在找到《妙解Hibernate 3.x:叩响面向对象思想之门》的书,是2010年的,较新,名字较为花哨,权且当做系统入门教程。

Hibernate,持久层实现的框架,数据持久化-将内存中的数据保存到磁盘上加以固化,实现过程则大多通过各种关系数据库完成,也有基于磁盘文件、xml数据库、消息队列的持久化技术。它的母的就是解耦合-实现应用和数据库的低耦合,另外通过封装技术实现细节,减少数据库存取代码。还有如提升应用性能,增加应用的移植性,有面向对象的思想等优点。其他类似的持久层框架有:Apache OJB, iBatis, TopLink等。

Hibernate是一种Java语言下的对象关系映射解决方案。 它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java开发中最为流行的数据库持久层框架,现已归JBOSS所有。

Hibernate使用映射文件将对象与关系数据相关联,映射文件以".hbm.xml"以为后缀,用于处理类-数据库表、属性-数据库字段等之间的对应关系;hibernate.cfg.xml为全局性的系统配置文件,用于配置数据库连接和Hibernate运行时所需要的各种属性,支持xml格式和properties格式,当然了xml格式更加易读强大了。配置文件和映射文件较为重要了,是hibernate使用的主体,生成较为重要,方法有:手工编写;依据数据库定义导出表结构,并生成对应的映射文件和java代码,可以保证映射文件、java代码与实际数据库结构一致;根据现有的java代码生成对应的映射文件,从而将java代码与数据库表相绑定。

Hibernate下载地址为http://www.hibernate.org/downloads,本人下载的是3.6.2。只需要将包导入应用的library中就可以了。当然了手动的写配置文件、映射文件、测试SQL语句等较为繁琐困难,有必要借助工具-Hibernate Tools,它是JBoss Tools的一部分,为eclipse插件。在线安装的地址为http://download.jboss.org/jbosstools/updates/JBossTools-3.1.1.GA/,3.1是对应eclipse 3.5的,安装时只选中Hibernate Tools相关的部分就可以了。

Hibernate Tools Eclipse插件的功能为:
Mapping Editor(映射文件编辑器):该编辑器可以用来编辑Hibernate XML映射文件,提供代码自动补全,语法高亮功能。 类名的自动补全,属性/表的列名自动补全。

Hibernate Console(Hibernate控制台):它提供一个全新的Eclipse Perspective窗口,可以执行HQL,并查看查询的结果。这是一个非常便利的工具,可以用来验证HQL的语法是否正确。
Configuration Wizards and Code generation(Hibernate配置文件hibernate.cfg.xml创建导航,以及代码生成器):支持完全反向生成功能,可以从已有的数据库生成Hibernate配置文件hibernate.cfg.xml,同时支持"click-and- generate"方式生成Java代码(Hibernate POJOs),DAO,XML映射文件(.hbm.xml),以及schema 文档(.hml)等文件。
Eclipse JDT integration(代码补全):该工具支持Java代码中的HQL输入补全,以及对Java代码中的HQL语法加以合法性验证。

Hibernate Tools的使用就不在此多述,较为简单,首先是生成hibernate.cfg.xml文件,在生成过程中需要配置数据库的连接;然后通过Hibernate Code generation可以根据指定的数据库生成映射文件及对应的实体类。可以参考http://www.oschina.net/p/hibernate+tools,http://wenku.baidu.com/view/94b78a4bcf84b9d528ea7aaa.html。

转载于:https://www.cnblogs.com/whuqin/archive/2011/04/07/4982101.html

相关文章:

ssm框架实现学生成绩管理系统

学习ssm框架&#xff0c;写的一个小项目&#xff0c;参考 实现的功能有&#xff1a;学生信息增删改查&#xff0c;成绩信息查询&#xff0c;修改&#xff0c;求平均值&#xff0c; 附上链接&#xff0c;欢迎下载 git clone https://gitee.com/LOL_toulan/SpringBootProject.gi…

如何查找特定目录下最大的文件及文件夹

如何查看特定目录下大小在前10位的文件 find 目录 -ls |sort -nrk7 |head 参数说明如下&#xff1a; -ls True; list current file in ls -dils format on standard output. 没加-ls之前&#xff0c;输出的只是文件名&#xff0c;类似于 /u01/app/oracle/oradata/test/…

LightOJ 1364 Expected Cards(概率+DP)

题目链接&#xff1a;http://lightoj.com/volume_showproblem.php?problem1364 题意&#xff1a;一副牌。依次在桌面上放牌。求放了四种花色的牌为C,D,H,S张时放的牌数的期望。大小王出现时必须将其指定为某种花色。指定时要使最后的期望最小。 思路&#xff1a;DP&#xff0c…

会计科目中英文对照表

现金 Cash in hand 银行存款 Cash in bank 其他货币资金-外埠存款Other monetary assets - cash in other cities 其他货币资金-银行本票 Other monetary assets - cashier‘s check 其他货币资金-银行汇票 Other monetary assets - bank draft 其他货币资金-信用卡 Other…

关于get和post两种提交方式

Get请求&#xff1a; 1.可携带的数据量小 2.只能存放字符串类型的数据&#xff0c;不能存放bean对象 3.安全性差&#xff0c;例如如果在登录上使用get请求&#xff0c;在地址栏中会显 示输入的username和password 4.客户端在接收到get请求后&#xff0c;浏览器会自动的缓存响应…

数据库原理与设计 P75作业 学号2013211466 班级0401302

习题5 2. (1)写出关系模式&#xff1a; 学生:R1 U1{学号,姓名,出生日期,系名,班号,宿舍区}; F1{学号->(姓名,出生日期,系名,班号,宿舍区)&#xff0c;班号->系名&#xff0c;系名->宿舍区}&#xff1b; 班级:R2 U2{班号,专业名,系名,人数,入校年份}; F2{班号->(专业…

Windows DDK介绍,选择和安装

windows的文档工作还是非常不错的&#xff0c;所有的信息都可以从windows DDK主页和DDK自带的帮助文档中获得&#xff0c;本文只是一个总结。 今天开始正式接触DDK&#xff0c;首先来到DDK主页&#xff0c;有如下信息有用&#xff1a; 1. 选择安装什么版本的DDK。目前DDK的推荐…

关于jsp基础知识题目(一)

1.为了标识一个HTML文件&#xff0c;应该使用标记 html 2.form表单中提交数据的目的地址的属性是 action 3.关于post&#xff1a;安全性较好&#xff0c;地址栏看不到提交的数据&#xff0c;超链接标识post提交方式&#xff0c;可以传输大量数据 4.表单的提交方式有 2 种 5…

GO环境变量设置

GOROOT就是go的安装路径在~/.bash_profile中添加下面语句: GOROOT/usr/local/go export GOROOT 当然, 要执行go命令和go工具, 就要配置go的可执行文件的路径:操作如下:在~/.bash_profile中配置如下:export $PATH:$GOROOT/bin如果是windows需要使用;符号分割两个路径, mac和类un…

Camera+销量突破200万 创始人分享成功经验

Camera 突破了200万份销量大关&#xff0c;开发商tap tap tap分享了成功经验。 创始人John Casasanta指出&#xff0c;他们花了6个多月实现销量突破100万大关&#xff0c;而接下来3个月就销售了200万份&#xff0c;照这个趋势下去&#xff0c;300万销售大关也许只需要1个半月。…

计算机组成原理习题(一)

1.计算机系统包括&#xff1a;硬件系统和软件系统 2.计算机的软件系统包括&#xff1a;系统软件和应用软件 3.冯诺依曼计算机的核心思想是&#xff1a;存储程序 4.计算机的五大功能部件&#xff1a;运算器&#xff0c;控制器&#xff0c;存储器&#xff0c;输入设备&#xf…

HTML中常见的各种位置距离以及dom中的坐标讨论

最近在学习JavaScript&#xff0c;特意买了一本犀牛角书来看看&#xff0c;尼玛一千多页&#xff0c;看的我头昏脑涨&#xff0c;翻到DOM这章节&#xff0c;突然记起平常在使用DOM时&#xff0c;碰到了好多的这个dom里面的各种宽度&#xff0c;高度&#xff0c;特意在此写一写&…

快速掌握Python的捷径-Python基础前传(1)

文&#xff1a; jacky(朱元禄) 开文序 最近看新闻&#xff0c;发现高考都考Python了&#xff0c;随着人工智能的火热&#xff0c;学数据科学的人越来越多了&#xff01;但对于数据行业本身来说&#xff0c;现象级的火热&#xff0c;这并不是什么好事。 方丈高楼平地起&#xf…

jsp实现日历

在JSP程序中使用各种脚本元素和标签实现具体的功能 <%--Created by IntelliJ IDEA.User: asusDate: 2020/2/25Time: 21:39To change this template use File | Settings | File Templates. --%> <% page contentType"text/html;charsetUTF-8" language&quo…

小胖妞洗发水广告

觉得自己的博客可能太严肃了&#xff0c;都是技术文章&#xff0c;书评&#xff0c;鸡汤呀&#xff0c;来点稍微轻松点。虽然自己都不敢直视一年前的小胖妞跳的舞蹈&#xff0c;不过现在更胖。 权且娱乐下&#xff0c;也当留个纪念~ http://v.youku.com/v_show/id_228708395.ht…

Yii2.0 RESTful API 之版本控制

Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建&#xff0c;以及 认证 等处理&#xff0c;但是没有涉及到版本管理&#xff0c;今天就来谈谈版本管理如何实现。 索性就从头开始一步一步搭建吧&#xff0c;但是关于一些概念以及使用本篇就不一一…

ssl 和 https

SSL (Secure Socket Layer) 为Netscape所研发&#xff0c;用以保障在Internet上数据传输之安全&#xff0c;利用数据加密(Encryption)技术&#xff0c;可确保数据在网络上之传输过程中不会被截取及窃听。目前一般通用之规格为40 bit之安全标准&#xff0c;美国则已推出128 bit之…

jsp实现日历(二)

<% page contentType"text/html;charsetUTF-8" language"java" %> <% page import"java.util.Calendar" %> <html> <head><title>日历</title><style>table{border: none;}table caption{color: red;…

Java微信公众平台开发(十)--微信自定义菜单的创建实现

转自&#xff1a;http://www.cuiyongzhi.com/post/48.html 自定义菜单这个功能在我们普通的编辑模式下是可以直接在后台编辑的&#xff0c;但是一旦我们进入开发模式之后我们的自定义菜单就需要自己用代码实现&#xff0c;所以对于刚开始接触的人来说可能存在一定的疑惑&#x…

【经典算法】快速排序

与归并排序一样&#xff0c;快速排序使用也使用了分治的思想。下面是对一个典型的子数组A[p,...,r]进行快速排序的三步分治过程&#xff1a; 分解&#xff1a;数组A[p,...,r]被划分成两个&#xff08;可能为空&#xff09;子数组A[P,...,q-1]和A[q1,...,r]&#xff0c;使得A[p,…

.Net 中如何测试静态方法

大部分Mokc框架是不支持mock静态方法的&#xff0c;那我们如何测试静态方法呢&#xff1f; 下面这个类包含了一个静态方法&#xff1a; public class MyHelper {public static string GetHelp(){return "This is help";} } 这个类调用了上面的Helper类中的静态方法 p…

计组--习题--总线

计算机使用总线结构的主要优点是便于实现积木化&#xff0c;缺点是______ A、 地址信息、数据信息和控制信息不能同时出现 B、 地址信息与数据信息不能同时出现 C、 两种信息源的代码在总线中不能同时传送 这里是引用 总线中地址线的作用是_______ A、 只用于选择存储器单元 B…

dispatch_queue_create(com.biostime.xxx, DISPATCH_QUEUE_SERIAL)的陷阱

代码 for(int i 0;i<10;i) { NSLog("i%d",i); dispatch_queue_t mySerialQueue dispatch_queue_create("com.biostime.xxx", DISPATCH_QUEUE_SERIAL); __block int d i; dispatch_async(mySerialQueue, ^{ …

详解Oracle安装与配置.

标签&#xff1a;Oracle 安装 配置 原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://enetq.blog.51cto.com/479739/316532 一.Oracle 简介. Oracle oracle是殷墟&#xff08;Yin Xu&#…

今天起,在广东可以用百度App一键报警!

今天&#xff0c;百度联合广东省公安厅上线了一款智能小程序&#xff1a;只要打开你手机里的百度 App 就能用了 &#xff01;在110实际接警的过程中&#xff0c;经常会遇到电话并不能很好地表达发生事件的地点等信息的情况&#xff0c;会耽误救援时间。因此&#xff0c;“广东1…

Spring 注解

1. Configuration Configuration用于定义配置类&#xff0c;可替换xml配置文件&#xff0c;被注解的类内部包含有一个或多个被Bean注解的方法&#xff0c;这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描&#xff0c;并用…

Junit的安装与使用

一、简介&#xff1a; JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立&#xff0c;逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。Junit测试是程…

安装 ssh 的公开密匙到 iPhone 上

1). 在Mac的终端上产生密匙 ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/xxxx/.ssh/id_rsa): Created directory /home/xxxx/.ssh. Enter passphrase (empty for no passphrase): xxx Enter same passphrase again…

浏览器关闭事件处理

//有确认退出var msg_unload"您的文章内容还没有进行保存&#xff01;";var unloadConfirm {};unloadConfirm.SetConfirmMsg function(confirmMsg){ window.onBeforeUnload function(event) { event event || window.event; event.returnval…

spring注解--@Bean

Configuration public class KnightConfig {Beanpublic Knight knight(){return new BraveKnight(quest () );}}spring的Bean注解用于告诉方法&#xff0c;产生一个Bean对象&#xff0c;然后把这个Bean对象交给spring管理。注意&#xff1a;产生这个Bean对象的方法Spring只会调…