热门标签 | 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映射基本类型值




推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 数组的排序:数组本身有Arrays类中的sort()方法,这里写几种常见的排序方法。(1)冒泡排序法publicstaticvoidmain(String[]args ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
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社区 版权所有