Hibernate 3.x 時代經典配置範例:hibernate.cfg.xml、.hbm.xml 映射檔、POJO 實體類、Session 操作範本。
CREATE TABLE test (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL
);
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"https://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://192.168.25.152/test</property>
<property name="connection.username">your_user</property>
<property name="connection.password">your_pass</property>
<mapping resource="user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"https://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.TestDb" table="test">
<id name="id" column="id">
<generator class="increment"/>
</id>
<property name="username" column="username"/>
</class>
</hibernate-mapping>
package com;
public class TestDb {
private Long id;
private String username;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
}
package com;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import java.util.List;
public class Test {
static SessionFactory sf;
static Session session;
static Transaction tx;
static void init() {
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
tx = session.beginTransaction();
}
static void close() {
tx.commit();
session.close();
sf.close();
}
public static void main(String[] args) {
init();
// insert();
// update();
// load();
all();
close();
}
static void all() {
Query q = session.createQuery("select c.id, c.username from TestDb c");
List list = q.list();
for (Object row : list) {
Object[] cols = (Object[]) row;
System.out.println(cols[0] + " " + cols[1]);
}
}
static void load() {
TestDb obj = (TestDb) session.load(TestDb.class, 2L);
System.out.println(obj.getUsername());
}
static void update() {
TestDb obj = (TestDb) session.load(TestDb.class, 2L);
obj.setUsername("cg");
}
static void insert() {
TestDb user = new TestDb();
user.setUsername("sb");
session.save(user);
}
}
src/ ├── com/ │ ├── TestDb.java │ ├── Test.java │ ├── user.hbm.xml └── hibernate.cfg.xml
Configuration → MetadataSources、StandardServiceRegistryBuilder@Entity, @Table, @Id) 替代 .hbm.xmlHibernateTemplate / SessionFactory 注入GenerationType.IDENTITY (MySQL) 替代 increment