肝 hibernate 配置and增刪改查 and 測試

來源:互聯網
上載者:User

標籤:set   factor   文章   doctype   integer   XML   void   開始   his   

  已經通宵三天擼代碼了,現在的我已經養成晚上修仙寫代碼的節奏了.....最近 剛剛複習到了 hibernate 談談 這篇文章就談談我對這貨的理解吧.

在看這篇文章之前希望你 知道sessionfactory 和session 還有 transaction(事物) 誒嘿不造的可以去看看http://blog.csdn.net/u012377333/article/details/48086193

   OK正題開始 步驟 我們需要一個可以持久化的bean類 還有它的附屬映射 hbm.xml檔案 以及dao(重要)  and 測試類別 

首先開始是bean類代碼如下:

  

package qy.java.bean;public class Userbean {    private int id;    private String username;    private String password;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public String toString() {        return "Userbean{" +                "id=" + id +                ", username=‘" + username + ‘\‘‘ +                ", password=‘" + password + ‘\‘‘ +                ‘}‘;    }}

其次是他的對應檔

  

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="qy.java.bean">    <class name="Userbean" table="x_user">        <id name="id" type="int" column="id">            <generator class="native"/>        </id>        <property name="username" type="string" column="username" length="20"/>        <property name="password" type="string" column="password" length="20"/>    </class></hibernate-mapping>

這裡要說一個 在主設定檔裡面我沒有配置自動建表的那貨= = 所以我是直接手動 建表 有興趣的同學可以自己去配置

  然後是dao類   裡麵包括增刪改查 已經苟 對象id算是買4送一吧,哦對了 我這種初始方法是比較老的一種方法 新的初始化方法在下面

package qy.java.dao;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.query.Query;import qy.java.bean.Userbean;import java.util.List;public class Userdao {    private static SessionFactory sf;    static {        Configuration cfg = new Configuration().configure("hibernate.cfg.xml");        sf = cfg.buildSessionFactory();// 獲得會話工廠    }    // 增加    public void add(Userbean user) {        // 讀設定檔,會        Session s = sf.openSession();        Transaction t = null;        try {            t = s.beginTransaction();            s.save(user); //持久化 對象            t.commit(); //提交        } catch (Exception e) {            t.rollback(); //復原            throw new RuntimeException(e);        } finally {            s.close();        }    }    // 更新    public void update(Userbean user) {        // 讀設定檔,會        Session s = sf.openSession();        Transaction t = null;        try {            t = s.beginTransaction();            s.update(user);            // s.update("username", user);            t.commit();        } catch (Exception e) {            t.rollback();            throw new RuntimeException(e);        } finally {            s.close();        }    }    //刪除    public void delete(int id) {        // 讀設定檔,會        Session s = sf.openSession();        Transaction t = null;        try {            t = s.beginTransaction();            // User user = (User) s.get(User.class, id);            Userbean user = new Userbean();            user.setId(id);            s.delete(user);            t.commit();        } catch (Exception e) {            t.rollback();            throw new RuntimeException(e);        } finally {            s.close();        }    }    //查詢所有    public List<Userbean> findALL() {        // 讀設定檔,會        Session s = sf.openSession();        List<Userbean> list = null;        try {            list = s.createQuery("FROM Userbean").list();            /*Criteria c = s.createCriteria(User.class);            list = c.list();*/        } catch (Exception e) {            throw e;        } finally {            s.close();        }        return list;    }    //返回 id = =    public long findUserCount() {        //int  double  ,integer Double  char   Charset        Session s = sf.openSession();        Long count = null;        try {            count  = (Long) s.createQuery("SELECT COUNT(*) FROM Userbean ")//                    .uniqueResult();        } catch (Exception e) {            throw e;        } finally {            s.close();        }        return count;    }}

這個是新的初始化方法 

package qy.java.dao;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import qy.java.bean.Userbean;public class Foxdao {    private static  SessionFactory sf;    static {        try {            Configuration configuration = new Configuration();            configuration.configure();            sf = configuration.buildSessionFactory();        } catch (Throwable ex) {            throw new ExceptionInInitializerError(ex);        }    }    // 增加    public void add(Userbean user) {        // 讀設定檔,會        Session s = sf.openSession();        Transaction t = null;        try {            t = s.beginTransaction();            s.save(user); //持久化 對象            t.commit(); //提交        } catch (Exception e) {            t.rollback(); //復原            throw new RuntimeException(e);        } finally {            s.close();        }    }}

然後了是測試 方法= = 仁慈的我還給發測試.....

package test.qy.java.dao; import org.junit.Test; import org.junit.Before; import org.junit.After;import qy.java.bean.Userbean;import qy.java.dao.Userdao;import java.util.Iterator;import java.util.List;/** * Userdao Tester. * * @author <Authors name> * @since <pre>???? 20, 2017</pre> * @version 1.0 */ public class UserdaoTest { @Beforepublic void before() throws Exception { } @Afterpublic void after() throws Exception { } /** * * Method: add(Userbean user) * */ @Testpublic void testAdd() throws Exception {    Userbean user = new Userbean();    user.setPassword("wqerwqer");    user.setUsername("zhangsan");        new Userdao().add(user);} @Testpublic void updel(){    Userbean userbean = new Userbean();        userbean.setId(1);        userbean.setUsername("滑稽");        userbean.setPassword("10086");         new Userdao().update(userbean);}@Testpublic void delet(){    new Userdao().delete(2);}@Test    public void file(){       List<Userbean> list =new Userdao().findALL();        Iterator<Userbean> it = list.iterator();            Userbean user = null;            while (it.hasNext()){                user = it.next();                System.out.println(user.getUsername());            }    }@Test    public void testFindAllUserCount(){        long count =new Userdao().findUserCount();            System.out.println(count);}} 

增刪改查雖然簡單 但是這些都是基礎 就像 功夫裡面的蹲馬步 跑步一樣 靈活運用 才能發揮他們真正的實力 相互之間的配合 結合自己的所需才能 實現作用 最大化..

  emmm寫完了 剛開始搭建環境的時候出現 hibernate的不相容我這個 jdk1.7原因是hibernate的版本太高了 = =然後我又懶 所以我就去下了一個1.8明明 十多分鐘 能搞定的事情用了 一個多小時...氣死歐蕾.

  

肝 hibernate 配置and增刪改查 and 測試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.