秦鼎科技
  您的位置  您现在的位置: 秦鼎科技有限公司 >> 最新动态 >> 首页
 
  课程详情
·JAVA就业启航培训课程
·JAVA高薪就业培训课程
·JAVA外企就业高级课程
·Sun认证SCPJ2培训课程
·Oracle数据库管理员课程
·Unix/Linux系统工程师课程
·JAVA手机游戏开发课程
·J2ME移动应用工程师课程
 
秦鼎优势
·丰富的课程体系   
·强大的师资阵容   
·真实的研发项目   
·完善的就业保障   
·先进的教学理念   
·高档的电脑设备   
·舒适的教学环境   
·人性的管理模式   
 
资源站点
·J2SE   
·J2EE   
·J2ME   
·STRUTS   
·HIBERNATE   
·SPRING   
·TAPESTRY   
·IBATIS   
 
 
 
 
Eclipse下Hibernate入门
浏览次数: 230   作者:--   创建时间:2007-12-26 11:47:21   文章来源:转贴
 

最近boss让做项目,借机学习了一下Hibernate,小有收获。
     hiberante是对数据库持久层访问的一种机制,hibernate的应用可以使程序员将重点放到业务逻辑的实现上。hibernate的原理是将数据库结构封装,使程序员可以像使用普通对象一样调用数据库的相关接口,从实现数据库的相关操作。 
     由于Exadel基于eclipse集成了Hibernate,并且方便易用所以我选用 
     Exadel+Mysql
     还需要hibernate3.jar http://www.hibernate.org
             mysql-connector http://dev.mysql.com/downloads/
       在Mysql中新建test数据库(Mysql其实有个空的test数据库),然后新建下面的Table 
create table user (
 id int(10) not null auto_increment primary key,
 name varchar(20) not null,
 password varchar(20) not null,
 email varchar(50),
 address varchar(100)
)type=innodb;

新建Java Project,将Mysql_Driver,Hibernate两个user library添加到该工程的java build path中。
新建与数据表对应的POJO类:User和Contact
/**
 * 
 *  
 */
package com.user;

/**
 * @author lzy
 *
 */
public class User{
    private Integer id;
    private String name;
    private String password;
    private Contact contact;
 /**
  * @return Returns the id.
  */
 public Integer getId() {
  return id;
 }
 /**
  * @param id The id to set.
  */
 public void setId(Integer id) {
  this.id = id;
 }
 /**
  * @return Returns the name.
  */
 public String getName() {
  return name;
 }
 /**
  * @param name The name to set.
  */
 public void setName(String name) {
  this.name = name;
 }
 /**
  * @return Returns the password.
  */
 public String getPassword() {
  return password;
 }
 /**
  * @param password The password to set.
  */
 public void setPassword(String password) {
  this.password = password;
 }
 /**
  * @return Returns the contact.
  */
 public Contact getContact() {
  return contact;
 }
 /**
  * @param contact The contact to set.
  */
 public void setContact(Contact contact) {
  this.contact = contact;
 } 
}
/**
 * 
 */
package com.user;
/**
 * @author lzy
 *
 */
public class Contact {
 private String email;
    private String address;

 /**
  * @return Returns the address.
  */
 public String getAddress() {
  return address;
 }
 /**
  * @param address The address to set.
  */
 public void setAddress(String address) {
  this.address = address;
 }
 /**
  * @return Returns the email.
  */
 public String getEmail() {
  return email;
 }
 /**
  * @param email The email to set.
  */
 public void setEmail(String email) {
  this.email = email;
 }
}

添加Hibernate支持,这时系统会要求输入一些信息,按提示即可
完成后系统自动生成hibernate.cfg.xml,User.hbm.xml
映射文件必须稍作修改。

hibernate.cfg.xml

    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    
  
  jdbc:mysql://localhost/test
  com.mysql.jdbc.Driver
  
  
  
  
        org.hibernate.dialect.MySQLDialect
        True
        org.hibernate.transaction.JDBCTransactionFactory
     
    


User.hbm.xml


 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >


 
  
   
  

     name="Name"
   column="name"
   type="string"
   not-null="true"
   length="20"
  />
     name="Password"
   column="password"
   type="string"
   not-null="true"
   length="20"
  />
  
      name="Email"
   column="email"
   type="string"
   not-null="false"
   length="50"
  />
     name="Address"
   column="address"
   type="string"
   not-null="false"
   length="100"
  />
  
 
 


3.测试 
添加一个测试类:HibernateTest

package com.user;

import java.util.List;
import java.util.ListIterator;

import org.hibernate.*;
import org.hibernate.cfg.*;

public class HibernateTest {
    public static void main(String[] args) throws HibernateException {
        SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
        //testInsert(sessionFactory);
        testQuery(sessionFactory);
        sessionFactory.close();
        
    }
    public static void testInsert( SessionFactory sessionFactory )throws HibernateException {
     
      Session session = sessionFactory.openSession();
        Transaction tx= session.beginTransaction();
        User user = new User();
        Contact contact=new Contact();
        contact.setEmail("email");
        contact.setAddress("address");
        
        user.setName("caterpillar");
        user.setPassword("password");
        user.setContact(contact);
        
        session.save(user);
        tx.commit();
        session.close();
        System.out.println("OK!");
   }
    
    public static void testQuery( SessionFactory sessionFactory )throws HibernateException {
     
     Session session = sessionFactory.openSession();
        Transaction tx= session.beginTransaction();
        User user = new User();
        Contact contact=new Contact();
                  
        Query query=session.createQuery("from User as user");
        //query.setCharacter(1, 'M');
        List names =query.list();
        for(ListIterator it=names.listIterator();it.hasNext();){
           user= (User)it.next();
           System.out.println("Id: " + user.getId());
            System.out.println("name: " + user.getName());
            System.out.println("password: " + user.getPassword());
            if(user.getContact()!=null){
             
             if(user.getContact().getEmail()!=null){
              System.out.println("Email: " + user.getContact().getEmail());
             }
             if(user.getContact().getAddress()!=null){
              System.out.println("Address: " + user.getContact().getAddress());
                
             }
            }          
        }
        tx.commit();
        session.close();
     
    }
}

 

秦鼎科技
版权所有 Copyright 2004-2008 秦鼎科技有限公司
地址:海淀区紫竹院路曙光花园智业园A座8C

电话:010-88465543、88465635

Email:qinpower2006@163.com
返回顶端