亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Hibernate總結

2019-11-11 04:45:17
字體:
來源:轉載
供稿:網友

**

hibernate設計及ORM(摘錄)

** ORM:Object–Relation–Mapping對象關系映射

對象指的就是java的實體對象; 關系指的是關系型數據庫。(Oracle、DB2、MySQL、SqlServer) ORM的主要思想就是將程序中的對象和數據庫中的數據實現自動映射 轉換。利用ORM工具,在查詢時,可以自動將記錄封裝成Java對象返 回。在更新、插入操作時,可以將對象自動寫入數據表。對于中間的 SQL+JDBC操作細節,完全封裝在工具底層

hibernate幾個架構 1)POJO類

public class hibernate_test { public String name; public int age; public String sex; public hibernate_test() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "hibernate_test [name=" + name + ", age=" + age + ", sex=" + sex + "]"; }}

2)hibernate_cfg.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="hibernate_001"> <class name="hibernate_test" table="HIBERNATE_TEST"> <id name="name" type="java.lang.String"> <column name="NAME" /> </id> <PRoperty name="age" type="int"> <column name="AGE" /> </property> <property name="sex" type="java.lang.String"> <column name="SEX" /> </property> </class> </hibernate-mapping>

3)*.hbm.xml

<hibernate-configuration><session-factory> <!--指定連接數據庫用的驅動--> <property name="connection.driver_class"></property> <property name="connection.url"></property> <!--指定連接數據庫的用戶名--> <property name="connection.username">用戶名</property> <property name="connection.passWord">密碼</property> <!-- SQL dialect oracle方言--> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">create</property> <!-- 配置文件地址 --> <mapping resource="xxx"/></session-factory></hibernate-configuration>

使用hibernate的優勢 :不再需要大量的sql語句 ,實體類跟數據庫之間實現自動映射轉換

hibernate調用API **1.創建 Configuration對象 2.創建session工廠 3.通過工廠創建會話對象 4.獲取事物對象 5.進行操作,提交,結束及關閉Session**

Configuration cfg=new Configuration();SessionFactory sf=cfg.configure().buildSessionFactory();Session session=sf.openSession();session.beginTransaction();

常用的ID generator 1.identity 遞增 2.sequence 只限oracle 3.native 跨數據庫時使用 4.assigned 用戶自定義id

其他如foreign,sequence,Hilo

hibernate7大關聯映射 不多作介紹,詳見:

http://blog.csdn.net/t1012665655/article/details/54574441

hibernate緩存機制

“session緩存”即hibernate的一級緩存,sessionfactory即二級緩存,同時二級緩存適合存放 :常量數據,幾乎不再修改的數據,非并發訪問的數據

詳見:

http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html

Hibernate查詢(摘錄)

*a.HQL查詢

Hibernate Query LanguageHQL與SQL語句結構相似,SQL語句是面向數據表和字段進行查詢,而HQL語句是面向Hibernate映射過來的對象進行查詢,因此HQL被稱為是一種面向對象查詢語言HQL和SQL共同點: --都支持select,from,where,order by,having,group by等子句。 --都支持運算符表達式,例如+,-,*,/,>,<等 --都支持in,not in,between and,like等過濾條件關鍵字 --都支持分組函max,min,sum,avg,countHQL和SQL不同點: --HQL是大小寫敏感的,類名和屬性名嚴格區分大小寫 --HQL不支持select * 寫法 --HQL不支持join...on...中的on子句,因為join...on發生在多表操作,而 Hibernate中對于有關系的多張表已將將關聯映射寫在了xxx.hbm.xml 中,在查詢時會自動加上join..on --HQL不支持表名和字段名public class TestHQL { Configuration cfg=new Configuration(); SessionFactory sFactory=cfg.configure().buildSessionFactory(); //@Test public void save(){ Session session=sFactory.openSession(); session.beginTransaction(); //設置10個板塊 for (int i = 0; i < 10; i++) { Categroy categroy=new Categroy(); categroy.setName("c"+i); session.save(categroy); } //設10個主題 for (int i = 0; i <10; i++) { Categroy c=new Categroy(); c.setId(1); Topic topic=new Topic(); topic.setCategroy(c); topic.setName("t"+i); session.save(topic); } //設10個對應回復 /*for (int i = 0; i < 10; i++) { Topic t=new Topic(); t.setId(1); Msg msg=new Msg(); msg.setMess("m"+i); msg.setTopic(t); session.save(msg); }*/ session.getTransaction().commit(); session.close(); } //@Test public void Test01(){ Session session=sFactory.openSession(); session.beginTransaction(); Query query=session.createQuery("from Categroy"); List<Categroy> categroys=query.list(); for(Categroy c:categroys){ System.out.println(c.getName()); } session.getTransaction().commit(); session.close(); } /** *查詢多個屬性,動態構建一個對象,必須要有有參,無參構造器 * */ // @Test public void Test02(){ Session session=sFactory.openSession(); session.beginTransaction(); String sql="select new Topic(id,name,categroy) from Topic"; Query query=session.createQuery(sql); List<Topic> topics=query.list(); for(Topic c:topics){ System.out.println(c); } session.getTransaction().commit(); session.close(); } /** * 對象查詢,條件查詢 * 參數的順序從0開始 */ // @Test public void test03(){ Session session = sFactory.openSession(); String hql = "select * from Dept where name=?"; Query query = session.createQuery(hql); query.setString(0,"hfz"); List<Topic> topics = query.list(); for (Topic d :topics) { System.out.println(d); } session.getTransaction().commit(); session.close(); } /** * 對象查詢,條件查詢 */ //@Test public void test04(){ Session session = sFactory.openSession(); String hql = "select * from Dept where name=? and id=?"; Query query = session.createQuery(hql); query.setString(0,"hfz").setInteger(1,1).list(); List<Topic> topics = query.list(); for (Topic d :topics) { System.out.println(d); } session.getTransaction().commit(); session.close(); } /** * 查詢所有板塊信息 * 分頁查詢 * setFirstResult();確定查詢的起點 * setMaxResult();確定查詢的條數 */ @Test public void test05(){ Session session = sFactory.openSession(); int currentPage = 5; int pageSize = 5; List<Categroy> categroys = session.createQuery("from Categroy"). setFirstResult((currentPage-1)*pageSize). setMaxResults(pageSize).list(); for (Categroy c : categroys) { System.out.println(c.getName()); } session.getTransaction().commit(); session.close(); } }

當然,現在與之類似的mybatis也用的越來越多,倆者的對比也是沒玩沒了,到最后無非還是那句話,能抓老鼠的貓就是一只好貓 引用mybatis作者的話即:


If you are starting a new project and you’re in full control of your object model and database design, Hibernate is a good choice of O/R tool. If you are accessing any 3rd party databases (e.g. vendor supplied), or you’re working with a legacy database, or even just a really poorly designed database, then an O/R mapper might not be capable of handling the situation. That’s were an SQL Mapper comes in handy



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲精品成人| 欧美精品在线看| 国产亚洲精品久久久优势| 亚洲黄色有码视频| 久久久精品久久久| 一区二区三区国产视频| 欧美激情在线狂野欧美精品| 国产精品久久久久久av| 精品国产区一区二区三区在线观看| 欧美性理论片在线观看片免费| 国产免费一区视频观看免费| 久久久久久久影院| 国产精品电影一区| 综合国产在线视频| 高清亚洲成在人网站天堂| 久久国产精品久久久久| 日本道色综合久久影院| 91久久久国产精品| 成人在线一区二区| 国产欧美精品日韩| 亚洲а∨天堂久久精品9966| 欧美与欧洲交xxxx免费观看| 亚洲女在线观看| 国产欧美 在线欧美| 日韩精品在线免费观看| 丝袜美腿亚洲一区二区| 亚洲伊人久久大香线蕉av| 不卡在线观看电视剧完整版| 国产拍精品一二三| 神马久久桃色视频| 国产va免费精品高清在线观看| 日本免费在线精品| 久久乐国产精品| 精品国产成人av| 91精品国产91久久久久久吃药| 国产mv免费观看入口亚洲| 久久亚洲精品视频| 欧美精品日韩www.p站| 色yeye香蕉凹凸一区二区av| 亚洲精品电影网| 国产欧美久久久久久| 精品一区二区电影| 国产91免费观看| 精品无人区乱码1区2区3区在线| 久久人人爽人人爽人人片亚洲| 色综合久久天天综线观看| 亚洲色图35p| 日韩免费高清在线观看| 日韩欧美aⅴ综合网站发布| 亚洲欧洲国产伦综合| 久久久久久久久久久国产| 国产伦精品一区二区三区精品视频| 伊人亚洲福利一区二区三区| 国产最新精品视频| 欧美成人精品影院| 91精品视频免费看| 热久久免费视频精品| 国产精品永久免费视频| 欧美日韩国产一中文字不卡| 久久视频免费在线播放| 国产精品久久久久秋霞鲁丝| 成人a在线观看| 亚洲成人免费网站| 性欧美xxxx交| 66m—66摸成人免费视频| 亚洲激情在线视频| 欧美精品videosex性欧美| 国产精品自产拍在线观看中文| 欧美老女人性生活| 国产精品jvid在线观看蜜臀| 国产精品久久久久久一区二区| 欧美日韩国产黄| 91九色在线视频| 欧美性极品xxxx娇小| 91牛牛免费视频| 疯狂做受xxxx欧美肥白少妇| 国产欧美一区二区三区在线看| 日韩三级成人av网| 亚洲天堂av在线免费观看| 色琪琪综合男人的天堂aⅴ视频| 久久久亚洲影院你懂的| 国产精品亚洲网站| 中文字幕av一区中文字幕天堂| 色诱女教师一区二区三区| 久久精品视频导航| 欧美激情视频一区二区三区不卡| 性欧美在线看片a免费观看| 91国自产精品中文字幕亚洲| 成人av电影天堂| 国产91精品久久久久久| 57pao精品| 欧美久久精品午夜青青大伊人| 国产亚洲精品va在线观看| 精品一区二区三区四区在线| 亚洲精品国偷自产在线99热| 国产97免费视| 欧洲美女7788成人免费视频| 欧美在线视频观看免费网站| 精品国产一区二区三区久久久狼| 国内精品久久久久| 在线观看精品自拍私拍| 国产精品丝袜久久久久久不卡| 国产亚洲精品久久久优势| 亚洲人av在线影院| 日韩网站免费观看高清| 色妞色视频一区二区三区四区| 欧美成人黄色小视频| 亚洲白虎美女被爆操| 一区二区欧美在线| 国产精品久久久久久一区二区| 成人黄色大片在线免费观看| 91久久精品一区| 国产噜噜噜噜久久久久久久久| 国产精品日韩专区| 性色av一区二区三区免费| 亚洲欧美综合v| 成人动漫网站在线观看| 国产精品入口尤物| 国产精品igao视频| 日韩精品亚洲元码| 久久视频国产精品免费视频在线| 国产精品女人久久久久久| 国产成人精品免高潮在线观看| 亚洲九九九在线观看| 亚洲国产精品va在线观看黑人| 大荫蒂欧美视频另类xxxx| 日韩精品在线观看网站| 亚洲福利影片在线| 久久久精品视频在线观看| 精品无人区太爽高潮在线播放| 亚洲开心激情网| 色无极影院亚洲| 亚洲色图欧美制服丝袜另类第一页| 欧美大码xxxx| 亚洲人成欧美中文字幕| 国产精品亚洲欧美导航| 日韩高清电影免费观看完整版| 成人h片在线播放免费网站| 91精品啪aⅴ在线观看国产| 久久精品2019中文字幕| 亚洲综合成人婷婷小说| 亚洲一区二区中文字幕| 国产在线观看一区二区三区| 亚洲美女在线观看| 琪琪亚洲精品午夜在线| 亚洲网站在线看| 国产成人精品综合久久久| 国产精品一香蕉国产线看观看| 久久精视频免费在线久久完整在线看| 欧美影院在线播放| 丝袜情趣国产精品| 亚洲精品久久视频| 国产精品成人免费视频| 国产精品亚洲аv天堂网| 欲色天天网综合久久| 欧美极品少妇xxxxx| 日本中文字幕不卡免费| 欧美日韩久久久久| 亚洲美女视频网站| 亚洲精品视频网上网址在线观看| 亚洲视频在线观看网站| 日韩在线观看网址| 色妞色视频一区二区三区四区| 操日韩av在线电影|