一、hibernate简介
1、hibernate是什么?
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
其实简单的来说hibernate就是可以让我们面向对象编程,可以不用关注繁琐的数据编程,sql语句的编写,大大的加快了开发的速度
2、优点,即hibernate可以解决的问题
1)粒度的问题:java基本数据类型跟数据库不匹配
例如但java的日期可以精确到毫秒,但是MySQL数据库可以只可以精确到秒,所以此时不能匹配,需要用其他办法转换
2)子类型:java有父子类,多态,数据库里面没有,不能继承
3)同一性的问题:java代码一改数据库跟着马上更改
4)与关联:数据库的表相当于集合,数据库需要有多表查询、笛卡尔积,但是java的集合很难是做“笛卡尔积等”
5)对象结构导航:数据库不能像java一样a对象调用b对象,b对象调用c对象!
以上存在的问题hibernate可以全部解决哦
3、其它不多说,马上来环境搭建
hibernate的环境搭建有一点点繁琐,但是一旦搭建好,就可以一劳永逸!!
1)首先在数据建立库、表,这里小编就不多说了
2)新建java工程
3)导入hibernate的包以及数据库驱动包(9个),这里的驱动包可以到hibernate官网下载,一定要记得导入你用到的数据库驱动包
4)4、编写hibernate.cfg.xml(总体配置)
配置最基本文件模板:
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<!—DTD必须有 -->
<hibernate-configuration>
<session-factory>
</session-factory>
</hibernate-configuration>
5)数据库连接的配置
a)oracle的配置
Oracle:
<property name="show_sql">true</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<!--数据库的链接-->
<property name="connection.url">
jdbc:oracle:thin:@192.168.254.118:1521:spdb6</property>
<!--用户名和密码-->
<property name="connection.username">teach</property>
<property name="connection.password">teach</property>
<!--设置隔离,可以暂时不配-->
<property name="connection.isolation">2</property>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<!--注意,这里配置的resource要跟下面配置的xml文件名要一致-->
<mapping resource="User.hbm.xml"/>
6)写一个实体类
User类,注意类里面的属性要跟数据库的属性要一致
public class User {
private long userId;
private String userName;
private String pass;
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
7)编写hibernate跟数据库之间的关系的xml文件
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-name为类的路径,table是在数据库建表的表名-->
<class name="czy.User" table="user_list">
<!--采用主键生成策略-->
<id name="userId" column="userId">
<generator class="native"/>
</id>
<property name="userName"></property>
<property name="pass"></property>
</class>
</hibernate-mapping>
8)编写一个非常简单的测试类
public class Test {
public static void main(String[] args) {
//加载总配置文件
Configuration cfg = new Configuration().configure();
//获取会话工厂(一个数据库只能有一个会话工厂)
SessionFactory sf = cfg.buildSessionFactory();
//会话
Session session = sf.openSession();
//事务
Transaction tx = session.beginTransaction();
User user = new User();
user.setUserId(2);
user.setUserName("czy2");
session.save(user);
// session.delete(user);
tx.commit();
}
}
到此为止,可以说简单入门,初步成功,大家可以把代码copy到自己的本地去测试一下
下面给出源代码,大家可以下载下来看一下
http://download.csdn.net/detail/zhuichen1/9021517