Hibernate学习心得(一)

本文介绍如何使用Hibernate框架配合Eclipse、JDK及Mysql进行数据库操作,包括配置环境、生成配置文件、创建映射文件及实现数据增删改查等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用软件:

JDK1.6.0_12, Eclipse 3.4.0, Mysql 5.1.7, Hibernate 3.3.1

 

在Eclipse中新建项目TestHibernate,除了默认添加的JRE系统库外,添加相关类库,包括:

1、Mysql的类库

mysql-connector-java-5.1.7-bin.jar

2、Hibernate的类库

hibernate3.jar

3、Hibernate的必须类库

antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
javassist-3.4.GA.jar
jta-1.1.jar
slf4j-api-1.5.6.jar(Hibernate 3.3.1自带的为slf4j-api-1.5.2.jar,我换成了最新的slf4j-api-1.5.6.jar)

4、slf4j所需的log类库

slf4j-simple-1.5.6.jar(需要和上面slf4j-api-1.5.6.jar版本相同,也可以替换成同版本号的其它log类库)

 

网上有人说要把Hibernate中log4j.properties解压缩出来,复制到项目src目录下,具体原文件位置参考下面结构

hibernate-distribution-3.3.1.GA-dist.zip/hibernate-distribution-3.3.1.GA/project/etc

但经过测验,在我使用的环境下不需要,复制了也没看出影响。

 

数据库添加test表,三个字段

id,integer,primary key,自增量

name,varchar(20)

age,interger

 

Hibernate synchronizer 插件已经装好了

项目右键-新建-其它-Hibernate-Hibernate Configuration File

1、container 指定到项目的src目录

2、Database Type:选择MySql

3、Driver Class 设置为com.mysql.jdbc.Driver

4、Database URL 设置为jdbc:mysql://localhost/test (要具体到表名,奇怪)

5、其余默认

点击完成生成hibernate.cfg.xml

 

不知道为啥,hibernate.cfg.xml生成就缺一部分,在开头复制粘贴上

<!DOCTYPE   hibernate-configuration   PUBLIC 
  "-//Hibernate/Hibernate   Configuration   DTD   3.0//EN" 
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

保存并关闭

 

项目右键-新建-其它-Hibernate-Hibernate Mapping File

1、container 指定到项目的src目录

2、输入密码,点击Refresh,Tables框里出现test表,选中前面的勾

3、package 指定test表生成的对应数据类将要放置的包位置,和该配置文件本身位置无关

4、选项切换到Properties,ID Generator默认是Sequesce,这是不行的,改成org.hibernate.id.IdentityGenerator

5、其余默认

点击完成生成Test.hbm.xml

 

选中Test.hbm.xml,右键-Hibernate synchronizer-Synchronize Files(以后就是Synchronize And Overwrite),系统自动生成了src/org/testhibernate/Test.java和src/org/testhibernate/base/BaseTest.java。

 

项目右键-新建-类,创建一个类src/org/testhibernate/TestHibernate.java

代码如下:

package org.testhibernate;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class TestHibernate {
    Configuration configuration;
    SessionFactory sessionFactory;
    Session session;

    public void saveTest(Test test) {
        // 实例化Configuration
        configuration = new Configuration().configure();
        // 实例化SessionFactory
        sessionFactory = configuration.buildSessionFactory();
        // 实例化Session
        session = sessionFactory.openSession();
        // 开始事务
        Transaction tx = session.beginTransaction();
        // 增加新闻
        session.save(test);
        // 提交事务
        tx.commit();
        // 关闭Session
        session.close();
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        Test n = new Test();
        n.setName("aaa");
        n.setAge(29);
        TestHibernate th = new TestHibernate();
        th.saveTest(n);
    }
}

 

保存并运行TestHibernate.java,正常结束,检查Mysql数据库,test表增加了一条记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值