三大框架之hibernate教程入门1

一、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值