目录结构如下:
--src
|----sample
| |----entity
| | |----Message.java
| | |----Message.hbm.xml
| |
| |----ListMessages.java
| |----PopulateMessages.java
|
|----log4j.properties
|----hibernate.cfg.xml
需要用到的类库有:antlr.jar、asm.jar、cglib.jar、commons-collections.jar、commons-logging.jar、dom4j.jar、hibernate3.jar、jta.jar、log4j.jar、mysql-connector-java-bin.jar
用到的相关sql:
DROP database IF exists hibernate_test;
CREATE database hibernate_test;
use hibernate_test;
create table message(
id int(11) auto_increment,
message char(100),
primary key(id)
);
Message.java:
Java代码
package sample.entity;
public class Message {
private String message;
public Message(String message) {
this.message = message;
}
Message() {
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
}
package sample.entity;
public class Message {
private String message;
public Message(String message) {
this.message = message;
}
Message() {
}
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
}
Message.hbm.xml:
Xml代码
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sample.entity.Message" table="message">
<id column="id" unsaved-value="-1" type="long">
<generator class="native" />
</id>
<property name="message" column="message" type="string" />
</class>
</hibernate-mapping>
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="sample.entity.Message" table="message">
<id column="id" unsaved-value="-1" type="long">
<generator class="native" />
</id>
<property name="message" column="message" type="string" />
</class>
</hibernate-mapping>
PopulateMessages.java:
Java代码
package sample;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import sample.entity.Message;
public class PopulateMessages {
public static void main(String[] args) {
System.out.println("start...............");
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
Message m1 = new Message("Hibernated a message on " + new Date());
session.save(m1);
session.getTransaction().commit();
session.close();
System.out.println("end...............");
}
}
package sample;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import sample.entity.Message;
public class PopulateMessages {
public static void main(String[] args) {
System.out.println("start...............");
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
Message m1 = new Message("Hibernated a message on " + new Date());
session.save(m1);
session.getTransaction().commit();
session.close();
System.out.println("end...............");
}
}
ListMessages.java:
Java代码
package sample;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import sample.entity.Message;
public class ListMessages {
public static void main(String[] args) {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
List<Message> messages = session.createQuery("from Message").list();
System.out.println("Found " + messages.size() + " message(s):");
Iterator<Message> i = messages.iterator();
while (i.hasNext()) {
Message msg = i.next();
System.out.println(msg.getMessage());
}
session.close();
}
}
package sample;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import sample.entity.Message;
public class ListMessages {
public static void main(String[] args) {
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
List<Message> messages = session.createQuery("from Message").list();
System.out.println("Found " + messages.size() + " message(s):");
Iterator<Message> i = messages.iterator();
while (i.hasNext()) {
Message msg = i.next();
System.out.println(msg.getMessage());
}
session.close();
}
}
log4j.properties:
Java代码
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=info
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
log4j.logger.org.hibernate.tool.hbm2ddl=debug
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=info
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
log4j.logger.org.hibernate.tool.hbm2ddl=debug hibernate.cfg.xml:
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.url">
jdbc:mysql://localhost/hibernate_test
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.pool_size">0</property>
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!-- You will usually want to set this to true while debugging Hibernate queries -->
<property name="hibernate.show_sql">true</property>
<!-- "Import" the mapping resources here -->
<mapping resource="sample/entity/Message.hbm.xml" />
</session-factory>
</hibernate-configuration>
分享到:
相关推荐
Java框架中关于hibernate的基础学习
本资源是 学习Hibernate 的时候写的源码 ,有兴趣的可以下载下来看看
本ppt是传智播客的教学ppt,对学习和复习Hibernate 基础有很大的帮助。
hibernate3学习总结hibernate3学习总结hibernate3学习总结hibernate3学习总结
内容涵盖安装 Hibernatetools 插件、Session 核心方法、持久化对象生命周期、对象关系映射、检索策略、检索方式、Hibernate 一\二级缓存、管理 Session、批量处理等 Hibernate 企业级开发的核心技术。
用Struts+Hibernate实现增,删,改,查基本功能,代码简单,学习快捷
Hibernate3中文参考手册,很好的hibernate基础学习资料
hibernate hibernate入门 hibernate学习 hibernate基础
hibernate基础学习对于初学hibernate的人很有帮助
1. 熟悉Hibernate框架和相关配置文件; 2. 熟悉DAO模式,以及Hibernate实现的DAO代码; 3. Hibernate实现分页查询。
4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ... 风格 1 先脉络,后细节 2 先操作,后原理 3 重Annotation,轻xml配置文件 ... 性能优化 1 注意...
Spring+Struts+Hibernate 0基础学习查询,增加,下拉框查询,一看就会,适合初学者!
希望能对大家学习 Hibernate 提供帮助. 这是第一篇, 内容如下: 了解基于B/S的三层架构; 了解持久化层-O/R Mapping ;理解Java持久化层技术Hibernate; 学习Hibernate的开发步骤;学习Hibernate的重要接口
Hibernate框架的学习课件,PPT格式的。有需要的分享啦!
《精通Hibernate》学习-对象关系映射基础.zip
第10课 模拟Hibernate原理(OR模拟) 第11课 Hibernate基础配置 第16课 关系映射(重点 Annotation注解)
struts与hibernate集成原理,基础知识补充AOP,编程式事务,声明式事务,spring注入学习笔记
对hibernate一些用法的总结..
示例中包括:基于底层的JDBC对数据库的操作和利用hibernate对数据库操作的对比,其中hibernate的实体关系映射包括(一对多,多对多)还有与Spring的整合例子。