<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)

    常去逛逛

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91大神免费观看| 亚洲专区中文字幕| 亚洲日本中文字幕天堂网| 国产免费人成在线视频| 国产乱子伦精品免费无码专区| 国产在线观看麻豆91精品免费| 亚洲欧洲精品在线| 免费成人在线观看| 青青草原亚洲视频| 国产h视频在线观看网站免费| 国产成人免费爽爽爽视频| 国产麻豆免费观看91| 男女啪啪免费体验区| 两个人看的www高清免费视频| 免费国产污网站在线观看| 最近高清中文字幕免费| 国产成人高清精品免费鸭子 | 亚洲第一成年免费网站| 又黄又爽无遮挡免费视频| 久久精品国产精品亚洲色婷婷| 亚洲日本人成中文字幕| 37pao成人国产永久免费视频| 亚洲视频手机在线| 国产亚洲精aa在线看| 三年片免费高清版| 亚洲A∨精品一区二区三区下载 | 亚洲国产香蕉人人爽成AV片久久 | 97无码人妻福利免费公开在线视频 | 免费人成在线观看视频播放| 亚洲免费视频网站| 免费国产黄网站在线看| 99久久综合国产精品免费| 亚洲成A人片777777| 久久精品国产亚洲av品善| 国色精品卡一卡2卡3卡4卡免费| 日本免费在线中文字幕| 99久久久国产精品免费蜜臀| 免费A级毛片无码A∨免费| 亚洲成a人片在线观看无码专区| 免费夜色污私人影院网站电影| 日本v片免费一区二区三区|