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

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

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

    開拓自己

    NeverDrop

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      0 隨筆 :: 14 文章 :: 0 評論 :: 0 Trackbacks

    這里所說的1對1 其實就是表和表的之間的關系! 其實1對1是1對多的特例,1對多是多對多的特例。
    在hibernate里實現1對1 其實就把把表用對象來表示!讓2個表產生一對一的關系!例如 一個人有一個身份
    證。是先有人,后才有的身份證的!所以 可以看做人的身份號ID是自己的主鍵,省份證的ID是自己的主鍵。而證表的ID引用人表的ID來當自己的外鍵! 當我們想添加一個人的 時候!可以自動添加一個 身份出來!

    現在具體來說明下!
    步驟:
    1 新建設一個j2ee的web project
    2?添加hibernate包,user libraries不選 白色框里2個都選 單選框選下面一個。
    ?? 2.1需要配置個數據連接 操作:new的下一步,復選框的溝去掉-》下一部門-》
    ?? 2.2建立一個存放sessionFoctory工廠的包如 org.hibernate--》完成

    3 這時候hibernate.cfg.xml產生 還產生了一個HibernateSessionFactory的session的工廠類

    4 需要給hibernate.cfg.xml里寫數據庫的連接:下面以sql數據庫的連接來講解:
    4.1 在hibernate.cfg.xml的設計器里點:new
    4.2 .Profile name:隨便寫 只要不重復
    4.3如果沒有你需要的Driver 就自己新建一個 點超級連接configure那個
    4.4在下拉框里選你要連的數據庫。如過你選sql server
    4.5在url里? 填jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs
    4.6倒入sqlserver連java的3個jar包 點add jars選擇你要的jars包 點確定
    4.7填 name和pwd下一部——>完成
    至此數據庫?hibernate.cfg.xml已經配置完畢。

    5下面需要把數據表? 轉成 類
    講解
    1切換到數據庫的模式下,選到你要轉成類的表!
    2右鍵,倒數第2個選
    3選擇一個包。一般我們起的名字叫bean
    4第一個復選框 是說是否產生這個類的hbm.xml文件
    5第2個復選框就是問 需要產生一個抽象的 類不
    6 我們選擇一個包,把前2個復選的點上 就ok了下一部
    7給我們的主鍵 選擇適合的增長方式!一般選native如果是外鍵就是foreign--->完成

    6--另外一個類 雷同 我就不講了只是?增長方式 用foreign表示 表示根據別的表來設置自己
    ? 下面講怎么把2個表的一對一關系 搞出來!
    ???增長一個人的時候 就會增長一個證 !?所以證 應該成為 人 類的一個屬性,同時我們給他get,set?方法
    ??而且證里 id是通過人里id在設置的,所以 證里 也應該 包含人 這個類的對象作為屬性!用老師的話說
    就是你中有我,我中有你!testTable類 相當與人???car類相當與證???
    alt+shift+s可以倒到屬性的get 和set方法

    7配置他們各自的***.hbm.xml文件

    作為主表的 人類(textTable)中 應該加如下代碼:(代碼應寫在<class></class>里)
    <one-to-one name="car"? class="org.bean.Car" cascade="all"></one-to-one>
    解釋一下:one-to-one表示現在2個表的關系是一對一 name里的car就是 textTable 里一個屬性 的對象名
    這個對象就是 我要關聯那個表的類的對象名! cascade=''all" 表示現在這個表是主動表

    作為從表的 證類(Car)中加入如下代碼:
    <one-to-one name="testTable" class="org.bean.TestTable"></one-to-one>
    補充說明下:雖然這個類和 這個xml在一個文件夾里,但是并不表示一個包里,所以我們寫class的值的時候要寫全稱的路徑。
    重點:因為 這個表是從表,他的id要跟隨的主表的變化而變化 所以 因該在id里加 如:
    <param name="property">testTable</param>
    解釋:name="property"表示引用的是屬性?? testTable表示引用的值 這個值就是另一個類?,他現在作為一個屬性放在了當前類里。這樣:我們就把主表的主鍵和從表的主鍵關聯起來了!并且從表的主鍵引用主表的主鍵當自己的外鍵。

    8以上完成了 2個表的連接,關系操作!了?? 下面 我們就要進行一個插入操作 ,看我們插入一個人的時候,是否也能插入一個證!

    9新建設servlet其中? 注意他在web-xml中是如何配置的!到時候jsp里訪問就容易了!
    ???新建2個表的類的對象! 給其中不是相關的屬性 通過set方法 給值。
    如:Car car=new Car();
    ??TestTable testTable=new TestTable();
    testTable.setUsername("wudi");
    ??testTable.setCar(car);
    ??car.setTestTable(testTable);
    ??car.setCarMoney(new Integer(123));

    需要調用 主表的 dao類中的save方法 進行插入 同時把主表的對象 作為參數傳過去

    9建立一個存放Dao的包dao 和一個我們要在TestTable這個表上進行一系列操作的類? TestTableDao
    ???public void save(TestTable table)
    ?{

    ??Session session=HibernateSessionFactory.getSession();
    ??Transaction tx=session.beginTransaction();
    ??
    ??session.save(table);
    ??tx.commit();
    ?}
    說明 先產生hibernateSessionFactory工廠子類的對象!然后 用他產生事物的對象!
    在用他調用save ()方法?其實這就是hql語言?就是insert方法!最后提交事物
    ?

    posted on 2007-01-04 01:54 誠夏徠 閱讀(229) 評論(0)  編輯  收藏 所屬分類: j2ee
    主站蜘蛛池模板: 亚洲午夜激情视频| 亚洲综合另类小说色区色噜噜| 亚洲av无码成h人动漫无遮挡 | 一区二区在线视频免费观看| 精品久久久久久久免费人妻| 日韩色日韩视频亚洲网站| 国产成人精品高清免费| 色哟哟国产精品免费观看| 亚洲精品无码AV中文字幕电影网站| 美女被羞羞网站免费下载| 亚洲av无码乱码在线观看野外| 美女18毛片免费视频| 免费A级毛片无码A| 菠萝菠萝蜜在线免费视频| 久久亚洲中文字幕精品一区四| 一个人看的www在线免费视频 | 日韩免费精品视频| 亚洲日韩一区二区一无码| 又粗又大又长又爽免费视频 | 亚洲人成综合在线播放| 最新中文字幕免费视频| 成人久久久观看免费毛片| 久久亚洲精品视频| 欧美a级成人网站免费| 国产精品亚洲а∨天堂2021 | 日韩精品无码永久免费网站| 亚洲国产另类久久久精品小说| 99热这里有免费国产精品| 亚洲欧美日韩国产成人| 亚洲性在线看高清h片| 午夜老司机永久免费看片| 亚洲精品人成网线在线播放va| 一本久久a久久精品亚洲| 6080午夜一级毛片免费看6080夜福利 | 亚洲中文字幕无码爆乳app| 亚洲AV无码乱码在线观看牲色| 999任你躁在线精品免费不卡| 亚洲AV无码成人网站在线观看 | 久九九精品免费视频| 五月天婷婷免费视频| 亚洲第一永久在线观看|