hibernate第一个例子



 hibernate第一个例子

步骤

1  新建web project或者 java project项目

2 添加架包

3 编写hibernate.cfg.xml

 

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
	
		<property name="show_sql">true</property>
		<property name="hbm2ddl.auto">create</property>
		<property name="format_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://localhost:3306/test
		</property>
		<property name="connection.username">root</property>
		<property name="connection.password">***</property>
		<mapping resource="com/***/model/Student.hbm.xml" />
				
	<!--  	oracle 的配置
		<property name="show_sql">true</property>
		<property name="hbm2ddl.auto">create</property>
		<property name="format_sql">true</property>
		<property name="dialect">
			org.hibernate.dialect.OracleDialect
		</property>
		<property name="connection.driver_class">
			oracle.jdbc.driver.OracleDriver
		</property>
		  <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
		
		<property name="connection.url">
			jdbc:oracle:thin:@localhost:1521:XE
		</property>
		<property name="connection.username">root</property>
		<property name="connection.password">**</property>
		<mapping resource="com/***/model/Student.hbm.xml" />
		-->
			
	</session-factory>
</hibernate-configuration>

 

 

4  编写实体类

  单实体

Student.java

package com.***.model;

public class Student {
	private int id;
	private String name;
	private String password;
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

 

5  编写相对应的**.hbm.xml

这里是:Student.hbm.xml

<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
	
<hibernate-mapping package="com.***.model"><!--映射类所在的包-->
  <class name="Student" table="student_hibernate">
   <!-- mysql -->
    <id name="id" column="studentId">
      <generator class="identity"/>
    </id>
    <!-- oracle
    <id name="id" column="ID">   
            <generator class="sequence">   
                <param name="sequence">DEPARTMENT_ID_SEQ</param>   
            </generator>   
        </id>   
  -->
    <property name="name" column="name"  />
    <property name="password" />
  
   </class>    
</hibernate-mapping>

 

6 添加log4j.properties

# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

 

 

 

7  打开数据库

8 添加Test类

Configuration cfg=new Configuration().configure();
          SessionFactory sf=cfg.buildSessionFactory();
       
          Session session= sf.openSession();
          Transaction tx=session.beginTransaction();

          Student s=new Student();
          s.setName("测试1");
          s.setPassword("22");
          
          session.save(s); 
      
          
          session.flush();
          tx.commit();
          session.close();

 

9  测试成功