Hibernate基础学习一

来源:互联网 发布:腾讯淘宝精选 编辑:程序博客网 时间:2024/06/14 10:53

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

原创粉丝点击