当前位置:首页 > 开发 > 编程语言 > Hibernate > 正文

Hibernate基础教程学习笔记(1)

发表于: 2008-04-15   作者:dongwei_6688   来源:转载   浏览次数:
摘要: 第三章的第一个示例,主要功能为完成对Message信息的保存和查询出所有Message的列表。 目录结构如下:--src    |----sample    |        |----entity    | 

第三章的第一个示例,主要功能为完成对Message信息的保存和查询出所有Message的列表。

目录结构如下:
--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:

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 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:

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:

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:

### 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 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>

 

Hibernate基础教程学习笔记(1)

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
这篇笔记的主要内容:ajax简介,XMLHttpRequest对象使用。 1. Ajax不只是一个特定的技术,更应算是
这篇笔记的主要内容:ajax简介,XMLHttpRequest对象使用。 1. Ajax不只是一个特定的技术,更应算是
原文链接 引子 面向对象程序设计中对于类、继承、多态、组成、聚合等概念和关系数据中的表、主键、
首先要感谢满江红社区:)给我们翻译了大量高质量的文档,我学习hibernate的文档资料主要来自他们的
(一)第一个例子 零、说明   这个例子参考了<Hibernate Reference Documentation 3.6.10.Fina
上一篇关于hibernate学习笔记一,主要是作为hibernate的入门知识。没有和spring发生任何关系,这一
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序
第1课 课程内容. 6 第2课Hibernate UML图. 6 第3课 风格. 7 第4课 资源. 7 第5课 环境准备. 7 第6课
HQL 注意事项: 1.请把以前sql中的表名换成类名,把字段名换成属性名。注意我不是说HQL里的类名都是
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号