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

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

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

    隨筆 - 59  文章 - 70  trackbacks - 0
    <2010年1月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    搜索

    •  

    積分與排名

    • 積分 - 173550
    • 排名 - 340

    最新評論

    閱讀排行榜

    評論排行榜

    1.建表

    create ? table ?student
    (sid?
    varchar ( 32 )? not ? null ? primary ? key ,
    ?sname?
    varchar ( 16 ),
    ?sage?
    varchar ( 16 ),
    )

    create ? table ?course
    (cid?
    varchar ( 32 )? not ? null ? primary ? key ,
    cname?
    varchar ( 16 )
    )

    create ? table ?student_course_link
    (sid?
    varchar ( 32 )? not ? null ,
    cid?
    varchar ( 32 )? not ? null ,
    primary ? key (sid,cid)
    )
    2.寫VO
    StudentVO
    package?com.test;
    import?java.util.Set;
    public?class?Student
    {
    ????
    private?String?sid;
    ????
    private?String?sname;
    ????
    private?String?sage;

    ????
    private?Set?course;
    ????
    public?Student()
    ????
    {
    ????}

    ???
    //寫上get?set
    Course vo
    package?com.test;

    import?java.util.Set;

    public?class?Course
    {
    ????
    private?String?cid;
    ????
    private?String?cname;
    ????
    private?Set?student;
    ???
    //寫上get?set

    寫配置文件
    Student.hbm.xml
    <?xml?version="1.0"?>
    <!DOCTYPE?hibernate-mapping
    ????PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD//EN"
    ????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    >

    <hibernate-mapping>

    ????
    <class?name="com.test.Student"?table="student"?>

    ????????
    <id?name="sid"?type="string"?unsaved-value="null"?>
    ????????????
    <column?name="sid"?sql-type="char(32)"?not-null="true"/>
    ????????????
    <generator?class="uuid.hex"/>
    ????????
    </id>

    ????????
    <property?name="sname">
    ????????????
    <column?name="sname"?sql-type="varchar(16)"?not-null="true"/>
    ????????
    </property>

    ????????
    <property?name="sage">
    ????????????
    <column?name="sage"?sql-type="varchar(16)"?not-null="true"/>
    ????????
    </property>

    ????????
    <set?name="course"?table="student_course_link"?cascade="all"?outer-join="false">
    ????????????
    <key?column="sid"/>
    ????????????
    <many-to-many?class="com.test.Course"?column="cid"/>
    ????????
    </set>
    ???
    ????
    </class>

    </hibernate-mapping>

    Course.hbm.xml
    <?xml?version="1.0"?>
    <!DOCTYPE?hibernate-mapping
    ????PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD//EN"
    ????"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
    >

    <hibernate-mapping>

    ????
    <class?name="com.test.Course"?table="course"?>

    ????????
    <id?name="cid"?type="string"?unsaved-value="null"?>
    ????????????
    <column?name="cid"?sql-type="char(32)"?not-null="true"/>
    ????????????
    <generator?class="uuid.hex"/>
    ????????
    </id>

    ????????
    <property?name="cname">
    ????????????
    <column?name="cname"?sql-type="varchar(16)"?not-null="true"/>
    ????????
    </property>

    ????????
    <set?name="student"?table="student_course_link"?lazy="false"?cascade="all">
    ????????????
    <key?column="cid"/>
    ????????????
    <many-to-many?class="com.test.Student"?column="sid"/>
    ????????
    </set>
    ???
    ????
    </class>

    </hibernate-mapping>

    接著把下面的hibernate.properties文件拷到classes目錄下。。這里用的是mysql
    hibernate.query.substitutions?true?1,?false?0,?yes?'Y',?no?'N'
    ##?MySQL
    hibernate.dialect?net.sf.hibernate.dialect.MySQLDialect
    hibernate.connection.driver_class?org.gjt.mm.mysql.Driver
    hibernate.connection.url?jdbc:mysql://localhost:3306/wjcms
    hibernate.connection.username?root
    hibernate.connection.password?wujun
    hibernate.connection.pool_size?1
    hibernate.proxool.pool_alias?pool1
    hibernate.show_sql?true
    hibernate.jdbc.batch_size?0
    hibernate.max_fetch_depth?1
    hibernate.cache.use_query_cache?true?
    寫測試類了..
    package?com.test;

    import?net.sf.hibernate.Session;
    import?net.sf.hibernate.SessionFactory;
    import?net.sf.hibernate.cfg.Configuration;
    import?net.sf.hibernate.*;
    import?java.util.Set;
    import?java.util.HashSet;
    import?java.sql.*;
    import?java.util.List;
    import?java.util.Iterator;

    public?class?TestManyToMany
    {
    ????SessionFactory?sf;
    ????Session?session;
    ????
    public?TestManyToMany()
    ????
    {
    ????????
    try
    ????????
    {
    ????????????Configuration?cfg?
    =?new?Configuration();
    ????????????sf?
    =?cfg.addClass(Student.class).addClass(Course.class).buildSessionFactory();
    ????????}

    ????????
    catch(HibernateException?ex)
    ????????
    {
    ????????????ex.printStackTrace();
    ????????}

    ????}

    ????
    public?void?doCreate()
    ????
    {
    ????????
    try
    ????????
    {
    ????????????session?
    =?sf.openSession();

    ????????????Student?student?
    =?new?Student();
    ????????????student.setSname(
    "小王");
    ????????????student.setSage(
    "22");

    ????????????Set?courseSet?
    =?new?HashSet();
    ????????????Course?course?
    =?null;
    ????????????
    for(int?i=0;i<2;i++)
    ????????????
    {
    ????????????????course?
    =?new?Course();
    ????????????????
    if(i==0)
    ????????????????????course.setCname(
    "c++");
    ????????????????
    else?if(i==1)
    ????????????????????course.setCname(
    "java");
    ????????????????courseSet.add(course);
    ????????????}

    ????????????student.setCourse(courseSet);
    ????????????
    ????????????session.save(student);
    ????????????session.flush();
    ????????????session.connection().commit();

    ????????}

    ????????
    catch(HibernateException?ex)
    ????????
    {
    ????????????ex.printStackTrace();
    ????????}

    ????????
    catch(SQLException?ex1)
    ????????
    {
    ????????????ex1.printStackTrace();
    ????????}

    ????????
    finally
    ????????
    {
    ????????????????
    try{
    ????????????????????session.close();
    ????????????????}

    ????????????????
    catch(HibernateException?ex2){
    ????????????????}

    ????????}


    ????}

    ????
    public?void?doQuery()
    ????
    {
    ????????
    try{
    ????????????session?
    =?sf.openSession();
    ????????????Query?q?
    =?session.createQuery("select?s?from?Student?as?s");
    ????????????List?l?
    =?q.list();
    ????????????Student?s?
    =?null;
    ????????????Course?course?
    =?null;
    ????????????
    for(int?i=0;i<l.size();i++)
    ????????????
    {
    ????????????????s?
    =?(Student)l.get(i);
    ????????????????System.out.println(
    "姓名:?"+s.getSname());
    ????????????????System.out.println(
    "年齡:?"+s.getSage());
    ????????????????System.out.println(
    "所選的課程:");
    ????????????????Iterator?it?
    =?s.getCourse().iterator();
    ????????????????
    while(it.hasNext())
    ????????????????
    {
    ????????????????????course?
    =?(Course)it.next();
    ????????????????????System.out.println(
    "課程名:?"+course.getCname());
    ????????????????}



    ????????????}


    ????????}

    ????????
    catch(HibernateException?ex){
    ????????????ex.printStackTrace();
    ????????}

    ????????
    finally{
    ????????????
    try{
    ????????????????session.close();
    ????????????}

    ????????????
    catch(HibernateException?ex2){
    ????????????}

    ????????}

    ????}

    ????
    public?static?void?main(String[]?args)
    ????
    {
    ????????TestManyToMany?t?
    =?new?TestManyToMany();
    ????????
    //t.doCreate();
    ????????t.doQuery();
    ????}

    }

    posted on 2009-01-12 14:50 JasonChou 閱讀(1393) 評論(5)  編輯  收藏 所屬分類: j2ee

    FeedBack:
    # re: Hibernate多對多more-to-more實例 2009-05-15 01:22 啊龍
    先建好了表?????  回復  更多評論
      
    # re: Hibernate多對多more-to-more實例 2009-05-15 09:05 JasonChou
    @啊龍
    是啊 有何不妥?  回復  更多評論
      
    # re: Hibernate多對多more-to-more實例[未登錄] 2010-01-18 09:39 lq
    加上struts實現個增刪改查例子看看啦  回復  更多評論
      
    # re: Hibernate多對多more-to-more實例 2010-01-18 11:01 JasonChou
    @lq
    struts例子網上很多的,你再找找  回復  更多評論
      
    # re: Hibernate多對多more-to-more實例 2016-04-19 16:09 
    同是要求返回兩張表的字段,該如何查詢,如何確定返回類型  回復  更多評論
      
    主站蜘蛛池模板: 亚洲午夜无码久久久久软件| 亚洲精品中文字幕无乱码麻豆| 亚洲AV日韩AV永久无码色欲| 最近2019免费中文字幕视频三| 久久亚洲精品成人综合| 久久久久久影院久久久久免费精品国产小说| 亚洲精品视频免费观看| 中文字幕高清免费不卡视频| 伊人久久大香线蕉亚洲| 中国性猛交xxxxx免费看| 久久久亚洲精品视频| 91在线老王精品免费播放| 亚洲成人黄色网址| 丁香花免费高清视频完整版| 最新亚洲春色Av无码专区| 国产男女猛烈无遮挡免费视频 | 国产91免费在线观看| 亚洲一区在线视频| 曰皮全部过程视频免费国产30分钟| 亚洲AV永久无码精品一福利| 亚洲国产成人久久精品99 | 国产精品免费αv视频| 亚洲精品无码高潮喷水在线| 免费视频精品一区二区三区| 亚洲精品成人网站在线播放| 夫妻免费无码V看片| 一级毛片大全免费播放下载| 亚洲国产精品一区二区久久hs| 在线免费观看亚洲| 亚洲欧洲免费无码| 日韩亚洲变态另类中文| 久久午夜羞羞影院免费观看| 亚洲真人无码永久在线观看| 亚洲午夜精品一级在线播放放| 四虎影视在线影院在线观看免费视频 | 亚洲av无码片区一区二区三区| 国产一区二区免费在线| 国色精品va在线观看免费视频| 亚洲毛片无码专区亚洲乱| 免费欧洲毛片A级视频无风险| 国产免费一区二区三区不卡|