对于学习Java的开发者来说,这个问题不应该是一个问题。
一句话: Hibernate 是针对Java环境的对象/关系映射的解决方案,或者说是第三方库。
它的作用就是省去了开发者花在Java类对应数据库表,Java数据对应到SQL数据类型的时间。减少了开发者花在处理SQL和JDBC的时间。
在开发角度来说,最大的不同是:
使用 JDBC开发时,基本还是组出SQL,通过JDBC API来执行SQL。
而使用 Hibernate,对Java 对象进行save 或其他操作,就会自动保存到数据库中,也就是使用Hibernate 更体现了面向对象的概念, 当然, hibernae 的好处远不止于此。
下载:
到hibernate 的官方网站下载。目前的最新版是 4.3.5.Final, 下载地址:
http://sourceforge.net/projects/hibernate/files/hibernate4/4.3.5.Final/hibernate-release-4.3.5.Final.zip/download
也可以到 :
https://onedrive.live.com/redir?resid=5B4EDBCD9EF1AB6B!191&authkey=!ABaYyXT8zlybvig&ithint=file%2c.zip
下载
解压下载后的 zip 档, 解压后的目录结构如下:
documentation -- 存放了hibernate 的快速入门文档,开发手册,API文档等英文文档
project -- 存放了一些测试的例子
lib - 存放了jar 包,里面又分成了几个子目录。
lib/required -- 一些核心包, 开发时需要把这个目录下的所有文件放到项目的classpath 下
lib/jpa - 主要是hibernate-entitymanager.jar , 依赖于 required里的jar 档。主要是JPA用的(Java Persistence API)
lib/events
lib/Optional
这里使用mysql 数据库测试, 要下载一个 Mysql JDBC 的jar 档。
到 http://dev.mysql.com/downloads/connector/j/ 下载
下载页面如下:
不过下载这个, 需要登录oralce 网站。
也可以直接到 https://onedrive.live.com/redir?resid=5B4EDBCD9EF1AB6B!193&authkey=!AHJhNgziTxpiRGg&ithint=file%2c.jar 下载
在Eclipse 中建立一个Java Project
1. 建立lib 目录, 将 hibernate lib\required 目录下所有的jar 当和mysql jdbc 档(mysql-connector-java-5.1.30-bin.jar)放入lib 目录。 并导入
2. 在src 根目录下建立 hibernate.cfg.xml, 内容如下:
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test
root
123456
1
org.hibernate.dialect.MySQLDialect
true
create
4. 在同包目录下, 加入 Usr.java
package com.oscar999;
import java.util.Date;
public class Usr {
private String emp_id;
private String user_name;
private String email_addr;
private String location;
private String title;
private String mobile;
private String extnum;
private Date hire_date;
private Date resign_date;
private String active;
public Usr() {
// this form used by Hibernate
}
public Usr(String emp_id) {
this.emp_id = emp_id;
}
public String getEmp_id() {
return emp_id;
}
public void setEmp_id(String emp_id) {
this.emp_id = emp_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getEmail_addr() {
return email_addr;
}
public void setEmail_addr(String email_addr) {
this.email_addr = email_addr;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getExtnum() {
return extnum;
}
public void setExtnum(String extnum) {
this.extnum = extnum;
}
public Date getHire_date() {
return hire_date;
}
public void setHire_date(Date hire_date) {
this.hire_date = hire_date;
}
public Date getResign_date() {
return resign_date;
}
public void setResign_date(Date resign_date) {
this.resign_date = resign_date;
}
public String getActive() {
return active;
}
public void setActive(String active) {
this.active = active;
}
}
/*
* @author: oscar999
* @Date:2014-6-3
* Copyright (c) oscar999. All rights reserved.
*/
package com.oscar999;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
/**
*
*
* @see
* @see
*
* @version 0.1, 2014-6-3
* @author oscar999
* @since JDK1.5
*/
public class TestMySQL {
public static void main(String[] args) {
Configuration configuration = new Configuration().configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(new Usr("oscar999"));
session.getTransaction().commit();
session.close();
sessionFactory.close();
}
}
再贴一下, 如果是oracle, hibernate.cfg.xml 如何配置:
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:yoursid
yourusername
yourpassword
1
org.hibernate.dialect.OracleDialect
true
create