亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • javabeans設計原則
    查看全部
    0 采集 收起 來源:創建持久化類

    2016-01-21

  • 常見ORM框架 EJB重量級不常使用
    查看全部
    0 采集 收起 來源:Hibernate簡介

    2016-01-21

  • 在數據類型中,容易出錯的hibernate數據類型為date與timestamp hibernate數據類型為date的話,格式為yyyy-MM-dd,time的話格式為hh:mm:ss. hibernate數據類型為timestamp,格式為yyyy-MM-dd hh:mm:ss. java.util.Date的格式默認存進數據庫為yyyy-MM-dd hh:mm:ss.不需要再用format()方法格式化.
    查看全部
  • hibernate基本類型 用的最多的是hibernate映射類型與java類型.比方說在hbm映射文檔中,<id>標簽或者<property>標簽中的type屬性類型一般都是用hibernate映射類型或者java類型. <property name="name" type="string" column="SNAME" ></property> //string是小寫 <property name="name" type="java.lang.String" column="SNAME" ></property>
    查看全部
  • 單一主鍵(列級約束):表當中由某個字段充當主鍵. 復合主鍵(表級約束):表當中有多個字段共同充當主鍵. 當主鍵生成策略為assigned,即主鍵由java應用程序負責生成標識符(手工賦值),標示符理解為記錄值.當沒有為主鍵屬性賦值,則默認為0,假如 <property name="hibernate.hbm2ddl.auto">udpate</property>設置了update,則第二次再次運行就會出錯. 當主鍵生成策略為native,即由底層數據庫自動生成的標示符,如果是MySQL就是auto_increment(自動增長),如果是Oracle就是sequence,等等.因此在類里不需要為對象的主鍵屬性進行賦值,并把 <property name="hibernate.hbm2ddl.auto">create</property>屬性值設置為create,則運行程序時,會自動重新創建表,并且會有auto_increment自動增長.此時用手動賦值會無效. 用hibernate可以創建表,盡管數據庫不存在此表.在持久化類設置相應的字段,并且hbm映射文件的hbm2ddl設置為create即可.
    查看全部
  • 主鍵生成策略. 其中assigned是自動賦值的方式.
    查看全部
    0 采集 收起 來源:hbm配置文檔

    2016-01-21

  • hbm映射文件 <class>標簽的常用設置.<class>標簽是<hibernate-mapping>的子標簽. 其中name、table、batch-size、where、entity都是<class>標簽的屬性. <class name="classname" //對應映射哪個類 table="tablename" //對應數據庫的表名 batch-size="N" //抓取策略,即一次可以抓取多少條記錄 where="condition" //設置抓取時的條件 entity-name="EntityName" //支持同一個實體類映射多張表,一般很少使用,都是一個類對應一張表 > </class> <id>標簽的常用配置,<id>標簽表示表的主鍵意思.<id>標簽是<class>標簽的子標簽. 其中name、type、column、length都是<id>標簽的屬性. <id name="propertyName" //表示映射實體類的哪個屬性 type="typename" //表示映射此實體的屬性的數據類型 column="column_name" //對應數據庫表的字段 length="length" //指定長度 > <generator class="generatorClass"/> //此標簽在<id>標簽下,表示主鍵生成策略. </id> <property>標簽的常用配置,與<id>標簽類似.<property>標簽用來表示非主鍵的其他屬性對應數據庫表的字段的映射關系. 其中name、type、column是<property>標簽的屬性.<property>標簽是<class>的子標簽. <property name="propertyName" //表示映射實體類的哪個屬性 type="typename" //表示映射此實體的屬性的數據類型 column="column_name" //對應數據庫表的字段 > </property> 即 <hibernate-mapping> <class> <id></id> <property></property> </class> </hibername-mapping>
    查看全部
    0 采集 收起 來源:hbm配置文檔

    2018-03-22

  • hbm映射文檔的常用設置 <hibernate-mappng>標簽
    查看全部
    0 采集 收起 來源:hbm配置文檔

    2018-03-22

  • 假如用openSession()方法創建Session對象,最終沒有用close()方法釋放資源,則下次再次用openSession()方法創建Session對象,則又會去連接池獲取一個連接,多次重復之后可能會導致連接池溢出的問題. 用getCurrentSession()方法獲取的Session對象會自動釋放資源,且多次用getCurrentSession()方法都是用同一個Session對象,同一個session對象對應的connection連接對象都是一樣的,因此只會占用連接池的一個連接. 連接池溢出即連接已達到連接池的最大連接數,會拋出一個無空閑連接的異常給用戶. 當客戶請求數據庫連接時,首先是查看連接池中是否有空閑連接(指當前沒有分配出去的連接).假如存在空閑連接,則把連接分配給用戶,并作相應的處理(即標記該連接為正在使用,引用計數加1).假如沒有空閑連接,則查看當前所開的連接數是不是已經達到maxConn(最大連接數),若沒達到就重新創建一個連接給請求的客戶,若達到就按設定的maxWaitTime(最大等待時間)進行等待,若等待maxWaitTime后,仍沒有空閑連接(即連接池溢出),就拋出無空閑連接的異常給用戶.
    查看全部
  • openSession()和getCurrentSession()的區別 1.getCurrentSession()方法在事務提交或者回滾之后會自動關閉,而openSession()方法需要你手動關閉.如果使用openSession()方法而沒有手動關閉,則多次之后會導致連接池溢出. 2.openSession()方法每次創建新的Session對象,getCurrentSession()方法使用現有的Session對象. 連接池概念: 連接池是創建和管理一個連接的緩沖池的技術,這些連接準備好被任何需要它們的線程使用。 對于大多數應用程序,當它們正在處理通常需要數毫秒完成的事務時,僅需要能夠訪問JDBC連接的1個線程.當不處理事務時,這個連接就會閑置.相反,連接池允許閑置的連接被其它需要的線程使用. 當一個線程需要用JDBC對數據庫操作時,它從池中請求一個連接.當這個線程使用完了這個連接,將它返回到連接池中,這樣這就可以被其它想使用它的線程使用. 當連接從池中"借出",它被請求它的線程專有地使用.從編程的角度來看,這和用戶的線程每當需要一個JDBC連接的時候調用DriverManager.getConnection()是一樣的,采用連接池技術,可通過使用新的或已有的連接結束線程. 連接池可以極大的改善用戶的 Java 應用程序的性能,同時減少全部資源的使用. 在實際應用開發中,特別是在WEB應用系統中,如果JSP、Servlet或EJB使用JDBC直接訪問數據庫中的數據,每一次數據訪問請求都必須經歷建立數據庫連接、打開數據庫、存取數據和關閉數據庫連接等步驟,而連接并打開數據庫是一件既消耗資源又費時的工作,如果頻繁發生這種數據庫操作,系統的性能必然會急劇下降,甚至會導致系統崩潰.數據庫連接池技術是解決這個問題最常用的方法,在許多應用程序服務器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了這項技術,無需自己編程,但是深入了解這項技術是非常必要的. 數據庫連接池技術的思想非常簡單,將數據庫連接作為對象存儲在一個Vector對象中,一旦數據庫連接建立后,不同的數據庫訪問請求就可以共享這些連接,通過復用這些已經建立的數據庫連接,極大地節省系統資源和時間.
    查看全部
  • 獲得Session對象的方式有兩種. 1.SessionFactory的openSession()方法 2.SessionFactory的getCurrentSession()方法 如果使用getCurrentSession()方法還需要在hibernate.cfg.xml配置文檔中進行配置: 如果是本地事務(jdbc事務) <property name="hibernate.current_session_context_class">thread</property> 如果是全局事務(jta事務) <property name="hibernate.current_session_context_class">jta</property>
    查看全部
  • 調用doWork()方法實現Hibernate程序自動提交事務,在用session操作數據庫的方法之前調用doWork()方法設置.其中doWork()方法的參數是Work抽象類的對象,因此需要重寫execute()方法,通過execute()參數中的connection對象來設置自動提交事務,最后session還要調用flush()方法輸出sql語句.session不需要開啟事務與提交事務的操作
    查看全部
    0 采集 收起 來源:transaction簡介

    2016-01-20

  • transaction簡介 hibernate對數據庫的操作都是封裝在事務當中,并且默認是非自動提交的方式.所以用session的save()方法保存對象時,如果不開啟事務,并且沒有手工提交事務,對象并不會真正保存在數據庫中. JDBC操作數據庫的方法是自動提交事務的.
    查看全部
    0 采集 收起 來源:transaction簡介

    2016-01-20

  • Hibernate程序執行流程. 1.創建一個Configuration配置對象,此對象作用是讀取配置文檔信息. 2.創建ServiceRegistry服務注冊對象. 3.用獲得的配置對象來創建SessionFactory會話工廠對象.此對象作用是讀取相應的對象關系映射文件. 3.通過會話工廠來創建Session對象.Session對象就類似于JDBC中的Connection對象.且是多對一的關系,獲得了一個session對象,表示獲得了一個數據庫連接對象.一個session對象一定是獲取了一個JDBC的connection對象,一個JDBC的connection對象可以供多個session對象使用,即把session看成是一個操作數據庫的對象. 4.開啟一個事務,為了對數據庫的操作.通過獲取到的Session對象的beginTransaction()方法獲取到Transaction事務對象.在執行Session對象操作數據庫的方法之前,必須要先開啟一個事務,也就是說這些方法都需要封裝在事務當中. 5.執行session中的save()、delete()、update()、createQuery()方法,對應對數據庫的增刪改查的操作. 6.當session對象執行完對數據庫操作的方法之后,就需要提交事務,通過Transaction事務對象的commit()方法提交事務. 7.最后關閉session與sessionFactory對象. Hibernate不建議使用jdbc的connection對象操作數據庫,而是通過使用session對象操作數據庫.在通過Hibernate操作數據庫之前,就必須獲得一個Session實例. 要把對象保存在關系型數據庫中需要調用session的各種方法, 如:save()、update()、delete()、createQuery()等.
    查看全部
    0 采集 收起 來源:session簡介

    2016-01-20

  • hibernate.cfg.xml配置文檔的常用配置. 程序在運行的時候會讀取hibernate.cfg.xml配置文檔,從而實現連接數據庫,并且生成表結構. 設置了<property name="show_sql">true</property>,與<property name="format_sql">true</property>,則會把hibernate運行時對數據庫的操作時的sql語句會顯示在控制臺并且格式化. <property name="hbm2ddl.auto">create</property>,即重新刪除表結構再創建.所以之前的記錄消失. <property name="hbm2ddl.auto">update</property>,它不會刪除表結構也不會創建新的表結構,會保留原有的數據,只是更新.沒有"hbm2ddl.auto"屬性一樣也是可以添加新的數據,會保留原有的數據. <property name="hibernate.default_schema">hibernate</property>,則在控制臺輸出的sql語句中,會在表名之前加上數據庫名.
    查看全部

舉報

0/150
提交
取消
課程須知
小伙伴們,學習本門課程前需要具備Java基礎知識和面向對象編程思想,并能夠熟練使用JDBC操作Mysql數據庫。
老師告訴你能學到什么?
1、理解ORM模型 2、掌握Hibernate基本概念 3、能夠熟練創建Hibernate實例

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!