Hibernate入门配置 
一、建表 <<<<<<<<<<<<<表cat>>>>>>>>>>>>>>>>>>>>>>>>>>>>> CREATE TABLE cat (     cat_id varchar(20) NOT NULL,     NAME varchar(20) NOT NULL,     sex CHAR(1),     weight FLOAT,     PRIMARY KEY (cat_id) ); 
二、po层(系统以cat.hbm.xml为准,一个xml可以写多个class) 
<<<<<<<<<<<<<cat.hbm.xml>>>>>>>>>>>>>>>>>>>>>>> <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> 
<hibernate-mapping> 
    <class name="com.netease.wireless.groupsms.hbnt.po.Cat" table="cat"> 
        <id name="id" type="string" unsaved-value="null" >             <column name="cat_id" sql-type="varchar(20)" not-null="true"/>             <generator class="uuid.hex"/>         </id> 
        <property name="name">             <column name="NAME" sql-type="varchar(20)" not-null="true"/>         </property> 
        <property name="sex"/> 
        <property name="weight"/> 
    </class> 
</hibernate-mapping> 
<<<<<<<<<<<<<Cat.java>>>>>>>>>>>>>>>>>>>>>>>>> package com.netease.wireless.groupsms.hbnt.po; 
public class Cat { 
    private String id;     private String name;     private char sex;     private float weight; 
    public Cat() {     } 
    public String getId() {         return id;     } 
    public void setId(String id) {         this.id = id;     } 
    public String getName() {         return name;     } 
    public void setName(String name) {         this.name = name;     } 
    public char getSex() {         return sex;     } 
    public void setSex(char sex) {         this.sex = sex;     } 
    public float getWeight() {         return weight;     } 
    public void setWeight(float weight) {         this.weight = weight;     } 
    public String toString() {         String strCat = new StringBuffer()             .append(this.getId()).append(", ")             .append(this.getName()).append(", ")             .append(this.getSex()).append(", ")             .append(this.getWeight())             .toString(); 
        return strCat;     } } 
 三、hibernate.cfg.xml (切切不要自己去加属性,基本的就两个connection.datasource和dialect) <property name="connection.username">root</property>        <property name="connection.password">root</property> <property name="connection.provider_class">net.sf.hibernate.connection.DatasourceConnectionProvider</property> <property name="jndi.class">org.gjt.mm.mysql.Driver</property> 
<<<<<<<<<<<<<hibernate.cfg.xml>>>>>>>>>>>>>>>>>>>>>>> <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC           "-//Hibernate/Hibernate Configuration DTD 2.0//EN"           "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> 
<!-- DO NOT EDIT: This is a generated file that is synchronized --> <!-- by MyEclipse Hibernate tool integration.                   --> <hibernate-configuration> 
    <session-factory>         <!-- properties -->         <property name="connection.datasource">java:comp/env/jdbc/test</property>         <property name="show_sql">true</property>         <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>               <!-- mapping files -->   <mapping resource="com/netease/wireless/groupsms/hbnt/po/cat.hbm.xml"/>        </session-factory> 
</hibernate-configuration> 
四、测试servlet 
//Session生成/关闭 <<<<<<<<<<<<<HibernateUtil.java>>>>>>>>>>>>>>>>>>>>>>> 
package com.netease.wireless.groupsms.hbnt.util; import net.sf.hibernate.HibernateException; import net.sf.hibernate.Session; import net.sf.hibernate.cfg.Configuration; 
/**  * Configures and provides access to Hibernate sessions, tied to the  * current thread of execution.  Follows the Thread Local Session  * pattern, see {@link http://hibernate.org/42.html}.  */ public class HibernateUtil { 
    /**       * Location of hibernate.cfg.xml file.      * NOTICE: Location should be on the classpath as Hibernate uses      * #resourceAsStream style lookup for its configuration file. That      * is place the config file in a Java package - the default location      * is the default Java package.<br><br>      * Examples: <br>      * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml".       * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code>       */     private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";//hibernate.cfg.xml 
    /** Holds a single instance of Session */     private static final ThreadLocal threadLocal = new ThreadLocal(); 
    /** The single instance of hibernate configuration */     private static final Configuration cfg = new Configuration(); 
    /** The single instance of hibernate SessionFactory */     private static net.sf.hibernate.SessionFactory sessionFactory; 
    /**      * Returns the ThreadLocal Session instance.  Lazy initialize      * the <code>SessionFactory</code> if needed.      *      *  @return Session      *  @throws HibernateException      */     public static Session currentSession() throws HibernateException {         Session session = (Session) threadLocal.get(); 
        if (session == null) {             if (sessionFactory == null) {                 try {                     cfg.configure(CONFIG_FILE_LOCATION);                     //cfg.configure();                     sessionFactory = cfg.buildSessionFactory();                 }                 catch (Exception e) {                     System.err.println("%%%% Error Creating SessionFactory %%%%");                     System.err.println("|||||||||||||" + e.getMessage());                     e.printStackTrace();                 }             }             session = sessionFactory.openSession();             threadLocal.set(session);         } 
        return session;     } 
    /**      *  Close the single hibernate session instance.      *      *  @throws HibernateException      */     public static void closeSession() throws HibernateException {         Session session = (Session) threadLocal.get();         threadLocal.set(null); 
        if (session != null) {             session.close();         }     } 
    /**      * Default constructor.      */     private HibernateUtil() {     } 
} 
 <<<<<<<<<<<<<测试HbntTestSvlt.java>>>>>>>>>>>>>>>>>>>>>>> 
/*  *   * @(#)CorpSMS.corpsms V1.0 2005-1-15  * Copyright 2003 NetEase, Inc. All rights reserved.  *   * coder: sweater   * email: [email protected]  *   * graphic designer:  * email:  *  * fuction:向电话薄中添加组和电话号码  *   */ 
package com.netease.wireless.groupsms.vo; 
import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; 
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 
import net.sf.hibernate.HibernateException; import net.sf.hibernate.Query; import net.sf.hibernate.Session; import net.sf.hibernate.Transaction; 
import com.netease.wireless.groupsms.hbnt.po.Cat; import com.netease.wireless.groupsms.hbnt.util.HibernateUtil; /**  *  * @author sweater  */ public class HbntTestSvlt extends HttpServlet { 
    /**      * Constructor of the object.      */     public HbntTestSvlt() {         super();     } 
    /**      * Destruction of the servlet. <br>      */     public void destroy() {         super.destroy(); // Just puts "destroy" string in log         // Put your code here     } 
    /**      * The doGet method of the servlet. <br>      *      * This method is called when a form has its tag value method equals to get.      *       * @param request the request send by the client to the server      * @param response the response send by the server to the client      * @throws ServletException if an error occurred      * @throws IOException if an error occurred      */     public void doGet(HttpServletRequest request, HttpServletResponse response)             throws ServletException, IOException { 
        response.setContentType("text/html");         PrintWriter out = response.getWriter(); 
        out.println("<html>");         out.println("<head>");      out.println("<title>Hello Hibernate</title>");         out.println("</head>");         out.println("<body>");      out.println("Hello Hibernate!<br>"); 
        try {             Session session = HibernateUtil.currentSession(); 
            Transaction tx = session.beginTransaction(); 
            Query query = session.createQuery("select cat from Cat as cat where cat.sex = :sex");             query.setCharacter("sex", 'F'); 
            for (Iterator it = query.iterate(); it.hasNext();) {                 Cat cat = (Cat) it.next();                 out.println("Cat: " + cat.toString() + "<br>");             } 
            tx.commit(); 
            HibernateUtil.closeSession();         } catch (HibernateException e) {             System.out.println(e.getMessage());             //System.out.println(e.printStackTrace());         } 
        out.println("</body>");         out.println("</html>");     } 
    /**      * The doPost method of the servlet. <br>      *      * This method is called when a form has its tag value method equals to post.      *       * @param request the request send by the client to the server      * @param response the response send by the server to the client      * @throws ServletException if an error occurred      * @throws IOException if an error occurred      */     public void doPost(HttpServletRequest request, HttpServletResponse response)             throws ServletException, IOException { 
        response.setContentType("text/html");         PrintWriter out = response.getWriter();         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");         out.println("<HTML>");         out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");         out.println("  <BODY>");         out.print("    This is ");         out.print(this.getClass());         out.println(", using the POST method");         out.println("  </BODY>");         out.println("</HTML>");         out.flush();         out.close();     } 
    /**      * Returns information about the servlet, such as       * author, version, and copyright.       *      * @return String information about this servlet      */     public String getServletInfo() {         return "This is my default servlet created by Eclipse";     } 
    /**      * Initialization of the servlet. <br>      *      * @throws ServletException if an error occure      */     public void init() throws ServletException {         // Put your code here     } 
} 
 <<<<<<<<<<<<<该servlet使用时的web.xml>>>>>>>>>>>>>>>>>>>>>>> 
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4"   xmlns="http://java.sun.com/xml/ns/j2ee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   <servlet>     <description>hbnttest</description>     <display-name>hbnttest</display-name>     <servlet-name>HbntTestSvlt</servlet-name>     <servlet-class>com.netease.wireless.groupsms.vo.HbntTestSvlt</servlet-class>   </servlet> 
  <servlet-mapping>     <servlet-name>HbntTestSvlt</servlet-name>     <url-pattern>/servlet/HbntTestSvlt</url-pattern>   </servlet-mapping> 
</web-app>  
 
  |