热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hibernate集合映射之Mapelement映射基本类

所谓基本类型,就是指java.lang.String,java.lang.Integer等基本类 以及用户编写的非实体类,虽然map中的数据是我们的数据库中的一个表,但我们不必为他创建P

所谓基本类型,就是指java.lang.String,java.lang.Integer等基本类 以及用户编写的非实体类,虽然map中的数据是我们的数据库中的一个表,但我们不必为他创建POJO类及HBM文件

数据库结构:

 





create


 


table


 teamMap (id 


varchar


(


32


),teamname 


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;








import


 java.util.HashMap;





import


 java.util.Map;









public


 


class


 Team 


...



{



   


private


 String id;



   


private


 String teamname;



   


private


 Map students


=


new


 HashMap();






public


 String getId() 


...



{



    


return


 id;



}









public


 


void


 setId(String id) 


...



{



    


this


.id 


=


 id;



}









public


 String getTeamname() 


...



{



    


return


 teamname;



}









public


 


void


 setTeamname(String teamname) 


...



{



    


this


.teamname 


=


 teamname;



}









public


 Map getStudents() 


...



{



    


return


 students;



}









public


 


void


 setStudents(Map students) 


...



{



    


this


.students 


=


 students;



}






}








 

Team.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


="Collection.Map.Simple.Team"


 table


="teamMap"


 


>





    


<


id 


name


="id"


 unsaved-value


="null"


>





      


<


generator 


class


="uuid.hex"


>


generator


>





    




id


>





    


<


property 


name


="teamname"


 type


="string"


 column


="teamname"


>


property


>





    


<


map 


name


="students"


 table


="studentMap"


>





      


<


key 


column


="team_id"


>


key


>





      








      


<


index 


column


="name"


 type


="string"


>


index


>





      


<


element 


type


="string"


 column


="description"


>


element


>





    




map


>









class


>












hibernate-mapping


>







 

Hibernate.cfg.xml

 







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


>





    


<


property 


name


="connection.username"


>


root




property


>





    


<


property 


name


="connection.url"


>





        jdbc:mysql://localhost:3306/schoolproject?characterEncoding=gb2312


&


useUnicode=true



    




property


>





    


<


property 


name


="dialect"


>





        org.hibernate.dialect.MySQLDialect



    




property


>





    


<


property 


name


="myeclipse.connection.profile"


>


mysql




property


>





    


<


property 


name


="connection.password"


>


1234




property


>





    


<


property 


name


="connection.driver_class"


>





        com.mysql.jdbc.Driver



    




property


>





    


<


property 


name


="hibernate.dialect"


>





        org.hibernate.dialect.MySQLDialect



    




property


>





    


<


property 


name


="hibernate.show_sql"


>


true




property


>





    


<


property 


name


="current_session_context_class"


>


thread




property


>





    


<


property 


name


="jdbc.batch_size"


>


15




property


>





    


<


mapping 


resource


="Collection/Map/Simple/Team.hbm.xml"


 


/>





















session-factory


>












hibernate-configuration


>


 

测试代码:

 





package


 Collection.Map.Simple;











import


 java.io.File;





import


 java.util.Map;








import


 org.hibernate.Session;





import


 org.hibernate.SessionFactory;





import


 org.hibernate.Transaction;





import


 org.hibernate.cfg.Configuration;









public


 


class


 Test 


...



{










    


public


 


static


 


void


 main(String[] args) 


...



{






        String filePath


=


System.getProperty(


"


user.dir


"


)


+


File.separator


+


"


src/Collection/Map/Simple


"


+


File.separator


+


"


hibernate.cfg.xml


"


;



        File file


=


new


 File(filePath);



        System.out.println(filePath);



        SessionFactory sessionFactory


=


new


 Configuration().configure(file).buildSessionFactory();



        Session session


=


sessionFactory.openSession();



        Transaction t


=


session.beginTransaction();



        



        Team team


=


new


 Team();



        team.setTeamname(


"


team1


"


);



        Map stuMap


=


team.getStudents();



        stuMap.put(


"


stu1


"





"


stu1 description


"


);



        stuMap.put(


"


stu2


"





"


stu2 description


"


);



        



        session.save(team);



        



        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 (?, ?, ?)


Hibernate集合映射之Map-----element映射基本类型值




推荐阅读
author-avatar
ha遗忘的密
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有