所謂基本類型,就是指java.lang.String,java.lang.Integer等基本類?以及用戶編寫的非實體類,雖然map中的數據是我們的數據庫中的一個表,但我們不必為他創建POJO類及HBM文件
數據庫結構:
?
 create
      
      
        ?
      
      
        table
      
      
        ?teamMap?(id?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),teamname?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
      
        create
      
      
        ?
      
      
        table
      
      
        ?teamMap?(id?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),teamname?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
         create
      
      
        ?
      
      
        table
      
      
        ?studentMap?(name?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),description?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),?team_id?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
      
      
        create
      
      
        ?
      
      
        table
      
      
        ?studentMap?(name?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),description?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ),?team_id?
      
      
        varchar
      
      
        (
      
      
        32
      
      
        ));
      
    ?
實體類:(只有Team),其中的student無實體類,用表studentMap的name字段作為key,description作為value
?
 package
      
      
        ?Collection.Map.Simple;
      
        package
      
      
        ?Collection.Map.Simple;
         
         import
      
      
        ?java.util.HashMap;
      
      
        import
      
      
        ?java.util.HashMap;
         import
      
      
        ?java.util.Map;
      
      
        import
      
      
        ?java.util.Map;
         
         public
      
      
        ?
      
      
        class
      
      
        ?Team?
      
      
      
        
          {
        
      
      
        public
      
      
        ?
      
      
        class
      
      
        ?Team?
      
      
      
        
          {
           ???
        
        
          private
        
        
          ?String?id;
          ???
        
        
          private
        
        
          ?String?id;
           ???
        
        
          private
        
        
          ?String?teamname;
          ???
        
        
          private
        
        
          ?String?teamname;
           ???
        
        
          private
        
        
          ?Map?students
        
        
          =
        
        
          new
        
        
          ?HashMap();
          ???
        
        
          private
        
        
          ?Map?students
        
        
          =
        
        
          new
        
        
          ?HashMap();
           public
        
        
          ?String?getId()?
        
        
        
          
            {
          
        
        
          public
        
        
          ?String?getId()?
        
        
        
          
            {
             ????
          
          
            return
          
          
            ?id;
            ????
          
          
            return
          
          
            ?id;
             }
            }
          
        
        
           public
        
        
          ?
        
        
          void
        
        
          ?setId(String?id)?
        
        
        
          
            {
          
        
        
          public
        
        
          ?
        
        
          void
        
        
          ?setId(String?id)?
        
        
        
          
            {
             ????
          
          
            this
          
          
            .id?
          
          
            =
          
          
            ?id;
            ????
          
          
            this
          
          
            .id?
          
          
            =
          
          
            ?id;
             }
            }
          
        
        
           public
        
        
          ?String?getTeamname()?
        
        
        
          
            {
          
        
        
          public
        
        
          ?String?getTeamname()?
        
        
        
          
            {
             ????
          
          
            return
          
          
            ?teamname;
            ????
          
          
            return
          
          
            ?teamname;
             }
            }
          
        
        
           public
        
        
          ?
        
        
          void
        
        
          ?setTeamname(String?teamname)?
        
        
        
          
            {
          
        
        
          public
        
        
          ?
        
        
          void
        
        
          ?setTeamname(String?teamname)?
        
        
        
          
            {
             ????
          
          
            this
          
          
            .teamname?
          
          
            =
          
          
            ?teamname;
            ????
          
          
            this
          
          
            .teamname?
          
          
            =
          
          
            ?teamname;
             }
            }
          
        
        
           public
        
        
          ?Map?getStudents()?
        
        
        
          
            {
          
        
        
          public
        
        
          ?Map?getStudents()?
        
        
        
          
            {
             ????
          
          
            return
          
          
            ?students;
            ????
          
          
            return
          
          
            ?students;
             }
            }
          
        
        
           public
        
        
          ?
        
        
          void
        
        
          ?setStudents(Map?students)?
        
        
        
          
            {
          
        
        
          public
        
        
          ?
        
        
          void
        
        
          ?setStudents(Map?students)?
        
        
        
          
            {
             ????
          
          
            this
          
          
            .students?
          
          
            =
          
          
            ?students;
            ????
          
          
            this
          
          
            .students?
          
          
            =
          
          
            ?students;
             }
            }
          
        
        
           }
          }
        
      
      
         
      
    ?
Team.hbm.xml
?
 <?
      
      
        xml?version="1.0"?encoding="utf-8"
      
      
        ?>
      
        <?
      
      
        xml?version="1.0"?encoding="utf-8"
      
      
        ?>
      
      
         <!
      
      
        DOCTYPE?hibernate-mapping?PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"
      
      
        <!
      
      
        DOCTYPE?hibernate-mapping?PUBLIC?"-//Hibernate/Hibernate?Mapping?DTD?3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
      
      
        >
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
      
      
        >
      
      
         <!--
      
      
        ?
      
      
        <!--
      
      
        ?
         ????Mapping?file?autogenerated?by?MyEclipse?-?Hibernate?Tools
        ????Mapping?file?autogenerated?by?MyEclipse?-?Hibernate?Tools
         -->
      
      
        -->
      
      
         <
      
      
        hibernate-mapping
      
      
        >
      
      
        <
      
      
        hibernate-mapping
      
      
        >
      
      
         <
      
      
        class?
      
      
        name
      
      
        ="Collection.Map.Simple.Team"
      
      
        ?table
      
      
        ="teamMap"
      
      
        ?
      
      
        >
      
      
        <
      
      
        class?
      
      
        name
      
      
        ="Collection.Map.Simple.Team"
      
      
        ?table
      
      
        ="teamMap"
      
      
        ?
      
      
        >
      
      
         ????
      
      
        <
      
      
        id?
      
      
        name
      
      
        ="id"
      
      
        ?unsaved-value
      
      
        ="null"
      
      
        >
        ????
      
      
        <
      
      
        id?
      
      
        name
      
      
        ="id"
      
      
        ?unsaved-value
      
      
        ="null"
      
      
        >
      
      
         ??????
      
      
        <
      
      
        generator?
      
      
        class
      
      
        ="uuid.hex"
      
      
        ></
      
      
        generator
      
      
        >
        ??????
      
      
        <
      
      
        generator?
      
      
        class
      
      
        ="uuid.hex"
      
      
        ></
      
      
        generator
      
      
        >
      
      
         ????
      
      
        </
      
      
        id
      
      
        >
        ????
      
      
        </
      
      
        id
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="teamname"
      
      
        ?type
      
      
        ="string"
      
      
        ?column
      
      
        ="teamname"
      
      
        ></
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="teamname"
      
      
        ?type
      
      
        ="string"
      
      
        ?column
      
      
        ="teamname"
      
      
        ></
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        map?
      
      
        name
      
      
        ="students"
      
      
        ?table
      
      
        ="studentMap"
      
      
        >
        ????
      
      
        <
      
      
        map?
      
      
        name
      
      
        ="students"
      
      
        ?table
      
      
        ="studentMap"
      
      
        >
      
      
         ??????
      
      
        <
      
      
        key?
      
      
        column
      
      
        ="team_id"
      
      
        ></
      
      
        key
      
      
        >
        ??????
      
      
        <
      
      
        key?
      
      
        column
      
      
        ="team_id"
      
      
        ></
      
      
        key
      
      
        >
      
      
         ??????
      
      
        <!--
      
      
        ?index代表key,element代表value,一個map標簽只能有一個element?
      
      
        -->
        ??????
      
      
        <!--
      
      
        ?index代表key,element代表value,一個map標簽只能有一個element?
      
      
        -->
      
      
         ??????
      
      
        <
      
      
        index?
      
      
        column
      
      
        ="name"
      
      
        ?type
      
      
        ="string"
      
      
        ></
      
      
        index
      
      
        >
        ??????
      
      
        <
      
      
        index?
      
      
        column
      
      
        ="name"
      
      
        ?type
      
      
        ="string"
      
      
        ></
      
      
        index
      
      
        >
      
      
         ??????
      
      
        <
      
      
        element?
      
      
        type
      
      
        ="string"
      
      
        ?column
      
      
        ="description"
      
      
        ></
      
      
        element
      
      
        >
        ??????
      
      
        <
      
      
        element?
      
      
        type
      
      
        ="string"
      
      
        ?column
      
      
        ="description"
      
      
        ></
      
      
        element
      
      
        >
      
      
         ????
      
      
        </
      
      
        map
      
      
        >
        ????
      
      
        </
      
      
        map
      
      
        >
      
      
         </
      
      
        class
      
      
        >
      
      
        </
      
      
        class
      
      
        >
      
      
         
         </
      
      
        hibernate-mapping
      
      
        >
      
      
        </
      
      
        hibernate-mapping
      
      
        >
      
      
         
      
    ?
Hibernate.cfg.xml
?
 <?
      
      
        xml?version='1.0'?encoding='UTF-8'
      
      
        ?>
      
        <?
      
      
        xml?version='1.0'?encoding='UTF-8'
      
      
        ?>
      
      
         <!
      
      
        DOCTYPE?hibernate-configuration?PUBLIC
      
      
        <!
      
      
        DOCTYPE?hibernate-configuration?PUBLIC
         ??????????"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN"
        ??????????"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN"
         ??????????"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
      
      
        >
        ??????????"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
      
      
        >
      
      
         
         <!--
      
      
        ?Generated?by?MyEclipse?Hibernate?Tools.???????????????????
      
      
        -->
      
      
        <!--
      
      
        ?Generated?by?MyEclipse?Hibernate?Tools.???????????????????
      
      
        -->
      
      
         <
      
      
        hibernate-configuration
      
      
        >
      
      
        <
      
      
        hibernate-configuration
      
      
        >
      
      
         
         <
      
      
        session-factory
      
      
        >
      
      
        <
      
      
        session-factory
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.username"
      
      
        >
      
      
        root
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.username"
      
      
        >
      
      
        root
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.url"
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.url"
      
      
        >
      
      
         ????????jdbc:mysql://localhost:3306/schoolproject?characterEncoding=gb2312
      
      
        &
      
      
        useUnicode=true
        ????????jdbc:mysql://localhost:3306/schoolproject?characterEncoding=gb2312
      
      
        &
      
      
        useUnicode=true
         ????
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="dialect"
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="dialect"
      
      
        >
      
      
         ????????org.hibernate.dialect.MySQLDialect
        ????????org.hibernate.dialect.MySQLDialect
         ????
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="myeclipse.connection.profile"
      
      
        >
      
      
        mysql
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="myeclipse.connection.profile"
      
      
        >
      
      
        mysql
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.password"
      
      
        >
      
      
        1234
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.password"
      
      
        >
      
      
        1234
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.driver_class"
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="connection.driver_class"
      
      
        >
      
      
         ????????com.mysql.jdbc.Driver
        ????????com.mysql.jdbc.Driver
         ????
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="hibernate.dialect"
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="hibernate.dialect"
      
      
        >
      
      
         ????????org.hibernate.dialect.MySQLDialect
        ????????org.hibernate.dialect.MySQLDialect
         ????
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="hibernate.show_sql"
      
      
        >
      
      
        true
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="hibernate.show_sql"
      
      
        >
      
      
        true
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="current_session_context_class"
      
      
        >
      
      
        thread
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="current_session_context_class"
      
      
        >
      
      
        thread
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="jdbc.batch_size"
      
      
        >
      
      
        15
      
      
        </
      
      
        property
      
      
        >
        ????
      
      
        <
      
      
        property?
      
      
        name
      
      
        ="jdbc.batch_size"
      
      
        >
      
      
        15
      
      
        </
      
      
        property
      
      
        >
      
      
         ????
      
      
        <
      
      
        mapping?
      
      
        resource
      
      
        ="Collection/Map/Simple/Team.hbm.xml"
      
      
        ?
      
      
        />
        ????
      
      
        <
      
      
        mapping?
      
      
        resource
      
      
        ="Collection/Map/Simple/Team.hbm.xml"
      
      
        ?
      
      
        />
      
      
         
         
         
         
         </
      
      
        session-factory
      
      
        >
      
      
        </
      
      
        session-factory
      
      
        >
      
      
         
         </
      
      
        hibernate-configuration
      
      
        >
      
      
        </
      
      
        hibernate-configuration
      
      
        >
      
    ?
測試代碼:
?
 package
      
      
        ?Collection.Map.Simple;
      
        package
      
      
        ?Collection.Map.Simple;
         
         
         import
      
      
        ?java.io.File;
      
      
        import
      
      
        ?java.io.File;
         import
      
      
        ?java.util.Map;
      
      
        import
      
      
        ?java.util.Map;
         
         import
      
      
        ?org.hibernate.Session;
      
      
        import
      
      
        ?org.hibernate.Session;
         import
      
      
        ?org.hibernate.SessionFactory;
      
      
        import
      
      
        ?org.hibernate.SessionFactory;
         import
      
      
        ?org.hibernate.Transaction;
      
      
        import
      
      
        ?org.hibernate.Transaction;
         import
      
      
        ?org.hibernate.cfg.Configuration;
      
      
        import
      
      
        ?org.hibernate.cfg.Configuration;
         
         public
      
      
        ?
      
      
        class
      
      
        ?Test?
      
      
      
        
          {
        
      
      
        public
      
      
        ?
      
      
        class
      
      
        ?Test?
      
      
      
        
          {
           
           
           ????
        
        
          public
        
        
          ?
        
        
          static
        
        
          ?
        
        
          void
        
        
          ?main(String[]?args)?
        
        
        
          
            {
          
          ????
        
        
          public
        
        
          ?
        
        
          static
        
        
          ?
        
        
          void
        
        
          ?main(String[]?args)?
        
        
        
          
            {
             
             ????????String?filePath
          
          
            =
          
          
            System.getProperty(
          
          
            "
          
          
            user.dir
          
          
            "
          
          
            )
          
          
            +
          
          
            File.separator
          
          
            +
          
          
            "
          
          
            src/Collection/Map/Simple
          
          
            "
          
          
            +
          
          
            File.separator
          
          
            +
          
          
            "
          
          
            hibernate.cfg.xml
          
          
            "
          
          
            ;
            ????????String?filePath
          
          
            =
          
          
            System.getProperty(
          
          
            "
          
          
            user.dir
          
          
            "
          
          
            )
          
          
            +
          
          
            File.separator
          
          
            +
          
          
            "
          
          
            src/Collection/Map/Simple
          
          
            "
          
          
            +
          
          
            File.separator
          
          
            +
          
          
            "
          
          
            hibernate.cfg.xml
          
          
            "
          
          
            ;
             ????????File?file
          
          
            =
          
          
            new
          
          
            ?File(filePath);
            ????????File?file
          
          
            =
          
          
            new
          
          
            ?File(filePath);
             ????????System.out.println(filePath);
            ????????System.out.println(filePath);
             ????????SessionFactory?sessionFactory
          
          
            =
          
          
            new
          
          
            ?Configuration().configure(file).buildSessionFactory();
            ????????SessionFactory?sessionFactory
          
          
            =
          
          
            new
          
          
            ?Configuration().configure(file).buildSessionFactory();
             ????????Session?session
          
          
            =
          
          
            sessionFactory.openSession();
            ????????Session?session
          
          
            =
          
          
            sessionFactory.openSession();
             ????????Transaction?t
          
          
            =
          
          
            session.beginTransaction();
            ????????Transaction?t
          
          
            =
          
          
            session.beginTransaction();
             ????????
            ????????
             ????????Team?team
          
          
            =
          
          
            new
          
          
            ?Team();
            ????????Team?team
          
          
            =
          
          
            new
          
          
            ?Team();
             ????????team.setTeamname(
          
          
            "
          
          
            team1
          
          
            "
          
          
            );
            ????????team.setTeamname(
          
          
            "
          
          
            team1
          
          
            "
          
          
            );
             ????????Map?stuMap
          
          
            =
          
          
            team.getStudents();
            ????????Map?stuMap
          
          
            =
          
          
            team.getStudents();
             ????????stuMap.put(
          
          
            "
          
          
            stu1
          
          
            "
          
          
            ,?
          
          
            "
          
          
            stu1?description
          
          
            "
          
          
            );
            ????????stuMap.put(
          
          
            "
          
          
            stu1
          
          
            "
          
          
            ,?
          
          
            "
          
          
            stu1?description
          
          
            "
          
          
            );
             ????????stuMap.put(
          
          
            "
          
          
            stu2
          
          
            "
          
          
            ,?
          
          
            "
          
          
            stu2?description
          
          
            "
          
          
            );
            ????????stuMap.put(
          
          
            "
          
          
            stu2
          
          
            "
          
          
            ,?
          
          
            "
          
          
            stu2?description
          
          
            "
          
          
            );
             ????????
            ????????
             ????????session.save(team);
            ????????session.save(team);
             ????????
            ????????
             ????????t.commit();
            ????????t.commit();
             ????????
            ????????
             ????}
            ????}
          
        
        
           
           }
          }
        
      
      
         
      
    ?
運行結果:
    Hibernate: insert into teamMap (teamname, id) values (?, ?)
    
    Hibernate: insert into studentMap (team_id, name, description) values (?, ?, ?)
    
    Hibernate: insert into studentMap (team_id, name, description) values (?, ?, ?)
  
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
 
					微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
 
					

 
       
        