下载hibernate-release-4.1.3.Final.tgz
例子在这里:
hibernate-release-4.1.3.Final\documentation\quickstart\en-US\html\files\hibernate-tutorials.zip
这里说关于annotations的事。
复制hibernate-release-4.1.3.Final\project\etc\log4j.properties到
hibernate-tutorials\annotations\src\test\resources中,
这样,可以控制log4j,省得运行时输出一堆log。
log4j.properties中,把log4j.logger.org.hibernate=debug改成log4j.logger.org.hibernate=warn
log就会干干净净。
============增加一个map类
在hibernate.cfg.xml中加:
<mapping class="org.hibernate.tutorial.annotations.FoodItem2"/>
告诉hibernate,这个类需要被map。
---------表结构
CREATE TABLE `food_item` (
`foodItem_Id` bigint(20) NOT NULL default '0',
`name_str` varchar(75) default NULL,
`points_num` int(11) default NULL
)
---------FoodItem2.java关键处
@Entity
<?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://aa:2222/dd?useUnicode=true&characterEncoding=UTF-8</property> <property name="connection.username">ff</property> <property name="connection.password">ff</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> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Names the annotated entity class --> <mapping class="org.hibernate.tutorial.annotations.FoodItem2"/> </session-factory> </hibernate-configuration>
package org.hibernate.tutorial.annotations;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "food_item")
public class FoodItem2 {
@Id
@Column(name = "foodItem_Id")
public long getFoodItemId() {
return _foodItemId;
}
public void setFoodItemId(long foodItemId) {
_foodItemId = foodItemId;
}
@Column(name = "name_str")
public String getName() {
return _name;
}
public void setName(String name) {
_name = name;
}
@Column(name = "points_num")
public int getPoints() {
return _points;
}
public void setPoints(int points) {
_points = points;
}
private long _foodItemId;
private String _name;
private int _points;
public String toString() {
return _foodItemId + ", " + _name + ", " + _points;
}
}
package org.hibernate.tutorial.annotations;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class A2 {
private SessionFactory sessionFactory;
protected void setUp() throws Exception {
// A SessionFactory is set up once for an application
sessionFactory = new Configuration().configure().buildSessionFactory();
}
protected void tearDown() throws Exception {
if (sessionFactory != null) {
sessionFactory.close();
}
}
@SuppressWarnings({ "unchecked" })
public void testBasicUsage() {
Session session = sessionFactory.openSession();
session.setDefaultReadOnly(true);
session.beginTransaction();
List result = session.createQuery("from FoodItem2").list();
for (FoodItem2 event : (List<FoodItem2>) result) {
System.out.println(event);
}
session.getTransaction().commit();
session.close();
}
public static void main(String[] args) throws Exception {
A2 a1 = new A2();
a1.setUp();
a1.testBasicUsage();
a1.tearDown();
}
}