HelloHibernate

本文详细介绍了一个使用Hibernate框架进行数据库操作的基本示例,包括配置文件、实体类定义、工具类实现及测试代码等内容,帮助读者快速掌握Hibernate的基础用法。

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

根据官方文档写出的HelloWorld。

有xml和注解两种方式。这里,只写出官方的XML形式,详细请看我的工程

目录结构:

103737_c85A_1379006.png

1。导包

103021_xAC3_1379006.png

2. hibernate总配置文件hibernate.cfg.xml

<?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>


<session-factory>


<!-- Database connection settings -->

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="connection.url">jdbc:mysql://localhost:3306/hib</property>

<property name="connection.username">root</property>

<property name="connection.password">1234</property>


<!-- JDBC connection pool (use the built-in) -->

<property name="connection.pool_size">1</property>


<!-- SQL dialect -->

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>


<!-- Enable Hibernate's automatic session context management -->

<property name="current_session_context_class">thread</property>


<!-- Disable the second-level cache  -->

<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>


<!-- Echo all executed SQL to stdout -->

<property name="show_sql">true</property>


<!-- Drop and re-create the database schema on startup -->

<property name="hbm2ddl.auto">update</property>

<mapping resource="com/hibernate/po/Event.hbm.xml" />

<mapping class="com.hibernate.po.Person" /> 

</session-factory>

</hibernate-configuration>

3。 创建po类

import java.util.Date;


public class Event {

    private Long id;


    private String title;

    private Date date;

……省略getters 和 setters

4。po类的配置文件Event.hbm.xml

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">


<hibernate-mapping package="com.hibernate.po">


<class name="com.hibernate.po.Event" table="EVENTS">

<id name="id" column="EVENT_ID">

<generator class="native" />

</id>

<property name="date" type="timestamp" column="EVENT_DATE" />

<property name="title" />

</class>


</hibernate-mapping>

5。Hibernate工具类HibernateUtil.java

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;


public class HibernateUtil {


    private static final SessionFactory sessionFactory = buildSessionFactory();


    private static SessionFactory buildSessionFactory() {

        try {

            // Create the SessionFactory from hibernate.cfg.xml

            return new Configuration().configure().buildSessionFactory();

        }

        catch (Throwable ex) {

            // Make sure you log the exception, as it might be swallowed

            System.err.println("Initial SessionFactory creation failed." + ex);

            throw new ExceptionInInitializerError(ex);

        }

    }


    public static SessionFactory getSessionFactory() {

        return sessionFactory;

    }

}

6。测试类

/**

 * 官方例子

 * @author  Administrator

 *

 */

public class EventManager {


    public static void main(String[] args) {

        EventManager mgr = new EventManager();


        if (true) {

            mgr.createAndStoreEvent("My Event", new Date());

        }


        HibernateUtil.getSessionFactory().close();

    }


    private void createAndStoreEvent(String title, Date theDate) {

        Session session = HibernateUtil.getSessionFactory().getCurrentSession();

        session.beginTransaction();


        Event theEvent = new Event();

        theEvent.setTitle(title);

        theEvent.setDate(theDate);

        session.save(theEvent);

        session.getTransaction().commit();

    }

}




转载于:https://my.oschina.net/u/1379006/blog/189477

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值