Hibernate在eclipseEE下的教程

来源:互联网 发布:顺丰淘宝买飞机 编辑:程序博客网 时间:2024/06/01 09:40
下载地址:
http://prdownloads.sourceforge.net/hibernate/?sort_by=date&sort=desc


把压缩包下所有jar包导入工程


配置,创建hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
 
 <hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernatetest</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">xbh1362840088</property>
       <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping resource="com/example/Hibernate2/Employee.hbm.xml"/>
     </session-factory>
</hibernate-configuration>


bean
public class Employee { private int id; private String firstName; private String lastName; private int salary; public Employee() {} public Employee(String fname, String lname, int salary) { this.firstName = fname; this.lastName = lname; this.salary = salary; } public int getId() { return id; } public void setId( int id ) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName( String first_name ) { this.firstName = first_name; } public String getLastName() { return lastName; } public void setLastName( String last_name ) { this.lastName = last_name; } public int getSalary() { return salary; } public void setSalary( int salary ) { this.salary = salary; } }


建表语句
create table EMPLOYEE ( id INT NOT NULL auto_increment, first_name VARCHAR(20) default NULL, last_name VARCHAR(20) default NULL, salary INT default NULL, PRIMARY KEY (id) );


创建数据库


创建Employee.hbm.xml
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Employee" table="EMPLOYEE"> <meta attribute="class-description"> This class contains the employee detail. </meta> <id name="id" type="int" column="id"> <generator class="native"/> </id> <property name="firstName" column="first_name" type="string"/> <property name="lastName" column="last_name" type="string"/> <property name="salary" column="salary" type="int"/> </class> </hibernate-mapping>


创建EmployeeManager.java
package com.example.Hibernate2;
import java.util.List;
import java.io.File;
import java.util.Date;
import java.util.Iterator; 


import org.hibernate.HibernateException; 
import org.hibernate.Session; 
import org.hibernate.Transaction;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class EmployeeManager {

private static SessionFactory factory;


public static void main(String[] args) {
// TODO 自动生成的方法存根
try{
factory = new Configuration()
.configure(new File("hibernate.cfg.xml")).buildSessionFactory(); 
        //factory = new Configuration().configure().buildSessionFactory();
     }catch (Throwable ex) { 
        System.err.println("Failed to create sessionFactory object." + ex);
        throw new ExceptionInInitializerError(ex); 
     }
EmployeeManager ME = new EmployeeManager();


     /* Add few employee records in database */
     Integer empID1 = ME.addEmployee("Zara", "Ali", 1000);
     Integer empID2 = ME.addEmployee("Daisy", "Das", 5000);
     Integer empID3 = ME.addEmployee("John", "Paul", 10000);


     /* List down all the employees */
     ME.listEmployees();


     /* Update employee's records */
     ME.updateEmployee(empID1, 5000);


     /* Delete an employee from the database */
     ME.deleteEmployee(empID2);


     /* List down new list of the employees */
     ME.listEmployees();
}


public Integer addEmployee(String fname, String lname, int salary){
     Session session = factory.openSession();
     Transaction tx = null;
     Integer employeeID = null;
     try{
        tx = session.beginTransaction();
        Employee employee = new Employee(fname, lname, salary);
        employeeID = (Integer) session.save(employee); 
        tx.commit();
     }catch (HibernateException e) {
        if (tx!=null) tx.rollback();
        e.printStackTrace(); 
     }finally {
        session.close(); 
     }
     return employeeID;
  }
  /* Method to  READ all the employees */
  public void listEmployees( ){
     Session session = factory.openSession();
     Transaction tx = null;
     try{
        tx = session.beginTransaction();
        List employees = session.createQuery("FROM Employee").list(); 
        for (Iterator iterator = 
                          employees.iterator(); iterator.hasNext();){
           Employee employee = (Employee) iterator.next(); 
           System.out.print("First Name: " + employee.getFirstName()); 
           System.out.print("  Last Name: " + employee.getLastName()); 
           System.out.println("  Salary: " + employee.getSalary()); 
        }
        tx.commit();
     }catch (HibernateException e) {
        if (tx!=null) tx.rollback();
        e.printStackTrace(); 
     }finally {
        session.close(); 
     }
  }
  /* Method to UPDATE salary for an employee */
  public void updateEmployee(Integer EmployeeID, int salary ){
     Session session = factory.openSession();
     Transaction tx = null;
     try{
        tx = session.beginTransaction();
        Employee employee = 
                   (Employee)session.get(Employee.class, EmployeeID); 
        employee.setSalary( salary );
        session.update(employee); 
        tx.commit();
     }catch (HibernateException e) {
        if (tx!=null) tx.rollback();
        e.printStackTrace(); 
     }finally {
        session.close(); 
     }
  }
  /* Method to DELETE an employee from the records */
  public void deleteEmployee(Integer EmployeeID){
     Session session = factory.openSession();
     Transaction tx = null;
     try{
        tx = session.beginTransaction();
        Employee employee = 
                  (Employee)session.get(Employee.class, EmployeeID); 
        session.delete(employee); 
        tx.commit();
     }catch (HibernateException e) {
        if (tx!=null) tx.rollback();
        e.printStackTrace(); 
     }finally {
        session.close(); 
     }
  }
}


拷贝hibernate.cfg.xml到项目根目录下