Hibernate5用户手册中文版
framework开发手册
Framework架构手册前言本框架基于Struts2.0+Spring2.5+Hibernate3.2架构所建,用于中小型企业网站或管理系统基础架构。
下面先简要介绍一下struts,spring,hibernate●Struts简介Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。
Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。
●Spring简介Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。
Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。
然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。
Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。
Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA 或者JDBC事务提供一个一致的编程模型。
Spring提供了一个用标准Java语言编写的AOP 框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。
这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。
Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。
●Hibrenate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
hibernate_开发指南
Hibernate 开发指南Original Author: 夏昕<xiaxin@>本文是由笔者2003年底一个咨询项目中,为客户做的持久层设计培训文案整理而来。
其中的内容涉及Hibernate的使用,以及一部分笔者实际咨询项目中的经验积累,另一方面,大部分是笔者在Hibernate的官方论坛中与众多技术专家交流所得。
既来于斯,则归于斯。
希望能聊有所用。
本文并非试图替代Hibernate Reference,相对而言,Hibernate Reference 的编写目的是为开发者提供更简便的条目索引,而本文目标则在于为开发人员提供一个入门和掌握Hibernate的途径。
本文需结合Hibernate Reference使用。
本文中如果发现问题和错误,请随时联系笔者,以免误导他人。
本文转载不限,不过请保持本文完整。
万分感谢!Hibernate 开发指南 (1)准备工作 (3)构建Hibernate基础代码 (3)由数据库产生基础代码 (4)Hibernate配置 (15)第一段代码 (17)Hibernate基础语义 (19)Configuration (19)SessionFactory (20)Session (20)Hibernate高级特性 (22)XDoclet与Hibernate映射 (22)数据检索 (31)Criteria Query (31)Criteria查询表达式 (31)Criteria高级特性 (33)限定返回的记录范围 (33)对查询结果进行排序 (33)Hibernate Query Language (HQL) (34)数据关联 (35)一对一关联 (35)一对多关联 (37)Ø单向一对多关系 (37)Ø双向一对多关系 (42)多对多关联 (47)数据访问 (54)PO和VO (54)关于unsaved-value (57)Inverse和Cascade (59)延迟加载(Lazy Loading) (59)事务管理 (63)基于JDBC的事务管理: (64)基于JTA的事务管理: (65)锁(locking) (68)悲观锁(Pessimistic Locking) (68)乐观锁(Optimistic Locking) (69)Hibernate分页 (73)Cache管理 (75)Session管理 (79)编后赘言 (84)Hibernate Quick Start准备工作1.下载Ant软件包,解压缩(如C:\ant\)。
Hibernate教程---看这一篇就够了
Hibernate教程---看这⼀篇就够了1 Hibernate概述1.1什么是hibernate框架(重点)1 hibernate框架应⽤在javaee三层结构中 dao层框架2 在dao层⾥⾯做对数据库crud操作,使⽤hibernate实现crud操作,hibernate底层代码就是jdbc,hibernate对jdbc进⾏封装,使⽤hibernate好处,不需要写复杂jdbc代码了,不需要写sql语句实现3 hibernate开源的轻量级的框架4 hibernate版本Hibernate3.xHibernate4.xHibernate5.x(学习)1.2 什么是orm思想(重点)1 hibernate使⽤orm思想对数据库进⾏crud操作2 在web阶段学习 javabean,更正确的叫法实体类3 orm:object relational mapping,对象关系映射⽂字描述:(1)让实体类和数据库表进⾏⼀⼀对应关系让实体类⾸先和数据库表对应让实体类属性和表⾥⾯字段对应(2)不需要直接操作数据库表,⽽操作表对应实体类对象画图描述2 Hibernate⼊门2.1 搭建hibernate环境(重点)第⼀步导⼊hibernate的jar包因为使⽤hibernate时候,有⽇志信息输出,hibernate本⾝没有⽇志输出的jar包,导⼊其他⽇志的jar包不要忘记还有mysql驱动的jar包第⼆步创建实体类package cn.itcast.entity;public class User {/*hibernate要求实体类有⼀个属性唯⼀的*/// private int uid;private String uid;private String username;private String password;private String address;// public int getUid() {// return uid;// }// public void setUid(int uid) {// this.uid = uid;// }public String getUsername() {return username;}public String getUid() {return uid;}public void setUid(String uid) {this.uid = uid;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}(1)使⽤hibernate时候,不需要⾃⼰⼿动创建表,hibernate帮把表创建第三步配置实体类和数据库表⼀⼀对应关系(映射关系)使⽤配置⽂件实现映射关系(1)创建xml格式的配置⽂件- 映射配置⽂件名称和位置没有固定要求- 建议:在实体类所在包⾥⾯创建,实体类名称.hbm.xml(2)配置是是xml格式,在配置⽂件中⾸先引⼊xml约束- 学过约束dtd、schema,在hibernate⾥⾯引⼊的约束dtd约束(3)配置映射关系<hibernate-mapping><!-- 1 配置类和表对应class标签name属性:实体类全路径table属性:数据库表名称--><class name="er" table="t_user"><!-- 2 配置实体类id和表id对应hibernate要求实体类有⼀个属性唯⼀值hibernate要求表有字段作为唯⼀值--><!-- id标签name属性:实体类⾥⾯id属性名称column属性:⽣成的表字段名称--><id name="uid" column="uid"><!-- 设置数据库表id增长策略native:⽣成表id值就是主键⾃动增长--><generator class="native"></generator></id><!-- 配置其他属性和表字段对应name属性:实体类属性名称column属性:⽣成表字段名称--><property name="username" column="username"></property><property name="password" column="password"></property><property name="address" column="address"></property></class></hibernate-mapping>第四步创建hibernate的核⼼配置⽂件(1)核⼼配置⽂件格式xml,但是核⼼配置⽂件名称和位置固定的- 位置:必须src下⾯- 名称:必须hibernate.cfg.xml(2)引⼊dtd约束(3)hibernate操作过程中,只会加载核⼼配置⽂件,其他配置⽂件不会加载第⼀部分:配置数据库信息必须的第⼆部分:配置hibernate信息可选的第三部分:把映射⽂件放到核⼼配置⽂件中<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 第⼀部分:配置数据库信息必须的 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property> <property name="ername">root</property><property name="hibernate.connection.password">root</property><!-- 第⼆部分:配置hibernate信息可选的--><!-- 输出底层sql语句 --><property name="hibernate.show_sql">true</property><!-- 输出底层sql语句格式 --><property name="hibernate.format_sql">true</property><!-- hibernate帮创建表,需要配置之后update: 如果已经有表,更新,如果没有,创建--><property name="hibernate.hbm2ddl.auto">update</property><!-- 配置数据库⽅⾔在mysql⾥⾯实现分页关键字 limit,只能使⽤mysql⾥⾯在oracle数据库,实现分页rownum让hibernate框架识别不同数据库的⾃⼰特有的语句--><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 第三部分:把映射⽂件放到核⼼配置⽂件中必须的--><mapping resource="cn/itcast/entity/User.hbm.xml"/></session-factory></hibernate-configuration>2.2 实现添加操作第⼀步加载hibernate核⼼配置⽂件第⼆步创建SessionFactory对象第三步使⽤SessionFactory创建session对象第四步开启事务第五步写具体逻辑 crud操作第六步提交事务第七步关闭资源@Testpublic void testAdd() {// 第⼀步加载hibernate核⼼配置⽂件// 到src下⾯找到名称是hibernate.cfg.xml//在hibernate⾥⾯封装对象Configuration cfg = new Configuration();cfg.configure();// 第⼆步创建SessionFactory对象//读取hibernate核⼼配置⽂件内容,创建sessionFactory//在过程中,根据映射关系,在配置数据库⾥⾯把表创建SessionFactory sessionFactory = cfg.buildSessionFactory(); // 第三步使⽤SessionFactory创建session对象// 类似于连接Session session = sessionFactory.openSession();// 第四步开启事务Transaction tx = session.beginTransaction();// 第五步写具体逻辑 crud操作//添加功能User user = new User();user.setUsername("⼩王");user.setPassword("250");user.setAddress("⽇本");//调⽤session的⽅法实现添加session.save(user);// 第六步提交事务mit();// 第七步关闭资源session.close();sessionFactory.close();}3 内容⽬录1 实体类编写规则2 hibernate主键⽣成策略(1)native(2)uuid3 实体类操作(1)crud操作(2)实体类对象状态4 hibernate的⼀级缓存5 hibernate的事务操作(1)事务代码规范写法6 hibernate其他的api(查询)(1)Query(2)Criteria(3)SQLQuery3.1 实体类编写规则1 实体类⾥⾯属性私有的2 私有属性使⽤公开的set和get⽅法操作3 要求实体类有属性作为唯⼀值(⼀般使⽤id值)4 实体类属性建议不使⽤基本数据类型,使⽤基本数据类型对应的包装类(1)⼋个基本数据类型对应的包装类- int – Integer- char—Character、- 其他的都是⾸字母⼤写⽐如 double – Double(2)⽐如表⽰学⽣的分数,假如 int score;- ⽐如学⽣得了0分,int score = 0;- 如果表⽰学⽣没有参加考试,int score = 0;不能准确表⽰学⽣是否参加考试l 解决:使⽤包装类可以了, Integer score = 0,表⽰学⽣得了0分,表⽰学⽣没有参加考试,Integer score = null;3.2 Hibernate主键⽣成策略1 hibernate要求实体类⾥⾯有⼀个属性作为唯⼀值,对应表主键,主键可以不同⽣成策略2 hibernate主键⽣成策略有很多的值3 在class属性⾥⾯有很多值(1)native:根据使⽤的数据库帮选择哪个值(2)uuid:之前web阶段写代码⽣成uuid值,hibernate帮我们⽣成uuid值3.3 实体类操作对实体类crud操作添加操作1 调⽤session⾥⾯的save⽅法实现根据id查询1 调⽤session⾥⾯的get⽅法实现修改操作1 ⾸先查询,修改值(1)根据id查询,返回对象删除操作1 调⽤session⾥⾯delete⽅法实现3.4 实体类对象状态(概念)1 实体类状态有三种(1)瞬时态:对象⾥⾯没有id值,对象与session没有关联(2)持久态:对象⾥⾯有id值,对象与session关联(3)托管态:对象有id值,对象与session没有关联2 演⽰操作实体类对象的⽅法(1)saveOrUpdate⽅法:实现添加、实现修改3.5 Hibernate的⼀级缓存什么是缓存1 数据存到数据库⾥⾯,数据库本⾝是⽂件系统,使⽤流⽅式操作⽂件效率不是很⾼。
拓比易联 PCEye 5 用户手册说明书
Tobii Dynavox PCEye5用户手册User’s manual Tobii Dynavox PCEye5Version1.0.212/2020All rights reserved.Copyright©Tobii AB(publ)未经出版人事先书面许可,对本出版物的任何部分不得进行复制、保存于可检索系统内,也不得以任何形式或任何途径(如电子形式、复印、录制等)传播。
所主张的版权保护包括依成文法或司法规定而受版权保护的材料和信息的所有形式和事项,包括但不限于屏幕(如屏幕显示、菜单等)上所显示软件程序生成的材料。
本文档中所含信息由Tobii Dynavox专有。
未经Tobii Dynavox事先书面授权,禁止复制任何部分或全部内容。
本文档内提及的产品是其相应所有者的商标和/或注册商标。
出版商和作者不对这些商标主张权利。
尽管在本文档的编写过程中采取了各种防范措施,但出版商和作者对本文档的任何错误或遗漏概不负责,对由于使用本文档所含信息或由于使用本文档随附的程序或源代码而引致的任何损失也概不负责。
无论在何种情况下,出版商和作者对本文档直接或间接导致的实际或指称的任何利润损失或其他商业损失一概无须负责。
内容若有更改,恕不另行通知。
请访问Tobii Dynavox网站查看本文档的更新版本。
联系方式:Tobii Dynavox AB Karlsrovägen2D 18253Danderyd Sweden+4686636990拓比电子技术(苏州)有限公司苏州工业园区,星汉街5号,6号楼401室邮编:215021电话:0512-********以下产品受美国专利(专利号:7,572,008、6,659,611、8,185,845与9,996,159)保护:●PCEye5目录内容1介绍 (4)1.1关于警示语的说明 (4)1.2符号与标志 (4)1.3预期用途 (4)1.4产品说明 (4)1.5包装内容 (5)2安全性 (6)2.1安装警告 (6)2.2癫痫警告 (6)2.3红外警告 (6)2.4磁场警告 (6)2.5儿童安全 (6)2.6请勿打开PCEye5 (6)2.7紧急情况 (6)2.8Computer Control (7)2.9第三方 (7)3PCEye5入门 (8)3.1系统要求: (8)4安装PCEye5 (9)4.1标准安装 (9)4.2使用PCEye支架 (9)4.3永久固定 (9)5使用PCEye5 (10)5.1用户位置调整 (10)5.2关于在室外使用的提示 (10)6设置 (11)6.1设置Windows Hello (11)7适用应用程序软件 (12)8产品保养 (13)8.1温度和湿度 (13)8.1.1一般用途 (13)8.1.2运输和储存 (13)8.2清洁 (13)8.3PCEye5的运输 (13)8.4PCEye5的处置 (13)附录A支持和保修 (14)A1客户支持中心 (14)A2保修 (14)附录B合规信息 (15)B1FCC声明 (15)B2加拿大工业部声明 (15)B3CE声明 (15)B4标准 (15)附录C技术规格 (16)1介绍感谢您选购Tobii Dynavox公司的PCEye5设备!为确保获得此产品的最佳性能,请仔细阅读本手册。
EAGLE 5 中文教程
EAGLEE ASILY A PPLICABLE G RAPHICAL L AYOUT E DITOR用户指南第5版Linux®、Mac®、Windows®系统下的原理图 – PCB设计 – Autorouter自动布线器CadSoft Computer第6次修订005175100CadSoft Computer公司版权所有© 2010保留所有权利CadSoft Computer是Newark公司的贸易子公司。
如果您有任何疑问请通过以下方式与我们联系:美国和其他美洲国家:电话:+1 (954) 237 0932传真:+1 (954) 237 0968网站: 电子邮件: Info@德国和其他欧洲国家:电话: +49 (0)8635 6989-10热线: +49 (0)8635 6989-30传真:+49 (0)8635 6989-40网站: www.cadsoft.de电子邮件: Info@cadsoft.de请记住我们的客户可以使用免费的热线电话!CadSoft Computer公司版权所有2010。
在全球范围内保留所有权利。
在没有经过CadSoft Computer公司预先同意的情况下,该文档中的任何部分均不允许在公共文件服务器中复制或保存,或者以任何格式或方式,包括电子、手工、复印、记录、扫描、数字化以及其他方式进行转移。
针对个人应用而言允许打印该手册。
Windows是Microsoft公司的注册商标。
Linux是Linus Torvalds公司的注册商标。
Mac是Apple Computer有限公司的注册商标。
目录1 用户指南介绍 (6)2 EAGLE的特性 (7)系统要求 (7)专业版 (7)概述 (7)PCB编辑器 (8)原理图编辑器 (8)Autorouter自动布线模块 (8)标准版 (9)免费试用版 (9)简化版 (9)3 安装 (10)Windows系统 (10)Linux系统 (11)Mac OS X (12)4 语言设置 (13)Windows系统下设置语言 (13)Linux和Mac OS-X系统下设置语言 (13)5 EAGLE个人设置 (14)脚本文件eagle.scr (14)用户界面 (14)功能键 (14)层颜色 (15)6 EAGLE用户界面介绍 (16)选择菜单项 (16)鼠标单击 (16)多种输入选择 (16)组合键的使用 (17)弹出菜单 (17)通过命令框输入命令和参数 (17)7 Control Panel (20)EAGLE文件 (20)备份文件 (21)创建EAGLE项目 (21)8 加载文件和选择放大功能 (23)9 选择需要显示的 (25)10 设置栅格和单位 (26)11 连线、圆形、弧形、长方形和文本 (27)WIRE命令 (27)修改线宽 (28)将对象移动到其他层 (28)撤销 / 恢复功能 (28)CIRCLE命令 (29)ARC命令 (29)RECT命令 (29)TEXT命令 (30)特殊Text变量 (31)12 使用元件库 (32)ADD命令 (32)USE命令 (33)INVOKE命令 (34)13 绘制原理图 (35)Grid栅格 (35)在原理图中添加外框 (35)添加和修改文本 (35)绘制原理图 (36)NET命令 (37)NAME命令 (37)LABEL命令 (38)DELETE命令 (38)JUNCTION命令 (38)SHOW命令 (38)MOVE命令 (39)历史功能 (39)完成原理图 (39)SMASH命令 (40)VALUE命令 (41)电气规则检查(ERC) (41)从原理图生成电路板 (42)BUS命令 (42)14 自动正反向标注Forward&Back Annotation (44)15 设计印刷电路板 (45)在没有原理图的情况下设计电路板 (45)设计电路板外形 (45)元件放置栅格 (45)放置元件 (45)放置SMD元件 (46)提供名称 (46)提供值 (46)定义信号 (47)定义网络簇 (47)从原理图创建电路板 (48)生成电路板文件 (48)元件放置 (48)Autorouter:简单实例 (48)手动布线 (49)Follow-me布线器 (50)电路板的修改 (50)PCB编辑器的其他作用 (51)DISPLAY命令 (51)MOVE命令 (51)GROUP命令 (52)SPLIT命令 (52)CHANGE命令 (53)ROUTE命令 (53)RIPUP命令 (53)SHOW命令 (54)刷新屏幕 (54)Undo/Redo撤销/恢复功能 (54)内部层 (54)电源层 (54)使用POLYGON命令来敷铜 (55)16 Autorouter自动布线器 (57)17 设计规则检查 (59)18 元件库 (60)电阻Package (60)电阻Symbol (61)电阻Device (62)19 绘图与制造数据的输出 (65)使用PRINT命令输出原理图 (65)生成图像文件用于存档 (66)使用CAM处理程序生成Gerber数据 (66)生成钻孔数据 (66)其他制造数据 (66)20 数据交换 (67)EAGLE用户语言 (67)脚本文件 – 一种灵活的输入接口 (67)EAGLE 5 – 用户指南1 用户指南介绍该用户指南对EAGLE电路板设计软件包进行了简单的介绍。
hibernate实验手册
目录新建数据库和表在数据库test 中创建student 表格创建 HibernateDemo Java Project新建一个Java Project命名为:HibernateDemo添加Hibernate Capabilities 到现有项目像添加Spring和Struts支持一样,给项目添加Hibernate Capabilities点击”next”再点击”next”选择好“DB Driver”点击“next”新建一个package得到:点击“Finish”使用反向工程快速生成Java POJO 类,映射文件和DAO找到DB Browser选择我们创建的student表右键点击出现下图:选择“Hibernate Reverse Engineering”出现:在Java Package那里通过“Browser”找到项目的dao包按顺序将要打勾的地方打上勾点击1 处的Java src folder 最右侧的Browse 按钮,查看可用的Hibernate 项目以及源码目录,这些目录将用来存放最终生成的文件。
这里选中HibernateDemo 项目中的src 文件夹.。
点击2 处的Java package 输入框右侧的Browse 按钮,选中dao 包,或者新建一个其它的包来存放生成的代码所在的包。
将3 中的两个复选框选中,这样将为每个数据库表生成Hibernate 映射文件(*.hbm.xml),并在hibernate.cfg.xml 中将新生成的映射文件加入。
在4 中选中复选框Java Data Object(POJO <> DB Table),这样为映射文件和表格生成对应的数据对象(POJO)。
按照图示选中5 处的复选框,这样将能生成普通的DAO 类。
点击“Finish”看到:编写测试类在项目文件夹中新建一个类:学写第一个HQL语句如下图在HQL 1 中输入“From Student s where s.id = 1”。
MyEclipse+Hibernate+快速入门+中文版
提纲1前言2准备工作3介绍4Hibernate 一览5创建HibernateDemo 项目5创建HibernateDemo Java Project5555使用模版调整生成更好的代码55编辑映射文件6使用HQL 编辑器7测试HibernateDemo 应用8使用示例HibernateDemo 项目9总结1.前言本文档基于以下环境编写:Sun JDK 1.5,Eclipse 3.2和MyEclipse 5.0.所有的截屏基于Eclipse,MyEclipse Enterprise Workbench,和Windows XP 的默认用户界面设置.如果你对本文档的介绍有阅读上的困难,请阅读用户反馈部分来了解如何向MyEclipse 文档团队提交反馈.2.准备工作下面是这个快速入门的准备工作列表:Java 2SDK,Standard Edition 1.4或者更高版本(参考来了解下载地址)Eclipse 3.2SDK (参考资源来了解下载地址)MyEclipse 5.0(参考资源来了解下载地址)选择以下可以被Hibernate 和MyEclipse Database Explorer 所支持的数据库服务器列表中的一个:MyEclipse Hibernate 快速入门中文版3.介绍这个快速入门展示了使用MyEclipse Enterprise Workbench 开发Hibernate 的基本功能,概念和技术.我们将全程带领你来开发一个非常简单的Java Hibernate 应用.对于这个教程没有包含到的问题和概念,我们推荐你去参考资源部分列出的Hibernate 资源.这个文档展示了如何进行下列工作:为Java 项目添加MyEclipse Hibernate 支持在项目中创建Hibernate 配置文件如何使用自定义的Session Factory从Database Explorer 的表定义中生成Java 类和Hibernate 数据库映射文件(.hbm )•使用HQL 编辑器创建使用Hibernate 的小测试应用注意:在使用本教程时建议您事先阅读了Database Explorer 快速入门这个教程来了解如何创建连接和元数据功能.4.Hibernate 一览Hibernate 是一个非常流行的开源的易于配置和运行的基于Java 的对象-关系映射(JORM)引擎.它提供了很丰富的功能包括:多种映射策略可迁移的持久化单个对象映射到多个表支持集合多态关联可自定义的SQL 查询AxionHypersonic DBInstantDBInterclientFirebirdODBC BridgejTDSMckoi Microsoft SQL Server Mimer SQL MySQL Oracle Pointbase PostgresQL SAPDB Sunopsis XML SybaseThinkSQLHibernate使用Java编写,是高可配置的软件包,可以通过两种配置文件格式来进行配置.第一种配置文件名字为hibernate.cfg.xml.在启动时,Hibernate查询这个XML里面的属性来进行操作,例如数据库连接字符串和密码,数据库方言(database dialect),以及映射文件位置等.Hibernate在类路径中查找这个文件.第二种配置文件是映射描述文件(文件扩展名为*.hbm),它来指示Hibernate如何来将特定的Java类和一个或者多个数据库表格中的数据进行映射. MyEclipse提供了工具来处理这两种配置文件,并且可以将它们和你对数据库和Hibernate映射的Java类的修改进行同步.Hibernate可以用在任何需要将Java对象和数据库表格中的数据进行移动的Java应用中.因此,它在开发两层和三层的J2EE应用中很有用.向你的应用中集成Hibernate包括:向你的项目中安装Hibernate核心类和依赖的JAR类库创建hibernate.cfg.xml文件来描述如何访问你的数据库为每个持久化Java类创建单独的映射描述文件更多关于Hibernate的基本和高级特性,或者如何使用Hibernate进行开发,请查看页面下方的资源部分.5.创建HibernateDemo项目这一部分描述了创建名为HibernateDemo的简单的Java项目的过程,这个项目使用Hibernate来保存文本消息到一个单独的数据库表格中.因为多数企业的网络应用都是和企业关系数据库中的数据进行交互,我们将集中精力到编写Java数据对象和映射文件到现有的数据库.我们需要映射到Java类的这个数据库表格列在下面.为了方便测试,我们已经向数据库中添加了很多测试数据.echo_message DDLCREATE TABLE echo_message(id integer PRIMARY KEY not null,msg VARCHAR(255));insert into echo_message values(1,'hello world');insert into echo_message values(2,'goodbyeworld');一般的在你进行Hibernate开发之前你需要一个能够访问的Database Explorer连接配置.在这个教程中,我们使用Oracle 数据库连接配置,这个配置在Database Explorer快速入门教程中创建.注意:尽管这个快速入门使用了Oracle,但是这些步骤和上面的表格基本上是通用的,可以在任何数据库下工作.5.1创建HibernateDemo Java Project我们先来创建一个普通的名为HibernateDemo的Java项目,这个项目读取写入数据到echo_message数据库表.12从MyEclipse菜单栏选择File>New>Project>Java Project.接着会打开New Java Project向导.13输入HibernateDemo到Project name14在Project Layout下选中Create separate source and output folders单选钮.15选择Finish来完成这个页面,如图1所示16图1.新建HibernateDemo项目5.2添加Hibernate Capabilities到HibernateDemo项目现在HibernateDemo项目已经创建,我们将添加MyEclipse Hibernate功能到这个项目.这个基于向导的处理过程执行了下面的操作:•添加Hibernate类库(JARs)到项目的类路径.•在项目中创建并配置hibernate.cfg.xml•在项目中创建自定义的Session Factory类来简化Hibernate会话处理我们通过打开MyEclipse Add Hibernate Capabilities向导来开始:17在Package Explorer中选择HibernateDemo项目Capabilities......来启动向导(参考图2).18接下来,从MyEclipse菜单栏选择MyEclipse>Add Hibernate Capabilities图2.启动"Hibernate Support"向导图3.添加Hibernate支持到Java项目19保持Hibernate3.1specification选中不变.20选择你需要的类库集合,在这个示例中Core类库足够了. 21保持Add checked Libraries to project build-path选中.22选择Next.表-1.Hibernate Support 向导-第1页选项23第2页允许你自定义配置文件的名字和路径.图4.Hibernate 配置文件设置24保持New 选中.25完成图4中显示的页面然后选择Next.选项描述Hibernate Specification要添加到项目中的Hibernate 版本支持功能.为了最大限度的使用MyEclipse Hibernate 工具,推荐Hibernate 3.1.MyEclipse/User Libraries可以添加到你的项目的构造路径的类库集合.Add checked Libraries to projectbuild-path选中的类库将会添加到你的项目的构造路径中,但是相应的JAR 文件将不会复制到你的项目中.这些JAR 文件将会在发布程序时复制,这是推荐的设置方式.Copy checked Library Jars to projectfolder and add to build-path选中的类库JAR 文件将会被复制到你的项目并添加到构造路径中去.Library Folder 仅在上面的选项选中时可用.一个相对于项目的路径,可以新建或者使用现有目录,Hibernate 类库将会被向导复制到这里.图5.Hibernate数据库配置26保持Specify datasource connection details?选中.27选中Oracle配置,这个配置在Database Explorer快速入门设置过,通过DB Profile下拉框选择.这将自动填充当前页面中的所有输入框.注意:在这里数据库配置并非必须的;你可以手工输入所有需要的信息,不需要选择一个配置.在这种情况下,你必须确保在向导完成后手工复制JDBC驱动JAR文件到你的项目中.28选择Next.上面进行的数据源配置操作可以现在跳过,可以在随后的Hibernate Configuration编辑器中进修改.项目的最后一步是配置一个SessionFactory类,这个类将会访问Hibernate功能所生成的基础代码.本向导的截屏如图6所示.图6.创建SessionFactory 详细信息表3-Hibernate Support 向导-第3页选项29选中Create SessionFactory class .30选中包输入框右侧的New 按钮然后创建包com.genuitec.hibernate .31给Session Factory 类输入一个名字,我们使用默认推荐的HibernateSessionFactory .32完成如图6所示的页面,然后选择Finish .注意:Session Factory 也可以在稍后创建,通过Session Factory 向导来完成(File >New >Other MyEclipse >Hibernate >Hibernate Session Factory).如果你在第一页选中了复制类库到你的项目中,在向导完成之后的至多30秒内可能失去反应,因为它将复制类库并更新多种项目资源.请耐心等待并在进行其它操作之前等待过程的结束.这个向导结束后将进行下列操作:•如果在第一页选择了复制类库到你的项目,将安装Hibernate 类库(JARs)到项目中•更新项目的构造路径来包含已安装的Hibernate 类库选项描述Create SessionFactory Class?如果启用,向导将会创建一个Hibernate 会话工厂的新类.Java source folder决定新类将被创建到的源代码目录.Java package指定Session 工厂将被创建到的包名.Class name指定Session 工厂类的名字.Java Compliance Level生成的Session 工厂类的Java 编译器等级.•给项目创建并配置hibernate.cfg.xml文件•为你的项目创建一个自定义的SessionFactory类(例如HibernateSessionFactory)来简化Hibernate会话会话处理图7高亮显示了新创建的HibernateSessionFactory.java文件里面的重要功能.这个类管理了一个单独的Hibernate Session对象,通过getSession()方法进行延迟加载并且在调用closeSession()方法之后刷新并释放数据.在运行的时候,Hibernate会话创建过程必须要能够访问类路径里面的hibernate.cfg.xml文件.变量CONFIG_FILE_LOCATION 定义了文件hibernate.cfg.xml相对于包的路径.默认值通过Hibernate支持向导来提供.如果你改动了hibernate.cfg.xml文件的位置,你必须手工修改CONFIG_FILE_LOCATION的值来引用到新的文件的位置或者可以通过在使用之前调用setConfigFile()方法来设置为新的路径.图7.HibernateSessionFactory类5.3自定义Hibernate配置文件完成了5.2部分的配置向导后,Hibernate配置文件将会自动打开.如果你在添加功能过程中跳过了数据源连接的配置,你可以现在来完成它,也可以跳转到添加属性.自定义配置文件里面的需要连接到我们的数据库的信息.33选中Use JDBC Driver选项.我们将指定Database Explorer中的JDBC驱动.如果你尚未配置JDBC驱动,请阅读Database Explorer快速入门然后在进行下面的操作之前配置一个.34从Connection Profile下拉框中选中一个配置.如果你只是配置了JDBC驱动但是没有配置一个连接属性,你可以选择New Profile按钮来创建一个新的连接配置.如果你已经有了一个连接配置,当你选择其中的一个之后将会自动填充下面的4个输入框中的内.35点击Copy JDBC Driver and add to classpath...链接.36为你的数据库选中正确的Hibernate Dialect.你的配置页面将会显示为这样的内容:你可以使用Properties部分来添加和修改属性.图9.添加属性Mappings部分可以让你添加也许已经存在项目中的映射文件.另外,从Package Explorer拖放映射文件到这个输入框也可以达到同样的效果.图10.添加映射文件图11上述操作完成后的Hibernate配置文件的源代码.图11.Hibernate配置文件5.4创建Hibernate Java表映射这个部分展示了使用MyEclipse Hibernate工具来反向工程生成Java数据对象并从现有的数据库表格生成映射的过程.打开MyEclipse Hibernate透视图.从主菜单栏,选中Window>Open Perspective>Other>MyEclipse Hibernate选中你在Hibernae配置中所使用的数据库连接属性浏览数据库的目录结构,直到你找到了一个想要创建Hibernate映射的表格/实体注意:在我们的例子里我们使用了TEST数据库下的ECHO_MESSAGE表格;对于其它数据库和表格的操作过程基本上都是一样的.右键点击表格然后选中Hibernate Reverse Engineering,如图12所示.这将启动Hibernate Reverse Engineering向导.另外,你也可以从DB Browser那里拖动表格,然后将它放到Hibernate配置编辑器里也可以启动这个向导.注意:你可以在DB Browser中选中多个表格然后同时对它们进行反向工程.Hibernate Reverse Engineering向导一共有3页.图13.Hibernate Reverse Engineering向导-页面137点击Java src folder右侧的Browse...按钮来查看可用的Hibernate项目以及源码目录,这些目录将用来存放最终生成的文件.选择HibernateDemo项目中的src文件夹.38点击Java package输入框右侧的Browse...按钮然后选中包com.genuitec.hibernate完成如图13所示的向导中的其余的内容然后选择Next.注意:向导的第2页和第3页用来自定义反向工程处理过程.当然也可以现在就直接点击Finish按钮开始处理过程,不描述对后两页的设置进行任何自定义.表4-Hibernate ReverseEngineering向导-第1页选项Java src folder选中映射文件,POJO和DAO生成后所在的项目和源码文件图14.Hibernate Reverse Engineering 向导-第2页夹.Java package映射文件,POJO 和DAO 生成后所在的包.Hibernate mapping file从选中的表格生成映射文件.Update hibernateconfiguration将生成后的映射文件添加到Hibernate 配置文件中.Java Data Object为映射文件和表格生成对应的数据对象(POJO).Create abstract class为每个数据对象生成一个抽象的父类.这个抽象类将在以后的重新生成过程中覆盖掉,但是对应的子类将不会被覆盖掉.Base persistence class如果需要的话,输入生成的POJO 所要集成的父类的完整名称.Java Data Access Object生成便于访问映射后的类和表格的数据访问对象.用户可以在Basic,Spring 和JNDI DAO 中选择一种.Generate precise findBymethods为映射类中的每个属性生成一个"findBy"方法.例如findByFirstName("name");Use custom templates覆盖MyEclipse 的内部velocity 模版为你自己的版本.参考使用模版来更好的调节生成的代码来获取更多信息.Template directory 包含了自定义模版的目录树的根节点.第2页可以使用默认的设置,选择Next.表5-Hibernate Reverse Engineering向导-第2页选项描述Rev-eng settings file 这个文件包含了反向工程的配置和选项以供以后使用.点击Setup...按钮来选择现有的文件或者创建一个新的文件.如果找不到一个这样的配置文件的话向导将会自动创建此文件.Custom rev-eng strategy 允许你指定一个自定义的反向工程策略类.这个类允许你用编程的方式来自定义反向工程处理过程的各个方面.参考使用自定义反向工程策略来获取详细信息.Type Mapping 决定是否在类型映射属性中使用Java或者Hibernate类型,例如ng.String对应string.这个设置只能在向导第3页的Customized Type Mappings列表中没有指定更多信息时才能使用.ID Generator ID Generator是Hibernate映射文件必须有的内容.它定义了持久类实例的唯一主键生成器Jaav类.参考资源部分里面的Hibernate文档链接,里面描述了每个ID生成器的详细信息.如果留空或者更详细的配置在这个向导的第3页没有配置, Hibernate映射引擎将自动为你选择一个ID生成器.Generate basic typed composite IDs 如果数据库表格包含有多个列的主键,将总是使用<复合主键>映射.如果这个选项启用并且有对应的多个外键,每个主键列将依然会被作为'简单的'标量(string,long,等),而不是引用到一个实体.将会创建<many-to-one>元素,但是它们将会标记为非可更新和非可插入的字段.如果你禁用这个选项(默认推荐用这种方式),将会创建<key-many-to-one>元素来代替上面的生成内容.Generate version and timestamp tags 如果启用,名为"version"和"timestamp"的列将会在生成的映射文件中作为<version>和<timestamp>标记出现.Customized Type Mappings 允许你来指定一个自定义的JDBC类型到Hibernate类型的转换,使用Length,Scale,Precision和Nullability作为精度控制对应原来的JDBC类型.再第3页页可以使用默认的设置,选择Finish将启动反向工程处理.描述在这个向导完成之后将会进行下面所列的操作:创建类AbstractEchoMessage .这个抽象类提供了所需的Hibernate 兼容的功能例如public 的读取器和设置器方法,这些方法对应的持久化属性和ECHO_MESSAGE 数据库表格中的列相对应.图15.Hibernate Reverse Engineering 向导-第3页表6-Hibernate Reverse Engineering向导-第3页选项Class name对应当前数据库表格的数据对象类的完整名称.ID Generator想要对当前表所使用的ID 生成器.JDBC type对当前列所使用的JDBC 类型覆盖.Property name对应当前列所生成的属性名.Hibernate type对应当前列的Hibernate 类型.Include referenced /referencing tables包含反向工程时当前数据库表引用的表格以及其它引用到当前表的数据库表.Generate support for ListedTable(fk)->UnlistedTable and UnlistedTable(fk)->ListedTable 生成关联到当前表格的关联表的尚未反向工程过的代码,这些表在当前配置页面尚未被显示.创建了一个EchoMessage Java类,是AbstractEchoMessage类的一个具体的子类.EchoMessage的目的是为了被修改后提供额外的业务和验证逻辑,并且不会被后续的生成代码过程所覆盖.创建了EchoMessage.hbm.xml Hibernate映射描述符.这个文件指示Hibernate如何将EchoMessage Java类和ECHO_MESSAGE数据库表格中的数据相互映射.在文件hibernate.cfg.xml中注册EchoMessage.hbm.xml映射描述符.•创建了Java类EchoMessageDAO.这个类提供了对EchoMessage数据对象类的方便的访问和操作.•创建IBaseHibernateDAO接口和BaseHibernateDAO类.这些类对基本的DAO来说是必要的,因为它使用了添加Hibernate功能时候所生成的Session工厂类(com.genuitec.hibernate.HibernateSessionFactory)来获取Hibernate会话.图15高亮显示了所生成的类,关键方法和映射文件,以及被添加到hibernate.cfg.xml文件中的对生成的映射文件的引用.图15.Hibernate反向工厂向导执行结束后更新过的项目内容5.5使用模版调整生成更好的代码•下载并解压缩这个文件到你的电脑的文件系统上.•按照README.txt文件中的说明来自定义这个模版.•调用反向工程向导,在第1页选择启用Use custom templates选项,然后将Template directory指向到包含模版树的文件夹e.5.6使用自定义反向工程策略o向你的项目中添加MyEclipse Persistence Tools类库.右键点击你的项目然后选择Properties.o在Java Build Path页面,在Libraries面板下选择Add Library....o选择MyEclipse Libraries,接着选中MyEclipse Persistence Tools.o点击Finish.39图16.添加MyEclipse Persistence Tools类库40在你的项目中创建一个新类,让这个类继承自org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy类.41图17.MyStrategy.java 源代码清单42在反向工程向导的第2页,选中刚才所创建的类图18.指定反向工程策略5.7编辑映射文件MyEclipse 包含了定制过的XML 编辑器来专门用于修改Hibernate 映射文件(*.hbm.xml).当双击映射文件的时候编辑器将会自动打开.你也可以通过右键点击文件然后选择Open With >MyEclipse Hibernate Mapping Editor.功能•超链接浏览到引用到的类和属性.•类名自动完成提示.•属性名自动完成提示.•映射文件元素,属性和值的内容完成提示.定义一个单参数的构造器,然后覆盖其中的感兴趣的一个或者多个方法,例如,columnToPropertyName .这里是一个例子,将在所有生成的属性前添加一个"ME_"前缀.MyStrategy.javapackage com.genuitec.hibernate;import org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;import org.hibernate.cfg.reveng.TableIdentifier;public class MyStrategy extends DelegatingReverseEngineeringStrategy {public MyStrategy(ReverseEngineeringStrategy strategy){super (strategy);}public String columnToPropertyName(TableIdentifier table,String columnName){return "ME_"+super.columnToPropertyName(table,columnName);}}图19.Hibernate映射文件编辑器6.使用HQL编辑器MyEclipse包含了一个Hibernate查询语言编辑器以及几个视图,允许你根据当前的Hibernate配置来执行HQL查询语句.功能•内容自动完成提示.•Hibernate Dynamic Query Translator在敲入HSQL查询语句时查看翻译后的SQL语句.•Hibernate Query Results视图可以查看多个查询结果集;结果的属性显示在Properties视图.•Query Parameters视图可以很方便的执行带有参数的查询.•项目选择器允许你随时切换不同的Hibernate项目中的Hibernate配置.下面的步骤将指导你如何使用HQL编辑器43右键点击Package Explorer中的HibernateDemo项目.44在右键菜单中的MyEclipse项目下,选择Open HQL Editor...注意:HQL编辑器也会在你尝试查看后缀为hql的文件的时候打开.图20.打开HQL编辑器45如果你没有在Hibernate透视图下工作,你将会被提示切换到相应的视图,同意切换即可.注意:总是可以切换到这个视图,通过选择菜单项Window>Open Perspective>Other>MyEclipse Hibernate 46当编辑器打开时,键入"from EchoMessage"47点击Run图标或者按下Ctrl+F9来执行查询语句.图21.在HSQL编辑器中执行查询48使用Query Parameters视图来执行带参数的查询.图22.Query Parameters视图49注意:如果你在HSQL编辑器为特定的项目初始化后修改了配置,映射文件或者数据类,一定要记得点击嵌入的工具栏上的Refresh按钮来让编辑器使用最新的配置信息.7.测试HibernateDemo应用既然Hibernate持久化功能已经整合进了HibernateDemo项目,接下来的步骤就是对它进行测试.一种测试Hibernate持久化功能的方法是创建一个带main方法的Java类.测试类将使用Hibernate向导所生成的Java对象和HibernateSessionFactory.请查看图18中所示的HibernateSessionFactory类中所生成的两个重要的方法,在测试代码中将会使用这两个方法.显示了HibernateSessionFactory中的两个重要的静态方法.getSession():这个方法将会返回一个Session变量,可以用来访问Hibernate Session类.任何时间你想使用Hibernate会话的时候你都可以调用这个方法来获取缓存过的这个Hibernate会话对象.closeSession():如果一个会话已经启动过,这个方法就简单的关闭它.图23.HibernateSessionFactory方法下面是创建测试类源代码的步骤列表:创建一个新的Java类:File>New>Class输入包名输入类名(Name):HibernateReadTest如图19所示完成页面设置,然后选择Finish图24.新建Java测试类接下来,打开文件HibernateReadTest.java,替换源代码为图20中所列的内容.HibernateReadTest.javapackage com.genuitec.hibernate;import org.hibernate.HibernateException;public class HibernateReadTest{public static void main(String[]args){//Step1-Create the DAOEchoMessageDAO dao=new EchoMessageDAO();try{//Step2-Use findById to retrieve the message with ID=1EchoMessage echoMessage=dao.findById(newLong(1));System.out.println("Entity retrieval successful,messageis:"图25.HibernateTest.java 源代码清单保存HibernateReadTest.java在Package Explorer 中选中文件HibernateReadTest.java在顶部菜单栏中选择Run 菜单,接着选择Run >Run as >Java Application这是,Console 视图将会打开,如果测试成功的话你将会看到如下面的图21所示的输出内容.注意:如果你看到了log4j 警告,你可以忽略它们即可.图26.HibernateReadTest Console 输出8.使用示例HibernateDemo 项目50下载51选择Import >Existing Projects into Workspace ,选中Select archive file 选项然后指向下载的zip 文件.点击Finish 来导入到你的Eclipse 工作台.52需要做以下修改来重新配置这个项目和你的开发环境保持一致.o 从你的数据库复制JDBC 驱动JAR 文件到项目中.通过右键点击文件然后选择Build Path >Add toBuild Path 来将它添加到项目的构造路径中.o 连接到你的数据库然后执行DDL/DDL.sql 文件中的代码来创建示例数据库并填充里面的值.在执行之前,也许需要修改表格的数据库前缀并使它和你的数据库的DDL 规范一致.o 修改配置文件hibernate.cfg.xml ,将里面的连接设置修改为你自己的数据库配置.还可能需要修改EchoMessage.hbm.xml 来修改class 元素里面指定的schema 属性为对应的数据库名称.一些其它的文件已经包含在这里:log4j.properties 用来控制log4j 类库里面的日志等级.ehcache.xml 用来控制ehcache 类库.HibernateWriteTest.java 是一个简单的演示类来展示DAO 是如何写入数据到数据库的.+echoMessage.getMsg());}catch (HibernateException e){System.err.println("Entity retrieval failed.");e.printStackTrace();}finally {try {dao.getSession().close();}catch (Exception e){//do nothing}}}}9.总结使用MyEclipse进行Hibernate开发的教程到此结束.我们还有更多的快速入门文档,包括如何使用Database Explorer, Struts,JSF,Web Projects,修改,应用服务器配置,EJB开发,以及企业应用项目.更多信息请访问MyEclipse Quickstart library.。
NHibernate官方文档中文版--基础ORM(BasicORMapping)
NHibernate官⽅⽂档中⽂版--基础ORM(BasicORMapping)映射声明对象/关系映射在XML⽂件中配置。
mapping⽂件这样设计是为了使它可读性强并且可修改。
mapping语⾔是以对象为中⼼,意味着mapping是围绕着持久化类声明来建⽴的,⽽不是围绕数据表。
要注意的是,尽管很多NHibernate使⽤者选择⼿动定义XML⽂件,但是仍然有很多⼯具可以⽤来⽣成mapping⽂件,包括NHibernate.Mapping.Attributes 库和各种各样基于模板的代码⽣成⼯具(CodeSmith, MyGeneration)。
让我们⽤⼀个mapping的例⼦作为开始:<?xml version="1.0"?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Eg"namespace="Eg"><class name="Cat" table="CATS" discriminator-value="C"><id name="Id" column="uid" type="Int64"><generator class="hilo"/></id><discriminator column="subclass" type="Char"/><property name="BirthDate" type="Date"/><property name="Color" not-null="true"/><property name="Sex" not-null="true" update="false"/><property name="Weight"/><many-to-one name="Mate" column="mate_id"/><set name="Kittens"><key column="mother_id"/><one-to-many class="Cat"/></set><subclass name="DomesticCat" discriminator-value="D"><property name="Name" type="String"/></subclass></class><class name="Dog"><!-- mapping for Dog could go here --></class></hibernate-mapping>我们现在讨论mapping⽂件中的内容。
JAVA黑马程序员Hibernate5框架学习笔记及应用
3.2 CRM 持久层技术分析
本 CRM 系统使用 javaEE 技术并按照标准三层架构实现,三层为单向依赖,即 web 层依 赖业务层、业务层依赖持久层,持久层不依赖 web 层和业务层,通常建议先实现持久层, 在本课程我们把重点放在持久层的设计开发上。
3.2.1 数据库
根据系统规模大小选择数据库,本 CRM 系统选择 mysql5 作为数据库。 安装 Mysql5 数据库过程略。
//加载数据库驱动 Class.forName("com.mysql.jdbc.Driver");
//通过驱动管理类获取数据库链接
connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/hibernate?characterEncodin
持久层使用关系数据库则一般关系数据库本身就提供了事务控制机制。
3.1.4 持久层
负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载 体,数据访问层是业务层和持久层交互的接口,业务层需要通过数据访问层将数据持久化到 数据库中。 技术实现:
数据库访问在 java 中使用 jdbc 接口。 数据库根据项目需求去选择。
//通过驱动管理类获取数据库链接
connection =
DriverManager.getConnection("jdbc:mysql://localhost:3306/hibernate?characterEncodin
g=utf-8", "root", "mysql");
//定义sql语句 ?表示占位符
Hibernate教程_204页-最全汇总
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
Hibernate入门
❖ 创建表
create table CUSTOMER( ID Integer primary key, NAME varchar2(15) not null, EMAIL varchar2(128) not null, PASSWORD varchar2(8) not null, PHONE varchar2(20), ADDRESS varchar2(255), SEX char(2), IS_MARRIED char(1), DESCRIPTION clob, IMAGE blob, BIRTHDAY date, REGISTERED_TIME timestamp
</id>
<property> <property name="email" column="EMAIL" type="string" not-null="true" />
Hibernate入门
❖ java、hibernate、sql类型对应关系
Customer类属性 java
Name
ng.String
效率。
第一章 Java对象持久化概述
❖ 应用程序的分层体系结构 Java应用的持久化层
表述层 业务逻辑层
数据库层
表述层 业务逻辑层 持久化层
数据库层
第一章 Java对象持久化概述 ❖ Hibernate中间件特性
Hibernate5用户手册中文版
Hibernate5用户手册中文版Hibernate用户手册Hibernate-纯java的关系型持久层框Hibernate团队JBoss可视化设计团队5.0.0.FinalCopyright?2011Red Hat,Inc.2015-08-20目录Hibernate用户手册 (1)Hibernate-纯java的关系型持久层框 (1) Hibernate团队 (1)JBoss可视化设计团队 (1)序言 (8)第1章.Architecture(体系架构) (9)1.1.概述 (10)1.2.Contextual sessions(session上下文) (11) 第2章.Domain Model(域模型) (12)2.1.POJO模型 (13)2.1.1.实现无参构造函数 (13)2.1.2.提供identifier(标识)属性 (13)2.1.3.使用非final类 (14)2.1.4.为持久化属性声明get,set方法 (14)2.1.5.实现equals()与hashCode()方法 (14)2.2.Dynamic(动态)模型 (21)第3章Bootstrap(引导、启动 (22)3.1.Native(原生、本地)引导 (22)3.1.1.构建ServiceRegistry (23)3.1.2.构建Metadata (25)3.1.3.构建SessionFactory (27)3.2.JPA引导JPA Bootstrapping (29)3.2.1.JPA兼容模式的引导 (29)3.2.2.Proprietary2-phase引导 (30)第4章持久化Context(上下文) (30)4.1.实体持久化 (31)4.2.删除实体 (32)4.3.获取没有初始化数据的实体 (32)4.4.获取已经初始化数据的实体 (33)4.5.通过natural-id(自然ID)获得实体 (33)4.6.刷新实体状态 (35)4.7.更改托管态或者持久态 (36)4.8.使用游离态数据 (36)4.8.1.复位游离态数据(游离态变成托管态) (37) 4.8.2.合并游离态数据4.9.验证对象的状态 (38)4.10.从JPA访问Hibernate (39)第5章访问数据库 (40)5.1.ConnectionProvider(连接提供器) (40)5.1.1.使用DataSources (41)5.1.2.使用c3p0 (41)5.1.3.使用proxool连接池 (43)5.1.4.使用Hikari (44)5.1.5.使用Hibernate内置的(不支持)的连接池 (45) 5.1.6.用户自定义的连接 (45)5.1.7.ConnectionProvider事务设置 (45)5.2.数据库Dialect(方言) (45)第6章事务与并发控制 (48)6.1.物理事务 (49)6.1.1.JTA配置 (50)6.2.Hibernate事务API (51)6.3.事务模式(与反模式) (55)6.3.1.Session-per-operation(每操作一个会话)反模式 (55) 6.3.2.Session-per-request(每请求一个会话)模式 (56) 6.3.3.Conversations(对话) (57)6.3.4.Session-per-application(每应用一个会话) (58)6.4.常见问题 (58)第7章JNDI (59)第8章锁 (59)8.1.乐观锁 (60)8.1.1.指定版本号 (61)8.1.2.Timestamp(时间戳) (63)8.2.悲观锁 (64)8.2.1.LockMode类 (65)第9章Fetching(抓取) (66)9.1.基础 (66)9.2.应用抓取策略 (68)9.2.1.不抓取 (69)9.2.2.通过查询动态抓取 (70)9.2.3.通过配置文件动态抓取 (71)第10章批处理 (72)10.1.JDBC批处理 (72)第11章缓冲 (73)11.1.配置二级缓存 (73)11.1.1.RegionFactory(注册工厂) (73)11.1.2.缓冲行为 (74)11.2.管理缓冲数据 (75)第十二章12.拦截器和事件 (76)12.1.拦截器(Interceptors) (76)12.2.Native(原生、本地)事件系统 (77)12.2.1.Hibernate声明式安全 (78)12.3.JPA回调 (80)第13章HQL与JPQL (83)13.1.大小写敏感性 (85)13.2.语句(Stataement)类型 (85)13.2.1.Select语句 (86)13.2.2.Update语句 (86)13.2.3.Delete语句 (88)13.2.4.Insert语句 (88)13.3.FROM子句 (89)13.3.1.标识变量 (89)13.3.2.Root(根)实体引用 (90)13.3.3.显式join (91)13.3.4.隐式join(path表达式) (93)13.3.5.集合成员引用 (95)13.3.6.Polymorphism(多态) (97)13.4.表达式 (98)13.4.1.标识变量 (98)13.4.2.路径表达式 (98)13.4.3.文本说明 (98)13.4.4.参数 (100)13.4.5.算术运算 (101)13.4.6.Concatenation(串联)(运算) (102) 13.4.7.聚合函数 (103)13.4.8.Scalar(标量)函数 (103)13.4.9.集合相关的表达式 (106)13.4.10.实体类型 (108)13.4.11.CASE表达式 (109)13.5.SELECT子句 (111)13.6.Predicates(谓词) (112)13.6.1.关系比较 (112)13.6.2.空值谓词 (114)13.6.3.Like谓词 (114)13.6.4.Between谓词 (115) 13.6.5.In谓词 (116)13.6.6.Exists谓词 (118)13.6.7.空集合谓词 (118)13.6.8.集合成员谓词 (118)13.6.9.NOT谓词 (119)13.6.10.AND谓词 (119)13.6.11.OR谓词 (119)13.7.WHERE子句 (119)13.8.分组 (119)13.9.排序 (120)13.10.查询API (121)13.10.1.Hibernate查询API (121) 13.10.2.JPA查询API (125)第14章Criteria (128)14.1.类型化criteria查询 (130) 14.1.1.选择一个实体 (130)14.1.2.选择一个表达式 (131) 14.1.3.选择多个值 (131)14.1.4.选择wrapper(封装) (133) 14.2.Tuple criteria查询 (134) 14.3.FROM子句 (135)14.3.1.Roots(根) (136)14.3.2.Joins (137)14.3.3.抓取 (138)14.4.路径表达式 (139)14.5.使用参数 (139)第15章Native SQL查询(原生SQL查询,本地SQL查询)(139)15.1.使用SQLQuery (140)15.1.1.Scalar(标量)查询 (140)15.1.2.实体查询 (141)15.1.3.处理association(关联)与集合 (142)15.1.4.返回多个实体 (143)15.1.5.返回非托管实体 (146)15.1.6.处理继承 (147)15.1.7.参数 (147)15.2.命名SQL查询 (147)15.2.1.使用return-property显式指定列与别名 (155)15.2.2.使用存储过程查询 (157)15.3.自定义新建、更新、删除的SQL语句 (158)15.4.自定义SQL加载 (162)Chapter16.Multi-tenancy(多租户) (163)16.1.什么是Multi-tenancy(多租户) (163)16.2.多租户数据处理方法 (164)16.2.1.Separate databa(独立数据库) (164)16.2.2.独立的schema (165)16.2.3.数据分区(鉴别器) (166)16.3.Hibernate中的Multi-tenancy(多租户) (167)16.3.1.MultiTenantConnectionProvider (168)16.3.2.CurrentTenantIdentifierResolver (169)16.3.3.缓冲 (169)16.3.4.杂项 (170)16.4.MultiTenantConnectionProvider实现策略 (170)第17章OSGi (173)17.1.OSGi规范与环境 (174)17.2.hibernate-osgi (174)17.3.features.xml (174)17.4.快速入门与演示 (175)17.5.容器管理的JPA (175)17.5.1.企业级OSGi的JPA容器 (175)17.5.2.persistence.xml (176)17.5.3.DataSource(数据源) (176)17.5.4.Bundle包的导入 (177)17.5.5.获取EntityManger(实体管理器) (177) 17.6.非托管JPA (178)17.6.1.persistence.xml (178)17.6.2.Bundle包的导入 (178)17.6.3.获取EntityMangerFactory (179)17.7.非托管Native (180)17.7.1.Bundle包的导入 (180)17.7.2.获取SessionFactory (180)17.8.可选模块 (181)17.9.扩展点 (181)17.10.附加说明 (183)第18章Envers (184)18.1.基础知识 (185)18.2.配置 (186)18.3.额外的映射注释 (189)18.4.选择audit策略 (190)18.5.版本日志 (190)版本日志的数据 (190)18.5.1.在版本控制中跟踪修改的实体名 (193) 18.6.在属性级别上跟踪实体变化 (196)18.7.查询 (197)18.7.1.指定一个版本查询类的实体 (197)18.7.2.按实体类的变化,查询版本 (198)18.7.3.通过指定属性的变化查询实体的版本 (199)18.7.4.按版本查询实体的修改 (200)18.8.条件audit (201)18.9.理解Envers Schema (202)18.10.使用Ant生成schema (203)18.11.映射异常 (205)18.11.1.现在不会将来也不会支持的 (205)18.11.2.现在不会将来会支持的 (205)18.11.3.@OneToMany+@JoinColumn (205)18.12.高级:Audit表分区 (206)18.12.1.audit表分区的好处 (206)18.12.2.选择合适的列为audit表分区 (206)18.12.3.Audit表分区示例 (207)18.13.Envers有关的链接 (209)第19章.数据库可移植性思考 (210)19.1.可移植性基础 (210)19.2.Dialect(方言) (210)19.3.Dialect(方言)解析 (210)19.4.标识符生成 (211)19.5.数据库函数 (212)19.6.类型映射 (213)附录A Legacy Bootstrapping(过时的引导方式) (213) A.1.迁移 (214)附录B Legacy(过时的)Hibernate Criteria查询 (216) B.1.建立Criteria实例 (217)B.2.减小结果集 (217)B.3.排序结果集 (218)B.4.关联 (219)B.5.动态关联抓取 (220)ponents(组件) (220)B.7.集合 (221)B.8.Example查询 (221)B.9.Projections(投影),聚合与分组 (222)B.10.Detached queries(分离式查询)与子查询 (224)B.11.通过natural(自然)ID查询 (226)参考 (227)序言面向对象的开发在处理关系型数据库中的数据时是非常麻烦与消耗资源的。
hibernate-5
IBM Software Group
批量删除举例
下面将使用HQL批量删除所有ID值小于今为5000的顾客,例如: Transaction tx = session.beginTransaction(); //在HQL查询中使用delete进行批量删除 Query query = session.createQuery(“delete Customer where id<5000”); query.executeUpdate(); mit();
sessionfactory的内置缓存和session的缓存在实现方式比较相似前者是sessionfactory对象的一些集合属性包含的数据存放了映射元数据和预定义sql语句其中映射元数据是映射文件中数据的拷贝预定义sql语句是在hibernate初始化阶段根据映射元数据推导出来的
®
IBM Software Group
IBM Software Group
批量更新举例
Transaction tx = session.beginTransaction(); //在HQL查询中使用update进行批量更新 Query query = session.createQuery(“update Customer set phone=Trim(phone)”); query.executeUpdate(); mit();
IBM Software Group
批量插入举例
下面实现批量插入100000个顾客对象到数据库中 Transaction tx = session.beginTransaction(); for(int I = 0; i<100000;i++) { Customer customer = new Customer();//产生一个新的顾客对象 session.save(customer);//持久化该顾客对象 if(i%50==0) { //以50个顾客为一个批次向数据库提交,此值应与配置的批量尺寸保持一致 session.flush(); session.clear();//清空缓存区,释放内存供下批数据使用 } } mit(); //关闭session.
hibernate入门教程.-15页精选文档
hibernate官方入门教程第一部分-第一个Hibernate程序首先我们将创建一个简单的控制台(console-based)Hibernate程序。
我们使用内置数据库(in-memory database) (HSQL DB),所以我们不必安装任何数据库服务器。
让我们假设我们希望有一个小程序可以保存我们希望关注的事件(Event)和这些事件的信息。
(译者注:在本教程的后面部分,我们将直接使用Event而不是它的中文翻译“事件”,以免混淆。
)我们做的第一件事是建立我们的开发目录,并把所有需要用到的Java库文件放进去。
从Hibernate网站的下载页面下载Hibernate分发版本。
解压缩包并把/lib下面的所有库文件放到我们新的开发目录下面的/lib目录下面。
看起来就像这样:.+lib antlr.jar cglib-full.jar asm.jar asm-attrs.jars commons-collections.jar commons-loggin g.jar ehcache.jar hibernate3.jar jta.jar dom4j.jar log4j.jarThis is the minimum set of required libraries (note that we also copied hibernate3.jar, the main archive) for Hibernate. See the README.txt file in the lib/ directory of the Hibernate distribution for more information about required and optional third-party libraries. (Actually, Log4j is not required but preferred by many developers.) 这个是Hibernate运行所需要的最小库文件集合(注意我们也拷贝了Hibernate3.jar,这个是最重要的库)。
Spring Security 5.1 中文 参考手册 中文文档
Spring Security的许多公司用户都需要与不遵循任何特定安全标准的“传统”系统集成,而Spring Security很高兴能够与这样的系统“很好地发挥”。
无论身份验证机制如何,Spring Security都提供了一套深层次的授权功能。 有三个主要的感兴趣领域:授权Web请求,授权是否可以调用方法并授权访问单个域对象实例。 为帮助您理解这些差异,请分别考虑Servlet规范Web模式安全性,EJB容器托管安全性和文件系统安全性中的授权功能。 Spring Security在所有这些重要领域提供了深入的 功能,我们将在本参考指南的后面部分进行探讨。
人们使用Spring Security有很多原因,但是大多数人在找到Java EE的Servlet规范或EJB规范的安全特性后,都缺乏典型企业应用场景所需的深度。 在提到这些标准的同 时,认识到它们在WAR或EAR级别不可移植是很重要的。 因此,如果切换服务器环境,在新的目标环境中重新配置应用程序的安全性通常需要很多工作。 使用Spring
这些管理因素的非详尽清单将包括安全公告监控修补人员审查审计变更控制工程管理系统数据备份灾难恢复性能基准测试负载监控集中式日志记录事件响应程序等
Spring Security Reference
本帮助文档是 觉得烦死 整理--QQ:654638585 声明:
译 : Spring安 全 参 考
中文文档都是由软件翻译,翻译内容未检查校对,文档内容仅供参考。 您可以任意转发,但请至保留作者&出处(),请尊重作者劳动成果,谢谢!
2. Introduction
译 : 2.介 绍
2.1 What is Spring Security?
译 : 2.1什 么 是 Spring Security ?
Hibernate教程
如:save,update,delete等。提供了透明地完成了对象的增删查改操作(CRUD)。
Session不是线程安全的,它代表与数据库之间的一次操作。 Session通过SessionFactory打开,在所有的工作完成后,需要关闭。
Session创建
Configuration config=new Configuration().configure();
2.3.Session接口
概述
Session是Hibernate持久化操作的基础,与传统意义上的Web层的HttpSession没什 么关系。Hibernate Session之与Hibernate,相当于JDBC Connecgtion相对于JDBC。 Session作为贯穿Hibernate的持久化管理器核心,提供了众多持久化方法,
课程内容
一. 二. 三. 四. 五.
六.
七.
持久层概述 Hibernate基础 Hibernate映射 Hibernate数据检索 Hibernate高级特性 Hibernate最佳实践 Hibernate资源
@ 2007 ITJob. 版权所有. 保留所有权利. 未经许可. 不得复制与传播.
Hibernate教程
SessionFactory sessionFactory = config.buildSessionFactory(); Session session = sessionFactory.openSession(); 创建以后可以调用Session所提供的save、get、delete等方法进行持久化操作。
Hibernate教程
二. Hibernate基础
Hibernate概述 Hibernate核心接口 Hibernate基础配置
程序员各种PDF格式电子书--免费网盘资源
程序员各种PDF格式电⼦书--免费⽹盘资源-请妥善保存,后期还会有更多更新,如果读者有不同的书籍资源或者这⾥没有你要找的书籍,也可以直接评论,我在这⾥添加--如果有不存在的链接或者失效的,直接私信我或者在下⽅评论所有的數據链接:需要的直接⾃取*******2018/7/23 已更新320 本*******03_SpringBoot相关:《Spring Boot 2参考⼿册中⽂⽂档》《Spring Boot 2精髓带书签⽬录⾼清版》04_SpringCloud相关:《疯狂Spring Cloud微服务架构实战》《Spring Cloud Finchley.RELEASE参考⼿册中⽂⽂档》07_Hibernate相关:《Hibernate实战(第2版-⼈民邮电出版社)》《HIBERNATE逍遥游记》14_设计模式相关:《设计模式之禅(第2版)》15_Nginx相关:《实战Nginx:取代Apache的⾼性能Web服务器张宴.扫描版》27_架构相关:《系统架构:复杂系统的产品设计与开发》30_⼤数据相关:《HBase实战》《Spark快速数据处理》31_Java_EE相关:《servlet和jsp学习指南》《解密搜索引擎技术实战Java精华版》《深⼊分析Java Web技术内幕》《Activiti权威指南》《Java.Web开发学习⼿册-明⽇科技》《RESTful Web Services Cookbook 中⽂版_12879413》《Web安全开发指南》《Web应⽤安全权威指南》33_Docker相关:《Docker+容器与容器云(第2版)********2018/5/2 已更新300本********JAVAEE相关:《Java EE互联⽹轻量级框架整合开发 SSM框架(Spring MVC+Spring+MyBatis)和Redis实现》《⾼性能响应式Web开发实战》微信相关:《从零开始学微信⼩程序开发》《微信⼩程序开发⼊门与实践》《微信⼩程序⼊门指南》《⼩程序巧应⽤-微信⼩程序开发实战》⼤数据相关:《⼤数据时代:⽣活、⼯作与思维的⼤变⾰》《⼤数据之路:阿⾥巴巴⼤数据实践》《⽩话⼤数据与机器学习》《⼤数据:互联⽹⼤规模数据挖掘与分布式处理》《⼤数据存储MongoDB实战指南》《⼤数据架构师指南》《⼤数据架构详解:从数据获取到深度学习》《⼤数据算法》《⼤数据挖掘:系统⽅法与实例分析》《数据算法 Hadoop Spark⼤数据处理技巧》《⽤户⽹络⾏为画像⼤数据中的⽤户⽹络⾏为画像分析与内容推荐应⽤》《云计算和⼤数据时代⽹络技术揭秘》《⾃⼰动⼿做⼤数据系统.张魁(带书签⽂字版)》《⽩话⼤数据与机器学习》《Druid实时⼤数据分析原理与实践》《Hadoop⼤数据分析与挖掘实战》《Hadoop权威指南.⼤数据的存储与分析.第4版.修订版&升级版》《Python机器学习——预测分析核⼼算法》《Tensorflow 实战Google深度学习框架(完整版pdf)》程序员个⼈修养:《⾼效程序员的45个习惯(修订版)敏捷开发修炼之道》《⼈件(3版)》《⼈⽉神话.40周年中⽂纪念版.2015》********2018/3/1 已更新272本********Nginx相关:《决战Nginx 技术卷:⾼性能Web服务器部署与运维》《深⼊理解Nginx模块开发与架构解析》《深⼊剖析Nginx》《学习Nginx HTTP Server中⽂版》《Nginx开发从⼊门到精通》MongoDb相关:《深⼊学习MongoDb》《MongoDB实战》数据库相关:《MySQL数据库开发的三⼗六条规定-⽯展》《SQL HACKS:100个业界最尖端的技巧和⼯具》《MySQL开发者SQL权威指南》《MySQL技术内幕.第5版》《MySQL技术内幕 InnoDB存储引擎第2版》《MySQL管理之道,性能调优,⾼可⽤与监控(第⼆版)》《MySQL LVS+Keepalived+MHA ⾼可⽤群集应⽤部署操作⼿册》《MySQL 5权威指南中⽂版第3版》《⾼性能MySQL 第3版中⽂》微服务相关:《微服设计》《轻量级微服务架构(上册)》《轻量级微服务架构(下册)⼤数据:《Hive 简明教程》《Spark⼤数据处理技术、应⽤与性能优化》架构相关《⼤规模分布式存储系统:原理解析与架构实战.杨传辉》《⼤规模分布式系统架构与设计实战.完整版》git相关:《Git权威指南》elasticSearch相关:《深⼊理解ElasticSearch》********2018/2/2 已更新247本********Docker相关《Docker — 从⼊门到实践》《KUBERNETES权威指南从DOCKET到KURBERNETES实践全接触》Elasticsearch相关《Elasticsearch服务器开发(第2版)》《Elasticsearch技术解析与实战》《Elasticsearch权威指南(中⽂版)》tomcat相关《深⼊剖析Tomcat(中⽂版)》《Tomcat架构解析.刘光瑞(详细书签)》spring Cloud相关《Spring Cloud与Docker微服务架构实战》Spring相关《Spring Cloud与Docker微服务架构实战》《Spring Data实战》多线程相关《实战Java⾼并发程序设计》《图解Java多线程设计模式》《Java并发编程的艺术》《Java多线程编程实战指南设计模式篇》git相关《GitHub⼊门与实践_(⽇)_》架构相关《⼤型⽹站技术架构:核⼼原理与案例分析》数据结构和算法相关《编程珠玑2》《⼤话数据结构》《数据结构(Java版)》《程序员的数学3+线性代数》********2017/12/25 已更新227本********Docker相关《循序渐进学Docker》struts《精通Struts基于MVC的JavaWeb设计与开发》sql相关《[漫画数据库].(⽇)⾼桥⿇奈》《DB2+SQL性能调优秘笈》《⼲净的数据++数据清洗⼊门与实践》《MySQL最佳优化完美攻略》《SQL.24⼩时⾃学⼿册》《SQL语⾔艺术》Spring相关《精通Spring MVC4》《Spring+MVC+MYBatis企业应⽤实战》《Spring+Security3+张卫滨(译)》Spring Cloud《Spring Cloud Dalston中⽂⽂档+参考⼿册+中⽂版》python相关《Flask+Web开发:基于Python的Web应⽤开发实战》nodejs相关《了不起的Node js将JavaScript进⾏到底》myabtis《MyBatis技术内幕》《MyBatis3⽤户指南中⽂版》《MyBatis从⼊门到精通__刘增辉(著)》Kylin相关《Apache Kylin权威指南》性能相关《构建⾼性能WEB站点》《零成本实现Web性能测试》《java性能优化权威指南(带书签)》《Web性能测试实战详解+Web开发典藏⼤系》⽹络编程《TCPIP⽹络编程技术基础》前端相关《术与道移动应⽤UI设计必修课》《写给⼤家看的设计书(第4版)》《Ajax安全技术》架构《程序员必读之软件架构》《架构即未来现代企业可扩展的Web架构流程和组织原书第2版》《架构探险从零开始写javaweb框架》《⼈⼈都是架构师+分布式系统架构落地与瓶颈突破》《软件构架实践_第⼆版_林_巴斯等著》《系统架构:复杂系统的产品设计与开发》《⼀线架构师实践指南》《云计算架构技术与实践+第2版》《O2O实战+他们是如何利⽤互联⽹的》********2017/09/22 已更新192本********Docker相关《Docker技术⼊门与实战》《Docker容器与容器云(第2版)》《第⼀本Docker书 PDF电⼦书下载带书签⽬录完整版》Elasticsearch相关:《ElasticSearch可扩展的开源弹性搜索解决⽅案》《实战Elasticsearch、Logstash、Kibana++分布式⼤数据搜索与⽇志挖掘及可视化解决⽅案》Hibernate相关:《Hibernate5⽤户⼿册中⽂版》spring Boot相关:《深⼊实践Spring Boot.陈韶健》Java EE:《[使⽤Java.Web服务构建SOA].(汉森).成保栋》《Java+Web开发与实战--Eclipse+Tomcat+Servlet+JSP整合应⽤》《HTTPS权威指南在服务器和Web应⽤上部署SSL&TLS和PKI》《Java EE7权威指南卷2》《Java Web企业项⽬实战》《Java+Web技术整合应⽤与项⽬实战JSP+Servlet+Struts2+Hibernate+Spring3》《JavaEE7精粹》Java相关:《Java8函数式编程》《深⼊理解JAVA内存模型》多线程:《JAVA并发编程核⼼⽅法与框架 ,⾼洪岩著》********2017/08/10 已更新175本********java:《Head First Java 中⽂⾼清版》《Java核⼼技术(卷I)基础知(原书第9版)》《Java核⼼技术卷II ⾼级特性(原书第9版)》算法:《数据结构与算法分析_Java语⾔描述(第2版)》《算法基础.打开算法之门》《算法导论(原书第3版)》《算法概论》多线程《Java并发编程:设计原则与模式(第⼆版)》《java线程》《Java虚拟机并发编程》git《Git版本控制管理(第2版)《完全学会GIT GITHUB GIT SERVER的24堂课》nginx:《Nginx⾼性能Web服务器详解》********2017/07/02 已更新162本********java;《阿⾥双11系统管控调度架构与实践》《淘宝技术这⼗年,完整最终确认版》《啊哈!算法》《图解HTTP》完整彩⾊版《Apache服务器配置与使⽤⼯作笔记》《JAVA 8实战》《Java NIO 中⽂版》《Java+JVM》《Jsp、Tomcat、Sqlserver部分笔记》《从Paxos到Zookeeper 分布式⼀致性原理与实践(书签版)》《⼤型⽹站系统与JAVA中间件实践(⾼清版)》《深⼊分析Java Web技术修订版》Hibernate相关:《精通 Hibernate:Java 对象持久化技术详解(第2版)》HTML5相关:《HTML5移动Web开发指南》《HTML5移动开发即学即⽤(双⾊)》linux相关:《循序渐进Linux第2版》Netty相关:《Netty in Action第五版》Nginx相关:《Nginx教程从⼊门到精通》spring相关:《SPRING技术内幕:深⼊解析SPRING架构与设计原理》《Spring源码深度解析》SpringCloud:《Spring Cloud微服务实战》tomcat相关:《How Tomcat Works中⽂版》《Tomcat权威指南(第2版)》《Tomcat源码研究》数据库:《Effective MySQL之SQL语句最优化》《Sql Cookbook中⽂版》《SQL HACKS:100个业界最尖端的技巧和⼯具》《sql两⽇速成》《SQL注⼊攻击与防御原书第2版》《数据库查询优化器的艺术:原理解析与SQL性能优化》项⽬管理:《项⽬管理》********2017/06/22 已更新131本********java:《Java典型应⽤彻查1000例:Java⼊门》《Java典型应⽤彻查1000例:Web应⽤开发》《Java典型应⽤彻查1000例:数据库应⽤基础》《Java典型应⽤彻查1000例:图形与⽹络游戏开发》《Java典型应⽤彻查1000例:⽹络应⽤开发》《Java典型应⽤彻查1000例:⽹站数据库设计》《Java TCP IP Socket编程(原书第2版)》《Java程序员⾯试宝典(第2版)(欧⽴奇,刘洋,段韬) PDF 扫描版》《Java程序员⾯试宝典(杨磊) PDF 扫描版》《Java程序员⾯试笔试真题库_2017版》《Java程序员⾯试笔试真题与解析_迷你书_2017版》《TCPIP详解卷1》《TCPIP详解卷2》《TCPIP详解卷3》《UML精粹》《图解HTTP》多线程:《七周七并发模型》程序员个⼈修养:《编写⾼质量代码:改善Java程序的151个建议》linux相关:《LINUX SHELL脚本攻略(中⽂版带书签)》MongoDB相关:《MongoDB权威指南》Mybatis相关:《Mybatis_3中⽂⽤户指南》Node.js相关:《Node.js 开发指南》Struts相关:《Struts2 技术内幕——深⼊解析Struts2架构设计与实现原理》Spring相关:《Spring实战(第4版)》《Java EE设计模式:Spring企业级开发最佳实践》AngularJS相关:《AngularJS权威教程》《AngularJS深度剖析与最佳实践》********2017/06/02 已更新104本********java:《Java虚拟机并发编程》多线程:《Java并发编程学习笔记》《Java多线程编程深⼊详解》数据库:《MySQL性能调优与架构设计》《SQL必知必会》thymeleaf相关:《thymeleaf_3.0.5_中⽂参考⼿册》Redis相关:《Redis⼩⽩⼊门指南》MyBatis相关:《深⼊浅出MyBatis技术原理与实战》前端:《锋利的jQuery2》《[jQuery攻略].(印)哈⽡尼.扫描版》《锋利的jQuery》(⾼清扫描版-有书签)《jquery⾼級編程》********2017/05/11 已更新92本********java:《Java RESTful Web Service实战》《JAVA解惑》Netty相关:《Netty权威指南》Redis相关《Redis设计与实现》**2017/05/01**多线程:《Java 7并发编程实战⼿册》《Java并发编程实战(中⽂版)》Spring:《spring揭秘(完整)》《精通Spring》Nginx相关:《实战nginx》********2017/04/29********《Java常⽤算法⼿册第三版本》博主付费购买《数据结构与算法 Java版》博主付费购买《图解数据结构-使⽤Java》博主付费购买********2017/04/28********Spring相关:《精通Spring4.X企业应⽤开发实战》博主付费购买《亿级流量⽹站架构核⼼技术-跟开涛学搭建⾼可⽤⾼并发系统》博主付费购买********2017/04/27********前端相关:《超越CSS:Web设计艺术精髓》《精通CSS.-.⾼级Web标准解决⽅案.中⽂版》《CSS权威指南》CSS时尚编程百例CSS禅意花园linux相关:鸟哥私房菜(全)[鸟哥的Linux私房菜:服务器架设篇(第⼆版)]********2017/04/25********java⽬录:实战Java⾼并发程序设计Head First Servlet JSP(清晰中⽂版)java基础教程(强烈推荐)编程之美-完整版⼤话数据结构算法与数据结构-实⽤算法基础教程Java核⼼技术卷Ⅰ基础知识(第8版)Java核⼼技术卷Ⅱ⾼级特性(第8版)********2017/04/21********java⽬录:Java程序性能优化让你的Java程序更快、更稳定.pdf JavaSpringJava多线程MybatisHibernateStruts2GitPython算法数据库DockerRedis 前端Android C++ Maven 。
hibernate5 createnativequery用法
hibernate5 createnativequery用法Hibernate 是一个开源的Java持久化框架,它提供了一种面向对象的方式来处理关系型数据库的操作。
Hibernate 的目标是使数据库访问更加简单和高效,同时减少开发人员的工作量。
在Hibernate中,createNativeQuery 是一个用于执行本地SQL查询的方法。
它允许开发人员直接在代码中编写原生SQL语句,而不是使用Hibernate的HQL或Criteria查询语言。
使用createNativeQuery,开发人员可以充分利用数据库引擎的特性,提高查询性能。
下面是一步步回答使用createNativeQuery的用法。
1. 首先,导入Hibernate的相关依赖包。
在项目的pom.xml文件中添加Hibernate的依赖项。
例如:xml<dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.0.0.Final</version></dependency>2. 创建一个Hibernate的配置文件。
Hibernate的配置文件包含了与数据库的连接信息和其他一些配置项。
在配置文件中,我们需要指定数据库的连接URL、用户名、密码等信息。
例如,创建一个名为hibernate.cfg.xml的文件,并在其中添加以下内容:xml<hibernate-configuration><session-factory><! 数据库连接信息><propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</pro perty><propertyname="hibernate.connection.url">jdbc:mysql:localhost:3306/mydatabas e</property><propertyname="ername">root</property><propertyname="hibernate.connection.password">password</property><! 其他一些配置项>...</session-factory></hibernate-configuration>3. 创建一个实体类。
F5中文手册1
ANTRIEBSTECHNIK 06/2001
© KEB 00.00.EMV-K003
© KEB 00.00.EMV-K003
目录表
1. 导言
1.1 关于本手册
ANTR IE BS TE C HNIK
1. 导言.................................................................................. 1
COMBIVERT
D Bevor Sie beginnen GB Getting Started F Avant que vous ne commenciez I Prima di Iniziare E Antes de comenzar FIN Ennen käyttöönottoa P Antes de começar S Innan start DK Før De begynder GR Πριν ξεκινσετε NL Voordat u begint RU Прежде чем начать
变频器/伺机器在运输安装过程中应防止物理性损坏,元件和盖板不能随便拿掉或 弄弯变形,否则可能造成绝缘距离不够。如果装置不再满足强制性标准,无论如 何不可投入运行。 该装置含有静电敏感性元件,粗心的接触和操作可能导致危险。 确保安装使用期间有足够的间距空间和冷却。气候条件要符合EN50178。
2.4 安装注意事项
变频器接线中无法与主回路分离的所有控制线,应该有另外的防护方法(比如: 双绝缘或屏蔽,接地和隔离)。进一步内容参见技术文件第3部分。
变频器只允许接入对称平衡电网,最大线(l1,l2,l3)对地(N/PE)电压为300V。 如果线对地电压超过此值,必须追加使用隔离变压器,否则对装置有危险。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.1.6. 用户自定义的连接......................................................................45 5.1.7. ConnectionProvider 事务设置...............................................45 5.2. 数据库 Dialect(方言)...........................................................................45 第 6 章 事务与并发控制..................................................................................48 6.1. 物理事务..................................................................................................49 6.1.1. JTA 配置.......................................................................................50 6.2. Hibernate 事务 API................................................................................51 6.3. 事务模式(与反模式)..........................................................................55 6.3.1. Session-per-operation(每操作一个会话)反模式............55 6.3.2. Session-per-request(每请求一个会话)模式....................56 6.3.3. Conversations(对话)............................................................57 6.3.4. Session-per-application (每应用一个会话)..................58 6.4. 常见问题................................................................................................58 第 7 章 JNDI....................................................................................................59 第8章 锁..........................................................................................................59 8.1. 乐观锁......................................................................................................60 8.1.1. 指定版本号..................................................................................61 8.1.2. Timestamp(时间戳)................................................................63 8.2. 悲观锁......................................................................................................64 8.2.1. LockMode 类............................................................................. 65 第 9 章 Fetching(抓取)..............................................................................66 9.1. 基础..........................................................................................................66 9.2. 应用抓取策略..........................................................................................68 9.2.1. 不抓取..........................................................................................69 9.2.2. 通过查询动态抓取......................................................................70 9.2.3. 通过配置文件动态抓取..............................................................71 第 10 章 批处理..................................................................................................72 10.1. JDBC 批处理...........................................................................................72 第 11 章 缓冲..................................................................................................73 11.1. 配置二级缓存........................................................................................73 11.1.1. RegionFactory(注册工厂)..................................................73 11.1.2. 缓冲行为....................................................................................74 11.2. 管理缓冲数据........................................................................................75
Hibernate 用户手册
Hibernate - 纯 java 的关系型持久层框
Hibernate 团队
JBoss 可视化设计团队
5.0.0.Final
Copyright © 2011 Red Hat, Inc. 2015-08-20
目录
Hibernate 用户手册....................................................................................................1 Hibernate - 纯 java 的关系型持久层框..........................................................1 Hibernate 团队............................................................................................1 JBoss 可视化设计团队................................................................................1 序言........................................................................................................................8 第1章. Architecture(体系架构)..............................................................9 1.1. 概述..........................................................................................................10 1.2. Contextual sessions(session 上下文).........................................11 第 2 章. Domain Model(域模型)................................................................12 2.1. POJO 模型................................................................................................13 2.1.1. 实现无参构造函数......................................................................13