<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qqjianyue代碼工

    砌java代碼
    posts - 62, comments - 9, trackbacks - 0, articles - 10
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    hibernate簡單入門介紹

    Posted on 2008-10-01 09:49 Qzi 閱讀(344) 評論(0)  編輯  收藏 所屬分類: ssh1.2_2.0_3.1

    一.繼承關系和關聯聚集關系映射
    1.整個類層次使用一張表
    2.每個葉結點使用一張表,該表保存了該類自己的和所繼承的所有屬性
    3.每個類使用一張表,該表只保存OID以及對應類自己的屬性(不含所繼承的屬性)

    1.“1對1”或“1對多”關系的映射,簡單地利用外鍵即可
    2.“多對多”關系的映射,引入一個新的表,專門記錄這種“多對多”關系

    二.編程步驟:事前準備包括建立一個project并且加入外部庫
    新建一個Project HibernateSample,然后在Project上點右鍵,選擇Properties ? Java Build Path ? Libraries。選擇Add External JARs,然后將Hibernate目錄下的hibernate3.jar,以及Hibernate目錄下的lib文件夾中所有的jar文件添加進來。
    另外我們還必須有MySQL的JDBC驅動,用上面的辦法同樣把mysql-connector-java-3.1.12-bin.jar添加進我們的Build Path中。

    1.創建數據庫(例如User表)
    2.建立對應數據庫的類的屬性與操作(例如User類)
    3.編寫映射數據庫表hibernate mapping,命名為***.hbm.xml(例如User.hbm.xml)
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
     <class name="sample.User" table="user">
      <id name="id" column="id" type="java.lang.Integer">
       <generator class="native" />
      </id>
      <property name="name" column="name" type="java.lang.String" />
      <property name="age" column="age" type="java.lang.Integer" />
     </class>
    </hibernate-mapping>
    明顯可見關注點包括
    A)class中包中的類與數據庫中table的對應
    B)property中 類中ID和屬性與table中字段的對應

    4.編寫Hibernate配置文件hibernate configurarion file,通常命名:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory>
      <!-- 是否顯示實際操作數據庫時的SQL -->
      <property name="show_sql">true</property>
      <!-- SQL方言,這邊設定的是MySQL -->
      <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
      <!-- JDBC驅動程序 -->
      <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
      <!-- JDBC URL -->
      <property name="connection.url">jdbc:mysql://localhost/Sample</property>
      <!-- 數據庫用戶名 -->
      <property name="connection.username">root</property>
      <!-- 數據庫密碼 -->
      <property name="connection.password">123456</property>
      <!-- 以下設置對象與數據庫表格映像文件 -->
      <mapping resource="sample/User.hbm.xml"/>
     </session-factory>
    </hibernate-configuration>
    關注點包括:
    A)數據庫路徑, 數據庫用戶名, 數據庫密碼,
    B)還有就是指定數據庫映射文件mapping resource

    5.配置log4j.properties
    在src目錄下點右鍵,選擇import,然后選擇General ? File System,接著選擇Hibernate文件夾下的etc文件夾,再選擇log4j.properties文件,最后選擇Finish。
    關鍵配置文件:
    hbm是映射配置
    cfg是密碼,用戶,以及hbm指定配置
    properties是用于配置當前數據庫連接的屬性配置

    6.編程操作數據庫過程
    使用對象增加數據項:
    A)Configuration配置Configuration config = new Configuration().configure();
    B)Session工廠獲得SessionFactory sessionFactory = config.buildSessionFactory();
    C)Session獲得Session session = sessionFactory.openSession();
    D)Transaction事務啟動Transaction tx = session.beginTransaction();
    E)建立映射數據的實體類(例如User的一個實例)
    F)session操作(例如session.save(user)插入到數據庫一個user的對象)
    G)關鍵的Transaction事務提交,tx.commit();
    H)清理包括Transaction對象,session對象,sessionFactory對象的有順序清理

    使用Criteria查詢數據
    A)配置Configuration,SessionFactory,Session與上面相同
    B)創建Criteria criteria=session.createCriteria(User.class);
    C)創建User列表List users = criteria.list();
    D)使用迭代器Iterator iterator = users.iterator();
    E)iterator.hasNext(),iterator.next()的使用
    F)criteria.add(Expression.eq("name","hibernateUser2"));加上查詢約束
    G)users = criteria.list();將會按照查詢約束得到列表.

    使用鼓勵的HQL的Query查詢
    A)創建Query例如Query query = session.createQuery("from User");
    B)獲得數據List uers = query.list();
    C)遍歷器使用Iterator iterator = users.iterator();又如iterator.hasNext();和iterator.next();
    D)使用過濾查詢
    query = session.createQuery("from User user where user.name like ?");
    query.setParameter(0, "hibernateUser2");Query的setParameter()方法第一個參數是指定 ? 出現的位置,從 0 開始,第二個參數則是設定查詢條件。
    然后再List uers = query.list();獲得的將是滿足username==hibernateUser2的條件的結果
    E)清除session和sessionFactory使用close方法.


    hibernate_rar

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 四虎1515hm免费国产| JLZZJLZZ亚洲乱熟无码| 免费无码黄十八禁网站在线观看| 亚洲国产精品综合久久20| 日韩精品视频免费在线观看| 中文精品人人永久免费| 亚洲一区中文字幕| 最新国产AV无码专区亚洲| 四虎永久在线精品免费一区二区| 亚洲午夜未满十八勿入网站2| 毛片免费全部播放无码| 美女视频黄a视频全免费网站色| 成人免费看黄20分钟| 亚洲国产免费综合| 亚洲av午夜精品无码专区| 亚洲一级黄色视频| 很黄很色很刺激的视频免费| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 免费人成在线观看播放国产| 美女在线视频观看影院免费天天看| 国产亚洲精品无码专区| 和日本免费不卡在线v| 一边摸一边桶一边脱免费视频| 亚洲 欧洲 自拍 另类 校园| 亚洲精品成人片在线观看精品字幕| 日本人护士免费xxxx视频| 久热中文字幕在线精品免费| 在线播放免费人成毛片乱码| 国产亚洲视频在线观看| 精品久久亚洲中文无码| 亚洲va久久久噜噜噜久久| 亚洲裸男gv网站| 久久精品乱子伦免费| 黄色免费在线网址| 亚洲中文字幕一区精品自拍| 亚洲精品成人久久| 日韩高清在线免费观看| 国产妇乱子伦视频免费| 国产成人久久AV免费| 久久久国产精品福利免费| 国产免费牲交视频免费播放|