hibernate 入门

来源:互联网 发布:法属圭亚那 知乎 编辑:程序博客网 时间:2024/05/01 22:44

 

环境复杂,垃圾一大堆:

TOMCAT5.5

hibernate3.2.5

mysql5.0

proxool0.9

要点一:

web.xml中只加入管理信息,不要启动tomcat就运行pool.让hiber自己去运行.

<servlet>
   <servlet-name>Admin</servlet-name>
   <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
    </servlet>

    <servlet-mapping>
   <servlet-name>Admin</servlet-name>
   <url-pattern>/Admin</url-pattern>
  </servlet-mapping>

要点二:

只需要1个工厂去绑定连接池,所以这个工厂被产生到一个共用的bean中.

如果多个工厂去管理连接池,必然会导致连接池重复调用错误!!!

并为了只有一个工厂,所以工厂代码是static代码,也是为了只有一个工厂实例!!!

要点三:

一个jsp用hibernate的例子

 
<%@ page import="java.text.*"%>
<%@ page import="java.util.*" %>
<%@ page import="org.hibernate.*" %>
<%@ page import="org.hibernate.cfg.*" %>
<%@ page import="po.*" %>
<%@ page contentType="text/html;charset=GB2312" %>

<jsp:useBean id="db" class="po.HibernateUtil" />

<html>
<head></head>
<body>

<% 
  try
  {  
          Calendar cal = Calendar.getInstance();
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   String mDateTime=formatter.format(cal.getTime());
   
   user u1 = new user();  
              u1.setUser_name(mDateTime);
              u1.setUser_pass("6330111");      

   Session mysession = db.getSessionFactory().openSession();
          Transaction tx = mysession.beginTransaction();           
              mysession.save(u1);   //hiber API  to PO  
              tx.commit();        
              mysession.close();
   u1=null; //end

   user u2 = new user();
   Session mys2 = db.getSessionFactory().openSession();
   Transaction tx2 = mys2.beginTransaction();
   u2=(user)mys2.get(user.class,new Integer(30)); //hiber API to PO,注意ID的类型,要一致呀!!
   tx2.commit();        
          mys2.close();
   out.println(u2.getUser_pass());
   u2=null; //end   
   
  }
  catch(Exception e)
         {
             e.printStackTrace();
          }
        
%>
</body>
</html>

 

要点四:

那一个工厂的bean:


package po;

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


public class HibernateUtil
{
public static SessionFactory sessionFactory;

static
 {
  try
  {
  Configuration config = new Configuration();
  config.addClass(user.class); 
  sessionFactory = config.buildSessionFactory();
  }
  catch (Throwable ex)
  {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
 }

public static SessionFactory getSessionFactory()
 {
        return sessionFactory;
    }

 

}