Hibernate的配置问题(1)--桌面程序的配置

来源:互联网 发布:闲鱼淘宝小二介入几天 编辑:程序博客网 时间:2024/04/30 18:11

    开源的框架,配置是初学者最头的,因为那都是牛人写的开发指南,初学者是不大能看懂的。牛人干牛事,我只能郁闷。

  1、桌面程序中的Hibernate配置。

        在根目录或者classes下,hibernate.properties文件,来存放有关数据库的相关信息。以MySQL数据库为例,内容如下:   

hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/databaseName
hibernate.connection.username=root
hibernate.connection.password=password

      然后,是Java的类文件,和数据描述文件(className.hbm.xml),再下来是应用的类。如本文所举的,一个Track.java、Track.hbm.xml,和Test.java,三个文件,代码如下:

 Track.java

import java.io.Serializable;


/**
 *       
 *       @author chenjun
 *    
*/
public class Track implements Serializable {

    /** identifier field */
    private Integer id;

    /** nullable persistent field */
    private String title;

    /** full constructor */
    public Track(String title) {
        this.title = title;

    }

    /** default constructor */
    public Track() {
    }

    public Integer getId() {
        return this.id;
    }

    protected void setId(Integer id) {
        this.id = id;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

}
  很简单,一个id,一个title.

Track.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
          "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>

  <class name="Track" table="TRACK">
    <meta attribute="class-description">
   @author chenjun
    </meta>

    <id name="id" type="int" column="ID">
      <meta attribute="scope-set">protected</meta>
      <generator class="native"/>
    </id>

    <property name="title" type="string">
      <meta attribute="use-in-tostring">true</meta>
      <column name="TITLE" not-null="true" index="TRACK_TITLE"/>
    </property>

  </class>

</hibernate-mapping>

      也很简单,两个字段,id,title,此时在MySQL中建立一个数据库和一个表track。

 Test.java

 

import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;


public class Test {


    public static void main(String args[]) throws Exception {
        // Create a configuration based on the properties file we've put
        // in the standard place.
        Configuration config = new Configuration();

        // Tell it about the classes we want mapped, taking advantage of
        // the way we've named their mapping documents.
        config.addClass(Track.class);

        // Get the session factory we can use for persistence
        SessionFactory sessionFactory = config.buildSessionFactory();

        // Ask for a session using the JDBC information we've configured
        Session session = sessionFactory.openSession();
        Transaction tx = null;
        try {
            // Create some data and persist it
            tx = session.beginTransaction();

            Track track = new Track("123456");
           
            session.save(track);

            // We're done; make our changes permanent
            tx.commit();

        } catch (Exception e) {
            if (tx != null) {
                // Something went wrong; discard all partial changes
                tx.rollback();
            }
            throw e;
        } finally {
            // No matter what, close the session
            session.close();
        }

        // Clean up after ourselves
        sessionFactory.close();
    }
}

  当然,我使用的是hibernate2.1,还有其他的一些运行hibernate的类,在它的lib中可以找到。当使用事务类时

你需要j2ee.jar包,在J2EE中。

  祝你调试顺利。

 

 

原创粉丝点击