[备忘]8小时外实战系列之一——Win7下Hibernate4+Java8实战

原创 2015年11月19日 20:01:40

0 引言

本文假设读者已经对Hibernate的应用场景和特点熟悉了。
环境:
Win7 64bit
Java 8
Derby 10.12.11
Hibernate 4.3.11Final

1 Hibernate运行时体系结构1

应用背景:软件三层结构

  • 应用层
  • Session,JDBC,JTA
  • Database

“最小”方案,要求应用程序提供自己的JDBC连接并管理自己的事务。
“完整”方案,将应用层从底层的JDBC/JTAAPI中抽象出来,而让Hibernate来处理这些细节。

实践的目标是“完整”方案,加入Hibernate后的软件五层结构如下:

  • 应用
  • Session,SessionFactory,Transaction
  • Hibernate
  • JDBC
  • Database

2 Database – Derby 10.12

Apach Derby官网下载.zip(国内打开很慢,我用VPN下载只有50kb/s)。
Win7下安装比较简单,解压zip,把解压出来的文件夹下的\bin路径加入系统的环境变量PATH中。
打开cmd,运行Derby自带的命令行程序ij

ij
ij>connect 'jdbc:derby:D:\\!WorkDir\\IDEAWorkspace\\db\\firstdb;create=true';
ij>connect 'jdbc:derby:D:\\!WorkDir\\IDEAWorkspace\\db\\firstdb;create=false';
ij(CONNECT)>CREATE TABLE tFirst(ID INT PRIMARY KEY, NAME VARCHAR(12));
ij(CONNECT)>INSERT INTO tFirst VALUES (10,'TEN'),(20,'TWENTY'),(30,'THIRTY');

建立了数据库firstdb和表tFirst.

Hibernate 4.3.11

用了@Annotation而不是.xml文件来配对实体类和数据库表。要用@Annotation需要导入以下包
\hibernate-release-4.3.11.Final\lib\required\hibernate-jpa-2.1-api-1.0.0.Final.jar

特别提一下,在hibernate 3.X时代,@Annotation是由ejb3-persistence.jar支持的

实体类

import javax.persistence.*;

@Entity
@Table(name="tFirst")
public class Study{
    private int intOld;
    private String strOld;
    @Id
    @GeneratedValue()

配置文件hibernate.cfg.xml

hibernate 4.2 版本与之前的版本比较,有较大不同。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
</hibernate-configuration>

JPA(Hibernate)中使用Java8的日期LocalDate、LocalDateTime

大家知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数据库的date、timestamp、datetime等...
  • mn960mn
  • mn960mn
  • 2016年11月12日 16:33
  • 4379

JPA2.1与Java8 date/time

Java 8 开始引入了全新的时间API,但是因为JPA 2.1发布于Java 8之前,所以在JPA2.1中,Java 8 的新时间API是无法默认就被识别,正确地映射到数据库的。解决办法主要有两类:...
  • skyupward
  • skyupward
  • 2017年02月04日 22:11
  • 662

Eclipse+hibernate5+jdk8(第一课)

Eclipse+hibernate5+jdk8(第一课)
  • hoho_12
  • hoho_12
  • 2016年11月04日 09:26
  • 817

【爱上Java8】Java 8 不在需要ORM了

首先,我要对ORM做一些吐槽,以hibernate为代表的ORM简直见识开发者的噩梦呀。本人对此深恶痛绝。什么one-to-many, many-to-many ,搞死人不说,还特别麻烦,该死的延迟加...
  • xinaij
  • xinaij
  • 2014年08月17日 00:23
  • 2594

[备忘]8小时外实战系列之一——Win7下Hibernate4+Java8实战

0 引言 本文假设读者已经对Hibernate的应用场景和特点熟悉了。 环境: Derby 10.12.11 Hibernate 4.3.11Final 1 Hibernate运行时体系结构...
  • caib1109
  • caib1109
  • 2015年11月19日 20:01
  • 516

java8+tomcat8+struts2.5+spring4.3+hibernate5.2框架搭建详细过程

  • 2017年07月15日 10:30
  • 296KB
  • 下载

【开发板教程目录分享】4412开发板实战教程纸制版

【开发板教程目录分享】4412开发板实战教程纸制版
  • Chihiro_S
  • Chihiro_S
  • 2017年04月19日 17:09
  • 930

蓝丝雨第十季商业实战系列《商业实…

【教程特点】 一、本套网页游戏项目教程采用了蓝丝雨专属浏览器,是蓝丝雨团队基于C++开发的一款专用纯净版浏览器,没有任务多余广告和插件,专为网页游戏而生。拥有强大的可控性,轻松实现游戏窗口的多开模...
  • zyfxlt_com
  • zyfxlt_com
  • 2017年05月08日 15:01
  • 269

JDK8 + Tomcat8.0 + SpringMVC4 + Spring4 + Hibernate4 + MySQL5.6

  • 2014年12月04日 12:49
  • 20.88MB
  • 下载

hibernate5+oracle+jdk1.8(第一课)

hibernate5第一课
  • hoho_12
  • hoho_12
  • 2016年11月02日 17:16
  • 799
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[备忘]8小时外实战系列之一——Win7下Hibernate4+Java8实战
举报原因:
原因补充:

(最多只允许输入30个字)