开源的框架,配置是初学者最头的,因为那都是牛人写的开发指南,初学者是不大能看懂的。牛人干牛事,我只能郁闷。
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中。
祝你调试顺利。