<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    用hibernate3實現增刪改查

    程序結構圖

    SQLServer中的表設計

    db.HibernateUtil
    package db;

    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.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>
         * Defaults: <br>
         * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml"</code> You can
         * change location with setConfigFile method session will be rebuilded after
         * change of config file
         
    */

        
    private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";

        
    private static final ThreadLocal threadLocal = new ThreadLocal();

        
    private static Configuration configuration = new Configuration();

        
    private static SessionFactory sessionFactory;

        
    private static String configFile = CONFIG_FILE_LOCATION;

        
    private HibernateUtil()
        
    {
        }


        
    /**
         * Returns the ThreadLocal Session instance. Lazy initialize the
         * <code>SessionFactory</code> if needed.
         * 
         * 
    @return Session
         * 
    @throws HibernateException
         
    */

        
    public static Session getCurrentSession() throws HibernateException
        
    {
            Session session 
    = (Session) threadLocal.get();

            
    if (session == null || !session.isOpen())
            
    {
                
    if (sessionFactory == null)
                
    {
                    rebuildSessionFactory();
                }

                session 
    = (sessionFactory != null? sessionFactory.openSession()
                        : 
    null;
                threadLocal.set(session);
            }


            
    return session;
        }


        
    /**
         * Rebuild hibernate session factory
         * 
         
    */

        
    public static void rebuildSessionFactory()
        
    {
            
    try
            
    {
                configuration.configure(configFile);
                sessionFactory 
    = configuration.buildSessionFactory();
            }
     catch (Exception e)
            
    {
                System.err.println(
    "%%%% Error Creating SessionFactory %%%%");
                e.printStackTrace();
            }

        }


        
    /**
         * Close the single hibernate session instance.
         * 
         * 
    @throws HibernateException
         
    */

        
    public static void closeCurrentSession() throws HibernateException
        
    {
            Session session 
    = (Session) threadLocal.get();
            threadLocal.set(
    null);

            
    if (session != null)
            
    {
                session.close();
            }

        }


        
    /**
         * return session factory
         * 
         
    */

        
    public static SessionFactory getSessionFactory()
        
    {
            
    return sessionFactory;
        }


        
    /**
         * return session factory
         * 
         * session factory will be rebuilded in the next call
         
    */

        
    public static void setConfigFile(String configFile)
        
    {
            HibernateUtil.configFile 
    = configFile;
            sessionFactory 
    = null;
        }


        
    /**
         * return hibernate configuration
         * 
         
    */

        
    public static Configuration getConfiguration()
        
    {
            
    return configuration;
        }


    }
    model.User
    package model;

    public class User
    {
        
    private Integer id;

        
    private String username;

        
    private String password;
        
    public User()
        
    {
            
        }


        
    public User( String password)
        
    {
            
    this.password = password;
        }


        
    public Integer getId()
        
    {
            
    return id;
        }


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


        
    public String getPassword()
        
    {
            
    return password;
        }


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


        
    public String getUsername()
        
    {
            
    return username;
        }


        
    public void setUsername(String username)
        
    {
            
    this.username = username;
        }

    }

    model.hbm.xml
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-mapping PUBLIC
              "-//Hibernate/Hibernate mapping DTD 2.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    >
    <hibernate-mapping>
    <class name="model.User" table="user1" >
    <id name="id">
    <generator class="identity"/>
    </id>
    <property name="username"/>
    <property name="password"/>
    </class>
    </hibernate-mapping>
    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"
    >

    <!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>

    <session-factory>
        
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
        
    <property name="connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=login</property>
        
    <property name="connection.username">lzqdiy</property>
        
    <property name="connection.password">lzqdiy</property>
        
    <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        
    <property name="myeclipse.connection.profile">conn2</property>
        
    <mapping resource="model/model.hbm.xml" />
    </session-factory>

    </hibernate-configuration>
    HibernateTest

    import java.util.Iterator;
    import java.util.List;

    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import model.User;
    import db.HibernateUtil;

    public class HibernateTest
    {

        
    /**
         * 
    @param args
         * 
    @throws HibernateException
         
    */

        
    public void insertUser() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            User user 
    = new User();
            user.setUsername(
    "lzqdiy");
            user.setPassword(
    "lzqdiy");
            session.save(user);
            tx.commit();
            HibernateUtil.closeCurrentSession();
            System.out.println(
    "新增成功!");
        }


        
    public List getUsers() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            String hql 
    = "select new User(password) from model.User  where username=:name";
            Query query 
    = session.createQuery(hql);
            query.setString(
    "name""lzqdiy");
            List list 
    = query.list();
            tx.commit();
            HibernateUtil.closeCurrentSession();
            
    return list;
        }

        
    public void updateUsers() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            String hql 
    = "update  User  set password='gm' ";
            Query query 
    = session.createQuery(hql);
            query.executeUpdate();
            tx.commit();
            HibernateUtil.closeCurrentSession();
            System.out.println(
    "更新成功!");
        }

        
    public void deleteUsers() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            String hql 
    = "delete  User  where id=1";
            Query query 
    = session.createQuery(hql);
            query.executeUpdate();
            tx.commit();
            HibernateUtil.closeCurrentSession();
            System.out.println(
    "刪除成功!");
        }


        
    public static void main(String[] args) 
        
    {
            
    // TODO Auto-generated method stub
            new HibernateTest().insertUser();
            
    new HibernateTest().updateUsers();
            
    new HibernateTest().deleteUsers();
            List list 
    = new HibernateTest().getUsers();
            
    for (Iterator iter = list.iterator(); iter.hasNext();)
            
    {
                User user 
    = (User) iter.next();
                System.out.println(user.getPassword());
            }

        }

    }

    其中使用的hql語句比較初級,大家不要見笑,以后我將做深入的研究。
    補充:其實對于更新和刪除并不需要使用hql就可以實現。
    將HibernateTest更改如下,同樣可以實現更新和刪除。

    import java.util.Iterator;
    import java.util.List;

    import org.hibernate.HibernateException;
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import model.User;
    import db.HibernateUtil;

    public class HibernateTest
    {

        
    /**
         * 
    @param args
         * 
    @throws HibernateException
         
    */

        
    public void insertUser() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            User user 
    = new User();
            user.setUsername(
    "lzqdiy");
            user.setPassword(
    "lzqdiy");
            session.save(user);
            tx.commit();
            HibernateUtil.closeCurrentSession();
            System.out.println(
    "新增成功!");
        }


        
    public List getUsers() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            String hql 
    = "select new User(password) from model.User  where username=:name";
            Query query 
    = session.createQuery(hql);
            query.setString(
    "name""lzqdiy");
            List list 
    = query.list();
            tx.commit();
            HibernateUtil.closeCurrentSession();
            
    return list;
        }

        
    public void updateUsers() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            User user
    =new User();
            user.setId(
    new Integer(1));
            user.setUsername(
    "lzqdiy");
            user.setPassword(
    "gm");
            session.saveOrUpdate(user);
            tx.commit();
            HibernateUtil.closeCurrentSession();
            System.out.println(
    "更新成功!");
        }

        
    public void deleteUsers() 
        
    {
            Session session 
    = HibernateUtil.getCurrentSession();
            Transaction tx 
    = session.beginTransaction();
            User user
    =new User();
            user.setId(
    new Integer(1));
            session.delete(user);
            tx.commit();
            HibernateUtil.closeCurrentSession();
            System.out.println(
    "刪除成功!");
        }


        
    public static void main(String[] args) 
        
    {
            
    // TODO Auto-generated method stub
            new HibernateTest().insertUser();
            
    new HibernateTest().updateUsers();
            
    new HibernateTest().deleteUsers();
            List list 
    = new HibernateTest().getUsers();
            
    for (Iterator iter = list.iterator(); iter.hasNext();)
            
    {
                User user 
    = (User) iter.next();
                System.out.println(user.getPassword());
            }

        }

    }



    posted on 2007-06-10 16:40 我為J狂 閱讀(2072) 評論(0)  編輯  收藏 所屬分類: 開源框架

    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    常用鏈接

    留言簿(11)

    隨筆分類(48)

    文章分類(29)

    常去逛逛

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 青青草国产免费久久久下载| 免费毛片a在线观看67194| 午夜免费福利在线观看| 亚洲人成人77777在线播放| 久久久久久夜精品精品免费啦| 亚洲乱码精品久久久久..| 精品免费久久久久国产一区 | 亚洲综合男人的天堂色婷婷| 亚洲免费观看视频| 情人伊人久久综合亚洲| 免费看无码特级毛片| 亚洲成a人片在线观看无码专区| 黄色网站软件app在线观看免费| 国产AV无码专区亚洲AVJULIA | 亚洲成人免费网站| 美女视频黄的全免费视频| 亚洲欧洲日韩在线电影| 成人免费毛片内射美女-百度| 亚洲日韩中文字幕一区| 国产高清视频在线免费观看| 国产99久久亚洲综合精品| 亚洲精品成人区在线观看| 好紧我太爽了视频免费国产| 亚洲日韩中文字幕天堂不卡| AV片在线观看免费| 日产久久强奸免费的看| 好看的亚洲黄色经典| 在线观看AV片永久免费| 自拍偷自拍亚洲精品偷一| 久久亚洲欧洲国产综合| 99久久免费看国产精品| 亚洲人成人伊人成综合网无码| 免费看国产一级片| 午夜影院免费观看| 亚洲精品成a人在线观看夫| 亚洲日本一区二区一本一道 | 色偷偷亚洲第一综合网| 亚洲中文字幕久久精品无码喷水| 日韩免费无码视频一区二区三区 | 国产亚洲综合久久| 亚洲国产另类久久久精品|