<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

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


    網站導航:
     
    主站蜘蛛池模板: 国产精品免费播放| 成人免费视频一区| 久久精品国产亚洲7777| 久久无码av亚洲精品色午夜| 女人张腿给男人桶视频免费版| 亚洲女人初试黑人巨高清| 最近免费中文字幕大全免费版视频| 亚洲av成人无码久久精品| 香港a毛片免费观看 | 亚洲毛片在线观看| 久久伊人免费视频| 亚洲国产日韩在线人成下载| 91频在线观看免费大全| 亚洲综合av一区二区三区| 午夜视频免费观看| 日韩精品视频在线观看免费| 色久悠悠婷婷综合在线亚洲| 国产精品免费观看调教网| 亚洲精品视频在线观看视频| 欧美a级在线现免费观看| 亚洲Av无码国产一区二区 | 免费国产黄网站在线观看| 久操视频在线免费观看| 亚洲最大黄色网址| 真实乱视频国产免费观看| 四虎影视永久在线精品免费| 亚洲国产另类久久久精品| 久草视频在线免费| 人妻无码中文字幕免费视频蜜桃| 亚洲精品tv久久久久久久久| 99re免费99re在线视频手机版| 亚洲卡一卡二卡乱码新区| 亚洲阿v天堂在线2017免费| 好紧我太爽了视频免费国产| 国产精品亚洲片在线va| 亚洲一本大道无码av天堂| 24小时免费看片| 在线视频亚洲一区| 国产香蕉免费精品视频| 污污的视频在线免费观看| 亚洲91av视频|