<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狂 閱讀(2073) 評論(0)  編輯  收藏 所屬分類: 開源框架

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

    導航

    統計

    常用鏈接

    留言簿(11)

    隨筆分類(48)

    文章分類(29)

    常去逛逛

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近中文字幕免费2019| 亚洲一区二区三区香蕉| 亚洲精品在线免费观看视频| 国产精品1024在线永久免费| 亚洲人成色99999在线观看| 亚洲最大福利视频网站| 亚洲一区二区三区AV无码| 国产乱色精品成人免费视频 | 免费永久国产在线视频| 久草在视频免费福利| 日韩电影免费观看| a级午夜毛片免费一区二区| 羞羞网站免费观看| 亚洲精品国产摄像头| 亚洲av无码片区一区二区三区| 亚洲视频在线免费播放| 西西人体44rt高清亚洲| 久久91亚洲人成电影网站| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲国产成人久久精品99| 国产在线不卡免费播放| 国产成人无码免费视频97| 韩国18福利视频免费观看| 成人AV免费网址在线观看| 成人免费视频69| xx视频在线永久免费观看| 亚洲免费二区三区| 国产精品免费观看| 国产免费毛不卡片| 无码视频免费一区二三区 | 亚洲日韩精品A∨片无码加勒比| 亚洲午夜久久久久久尤物| 亚洲春色另类小说| 亚洲中文久久精品无码1 | 亚洲一区在线免费观看| 久草视频在线免费| 五月婷婷综合免费| 好爽…又高潮了毛片免费看| 拔擦拔擦8x华人免费久久| 免费一级大黄特色大片| 亚洲精品无码成人片在线观看 |