JAVA成都市流动人口服务及综合管理信息系统.doc

上传人:精*** 文档编号:859555 上传时间:2023-09-23 格式:DOC 页数:60 大小:2.05MB
下载 相关 举报
JAVA成都市流动人口服务及综合管理信息系统.doc_第1页
第1页 / 共60页
JAVA成都市流动人口服务及综合管理信息系统.doc_第2页
第2页 / 共60页
JAVA成都市流动人口服务及综合管理信息系统.doc_第3页
第3页 / 共60页
JAVA成都市流动人口服务及综合管理信息系统.doc_第4页
第4页 / 共60页
JAVA成都市流动人口服务及综合管理信息系统.doc_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、XXX论文 成都市流动人口服务及综合管理系统成都市流动人口服务及综合管理信息系统摘 要近年来,农民工子女义务教育已成为一个热点问题,特别是在外来人口较多的城市更为突出,成都也不例外。我市从2004秋季起开始大规模接收农民工子女免借读费入学,相关政策和工作程序经两年的实践和完善,在入学资格、入学程序、工作原则等主要方面已经较为成熟,在实践中也得到了各方面的肯定。不过,在一些细节方面,由于缺乏准确的农民工子女入学信息,政策实施还显得有些粗放,影响了政策实施的效果。最典型的就是入学所要求的“三证”资格审查暴露了我们城市管理信息长期存在的漏洞,在公安局的暂住证管理、劳动局的劳动合同管理、统计局的人口统

2、计等方面,目前都无力提供可信的流动农民工数据。成都市流动人口服务及综合管理信息系统就是在此背景下,孕育而生,此系统基于Strutrs和Hibernate的J2EE快速开发框架的设计与实现,同事利用Java语言自身的特点,如:面向对象,可移植性,安全性,并发机制等,使系统具有敏捷开发,跨操作平台化,安全等特点。同时使政府部门以此系统为基础,更加合理的搜集和管理流动人口的数据,提高了政府部门的办事效率,方便各部门共享数据,实现数据利用的最大化。关键词:Struts Hibernate J2EE MVC模式简介 The floating people of service and comprehen

3、sive management information system in ChengDuAbstractIn recent years, rural workers childrens compulsory education has already become a hot problem, especially more outstanding in more cities of the population from other places, no exception in Chengdu. Our city begins to receive the rural worker ch

4、ildren and avoid borrowing the fee and entering school on a large scale from 2004 autumns, relevant policy and working routine, through practice and completion for two year, in admission qualification, enter school the procedure, working principle main already comparatively ripe, have got the affirm

5、ation of various fields too in practice. However, in some details, the information that enter school because of lacking the accurate rural worker children, the policy still seems a bit extensive, has influenced the result that the policy is implemented. The most typical one enters school requiredly

6、Three cards The qualification checks that loophole information of our city management exists for a long time after exposing, in such aspects as temporary residence permit management, labour contract management, demography of statistics bureau of bureau of labour of the public security bureau, it is

7、unable to offer rural workers data of believable flow at present. Become city flow people mouth serve and comprehensive the management information system under this background, arise, this system J2EE based on Strutrs and Hibernate develops the design of the frame and realizes fast, the colleague ut

8、ilizes the characteristic of Java, for instance: Face the target, the portability, security, erupt mechanism,etc. simultaneously, enable the system and develop quickly, step the operating platform, the characteristic such as being safe. Make the government department based on this system at the same

9、 time, more rational collection and data of the management floating population, improve the speed of the government department, help every department share the data, realize the maximization that the data utilize. Keyword: Struts Hibernate J2EE MVC brief introduction of model目 录1 绪论11.1国内外流动人口现状概述11

10、.2 项目背景11.3 项目目的及意义32系统主要技术42.1 Struts42.2 Hibernate42.3 JAVASCRIPT52.4 Tomcat服务器62.5 MVC模式简介63 项目需求与功能说明73.2 业务功能说明73.2.1综合信息采集:73.2.2综合信息维护93.2.3 综合信息审核93.2.4 综合业务查询93.2.5 数据审查103.2.6 综合信息统计103.2.7 高级信息查询113.2.8 数据导入操作113.3后台管理业务113.4 数据字典113.4.1 配置表123.4.2 系统表123.4.3街路巷数据字典133.4.4 省市区数据字典133.4.5

11、门楼牌数据字典144项目主要功能实现144.1 数据处理层实现144.2页面的数据项验证224.3 Excel导入实现264.4代码配置的实现304.5前台分页排序325 数据库设计385.1 数据库结构设计385.2. 数据库主要表基本结构396.部署规划方案486.1政务资源中心服务器部署486.1.1部署拓扑486.2主要设备规划496.3服务器部署506.3.1数据库服务器506.3.2应用服务器52总结54参考文献55致谢56IVIV1 绪论1.1国内外流动人口现状概述中国人口流动正进入活跃时期,统计显示,大陆流动人口从1982年的657万上升到2005年的147亿,在短短的20多年

12、时间里增长了21倍。据官方的调查推算,2008年中国流动人口达到2.01亿。预计未来30年,中国人口将形成“5亿城镇人口、5亿流动迁移人口、5亿农村人口”三分天下的格局。在经历了人口爆炸式增长后,中国又迎来了一个人口流动爆炸式增长的新阶段。这不仅是现代市场经济中优化人力资源配置的内在要求,更是中国从传统的农业国家向工业化、城镇化迈进过程难以避免的现象,即人口的现代化过程。大学生和其他城市人口因工作、经商等因素从一个城市流向另一个城市,尤其是西部人口以各种途径向东部大量流动;另一方面,无论是农民工还是大学生,其流动具有极强的随意性,其对对流入地和流出地的经济、文化产生较大的影响。虽说,今天的流动

13、人口与中国古代的“流民”不可同日而语,但流动人口同样给中国人口管理带来了新课题,成为未来中国经济社会所必须面对的新挑战。从西部流向东部,从农村流向城市,市场化的中国让人口享受越来越迁徙自由、追求财富的权利和机会,然而,市场经济的无序化也让人口流动存在管理盲点。有人说,中国未来所面临的不止是人口的老龄化和生育率问题,更有流动人口问题。 流动人口给流入地的经济、文化和社会建设来带新元素,对流出地却起到“抽吸”作用,他们把活力带给了前者,把未来揣在身上。从目前中国农村和西部地区的情况看,人口结构就相当不平衡,老、少、病、残成了这些广袤地区的坚守者,新农村建设面临后继乏人的尴尬。在中国二元管理结构尚未

14、彻底打破的环境中,流动人口群体工难定所、居难定所、情难定所,因其付出的和所能享受到的不能对等,因与原居地社会文化出现断裂,与流入地社会文化又难接续,导致这一群体更容易产生特殊心理,幷为社会的稳定埋下隐患。而管理流动人群,决非一些人认为的只要放开城镇户籍这么简单,当局现有的方式显然已经落伍,改革甚至重建中国社会管理机制已迫在眉睫。1.2 项目背景2003年以来,我市流动人口数量呈现快速、大幅度增长态势。据统计2003年登记的流动人口1119005人。截至2008年10月,已登记流动人口2281568人,五年来增张了1.04倍。随着当前金融危机影响不断加深,返乡民工回流压力不断加大,我们预测,未来

15、五年,我市流动人口将以每年10%以上的增长率逐年递增。保守估计,到2012年,我市流动人口的登记数量将突破300万。我市流动人口突出表现为以下四个特点: 从规模总量看,具有增幅性。 图1-1 流动人口总量变化图 从居住状况看,具有相对集中性。呈现出“大集中小分散”,开始向一圈层周边区县聚居的特点。从目前看来,主要分布在武侯区的簇桥、机投、金花,金牛区的五块石、荷花池、沙河源、金泉、天回,青羊区的苏坡、文家,成华区的双水碾、青龙、保和、龙潭,锦江区的成龙、狮子山、柳江,高新区的三瓦窑等地;近年来也出现了外来流动人口在主城区务工、到远郊区聚居的情况,主要分布在新都大丰,郫县安靖、郫筒、团结,双流华

16、阳等地。 从停留时间看,具有稳定性。图1-2 流动人口在蓉居住时间构成图 从就业情况看,具有广泛性。图1-3 流动人口分布图1.3 项目目的及意义通过对系统的开发和对各级系统使用用户的培训,以政府信息网络为依托,建立多部门流动人口管理综合应用。实现由“以证管人”,“以房管人”,“以业管人”的服务管理方向的转变;同时实现多部门参与联动互动,实现数据的充分共享化,避免形成数据孤岛,为政府提供以下四点保障:a. 为党委政府决策分析提供信息保障b. 为政府部门履行行政管理职责提供信息保障c. 为公安机关预防打击犯罪维护社会稳定提供信息保障2系统主要技术2.1 StrutsJakarta Struts足

17、由 apache JF 开发,实现了 Model View Controller设计模式的概念 ,Struts 构件与 MCV没计模式对应关系如下:图2-1 Struts结构图1 )Jsp页面对应View,Struts的 Html 标志库使 Jsp成为一个基本纯净的View层; 2 ) ActionServlet对应 Controller ,根据 Strutsconfig.xml的配置文件进行控制转发; 3 )ActionForm类把Jsp页面的form域自动封装成为一个ActionForm对象,避免的繁琐的getParameter和set操作; 4 )Action类对应Model层,Acti

18、on类执行商务逻辑,执行各种操作,然后返同ActionForward类,让控制器转发。2.2 HibernateHibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约

19、开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。Hibernate技术本质上是一个提供数据库服务的中间件。它的架构如图2-2所示:图2-2 Hibernate流程图图2-2显示了hibernate的工作原理,它是利用数据库以及其他一些配置文件如hibernate.properties,XML Mapping等来为应用程序提供数据持久化服务的。Hibernate具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了Hiber

20、nate的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTA API都被抽象了,Hibernate会替你照管所有的细节。2.3 JAVASCRIPTJavascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。 运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 N

21、avigator 30以上版本的浏览器都能支持 Javascript程序,微软公司 Internet Explorer 30以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍, 又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。 同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。2.4 Tomcat服务器Tomcat是Apache 软件基金会(Apache Software Foundation)的Jaka

22、rta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,成为目前比较流行的Web 应用服务器。2.5 MVC模式简介MVC是Model(模型)View(视图)Controller(控制器)的缩写,它适用于大型可扩展的Web应用的开发,它强制性地将应用程序的输入、处理和输出分开,将其划分为模型、视图和控制器三个核心部分,使它们各司其职,各自完成不同的任务

23、,其中任何一部分的修改都不会影响其它两部分。在MVC模式中,模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了业务逻辑的处理过程。模型一方面被控制器调用,完成问题处理的操作过程,另一方面为视图获取显示数据提供了访问数据的操作。因为模型是与数据格式无关的,因此一个模型可以为多个视图提供数据,这样一个模型一次编写可以被多个视图重用,从而避免了代码的重复编写。视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据,视图的更新由控制器控制。视图不包含任何业务逻辑的处理,它只是作为一种输出数据的方式。MVC模式中,控制器主要起导航的作用,它根据用户的输入调用相应的模型和视图去完成用户的

24、请求。控制器本身不输出任何东西,它接受用户请求并决定调用哪个模型构件去处理,以及由哪个视图来显示模型处理之后返回的数据。MVC的处理过程是这样的:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。图2-1所示为模型、视图、控制器这三个模块各自的功能以及它们之间的相互关系:图2-3 MVC模式3 项目需求与功能说明3.2 业务功能说明3.2.1综合信息采集:1)房屋基本信息登记根据采集的房屋信息进行录入。页面所有标记红色*的数据项为必填项。行政区划实现级联

25、选择,依次选择。街路巷及门牌号必须输入拼音码通过提示输入功能进行选择填写。(该数据由公安局提供),不可自行填写。房内人口分类 总数=常住人口+流动人口 之和。常住人口数 = 人户一致数+人在户不在数。房屋使用分类选择出租时,页面通过控件显示需要添加的数据项(包括出租房屋信息、出租房主信息、承租人信息)。房屋用途根据实际情况选择(包括居住、生产、经营、办公、仓储、其他)。选择房屋相关信息,工作记载选填,完成保存。点击保存按钮后,保存成功后会有一个提示信息页面,包括以下选项:l 为当前房屋添加人员信息-在当前房屋下增加人口信息。l 继续登记其他房屋信息-新增加其他房屋信息。l 编辑当前房屋信息-可

26、修改当前已保存的房屋信息。最后,根据需要选择相关操作即。2)房屋人口基本信息登记根据录入的房屋信息,为该房屋录入对应的人口信息。在录入房屋人口信息时,需先查询出要为哪个房屋添加人口信息的房屋,首先,设置条件可定位到具体的房屋,可设置的条件包括,房屋所在的区划、街路巷、门牌号以及登记时间,点击查询,得到房屋信息列表,在房屋信息后面操作列要求有两个功能按钮:房屋信息:点击后可查看当条房屋详细信息。人口登记:进入该房屋下的人口信息录入界面:首先,有红色*标记的数据项要求为必须填写,如不填写,点击保存时会有相关提示信息。其中,输入身份证号后,到后台数据库中校验当前输入的身份证号是否已经存在,如已经存在

27、,系统将会提示信息:提取当前人员信息 :将从数据库中取出该人员身份信息,自动填充于页面数据项中,即可直接进行保存。登记其他人员信息:将登记其他人员信息。如不存在,将提示该人员可以进行录入,同时,出生日期会由系统根据身份证号自动计算出出生日期,并填充到出生日期对应文本框中。人口信息登记的户口地省市区必须输入拼音码通过提示输入功能进行选择填写,(该数据由公安局提供),不可自行填写。页面通过控件根据出生日期计算出该人员的年龄,如果该人年满14周岁,要求录入年满14周岁的人员相关信息,还有年满6周岁及学龄人口信息等,如符合其中某一项时又没填写时,系统将在保存时会提示填入相关信息。页面信息填写完成后,点

28、击保存成功之后,返回到人口信息添加页面,继续为当前房屋增加人员,直至该房屋人员添加完毕。3)用工单位基本信息登记根据采集的用工单位信息进行录入。通过级联选择行政区划信息。街路巷及门牌号必须输入拼音码通过提示输入功能进行选择填写。(该数据由公安局提供),不可自行填写。单位名称、单位类型必填项。其中从业人员数的 总数=流动人口数+常住人口数。其他数据项主要包括:企业注册登记号、组织机构代码、纳税人识别号、法定代表人/负责人、身份证号、联系电话、工作记载。点击保存后,将会有一个操作提示页面,包括以下:l 为当前用工单位增加人员信息-在当前用工单位下添加人员信息。l 继续编辑其他用工单位信息-新增加用

29、工单位信息。l 编辑当前用工单位信息-可对当前该条用工单位信息进行修改。根据需要进行选择相关操作。4)用工单位人口信息登记根据录入的用工单位信息,为该单位录入对应的人口信息。用工单位人口信息登记时,先要查询出用工单位,在为相关的用工单位增加人员信息,设置用工单位的查询条件,先选择行政区划,在设置条件,可设置条件包括街路巷、门牌号、组织机构代码、注册号、单位名称,点击查询,得到包括以下字段的结果列表:区划、街路巷、门牌号、用工单位名称、组织机构代码、注册号、操作,其中操作包括两个功能:1) 单位信息:点击按钮进去可查看当前一条用工单位的详细信息。2) 人口登记:即为该用工单位登记人员信息。点击人

30、口登记,进入人口登记页面,操作同房屋人口信息登记。人口信息登记的、户口地省市区必须输入拼音码通过提示输入功能进行选择填写,(该数据由公安局提供),不可自行填写。添加人口信息同房屋人口信息登记操作。3.2.2综合信息维护综合信息维护系统包括房屋基本信息维护,人口基本信息维护,用工单位信息维护,人业关联信息维护以及人房关系信息维护。对录入系统的数据进行修改、调整维护,原则上谁录入谁维护,同时提供分级授权维护策略。为保证数据的安全与一致性,数据维护时非关键信息可以直接有终端采集用户直接维护,关键信息(如身份证等)的维护需要公安相关部门或者高权限的用户进行维护。具体操作流程为:登陆系统 选择【综合信息

31、维护】模块 选择【人口/房屋/用工单位基本信息维护】 选择一定的查询条件查询出数据 对查询出的数据有【查看】,【编辑】,【删除】操作功能。3.2.3 综合信息审核综合信息审核模块是对用户已经录入的数据进行检查和验证的过程,拥有审核权限的用户对录入的数据进行审核,只有审核通过的数据才能正式被确认为有效数据,综合业务查询和分析统计只针对审核过的数据。为了精确审核某一条房屋信息,可根据行政区划设置查询条件,包括街路巷、门牌号、详址,登记时间。审核提供两种审核方式:单一审核和批量审核。单一审核是保证数据正确性最高的审核方式,可逐一核对每条数据项信息。批量审核对于录入质量较高的数据可进行一次选择多条同时

32、审核,可提高审核数据的速度。对房屋进行审核时,可连同该房屋下对应的人口信息一并审核。具体操作流程为:登陆系统 选择【综合信息审核】模块 选择【人口/房屋/用工单位基本信息审核】 选择一定的查询条件查询出数据 对查询出的数据有【查看】,【编辑】,【删除】操作功能。3.2.4 综合业务查询数据查询对入库的数据进行快速检索,并提供严格权限控制,具有权限人员才允许进行查询操作。快速查询实现:1)以房找人-输入房屋门牌号或者其他基本信息,即可快速定位到房屋,并显示房屋信息,房屋居住的流动人口情况。2)以人找房-输入身份证号或者其他的基本信息,即可快速定位到该人口信息,并且显示人口信息和人口所在房屋信息。

33、3)以业空人-输入单位名称或者其他基本信息,即可快速定位到该人口信息,并且显示用工单位信息-用工单位的流动人口情况。4)以人找业-输入身份证号或者其他的基本信息,即可快速定位到该人口信息,并且显示人口信息和人口所在用工单位信息。3.2.5 数据审查数据审查是上级权限用户对某一天录入情况的一个审查,比如说今天房屋信息录入得数量,以及录入系统后已审核数量的多少和未审核数量的多少都可以通过这个功能得到详细的数据。同时街道和社区不具有这个功能的权限。3.2.6 综合信息统计1)出租房屋基本信息统计统计出租房屋的用途、出租房所有权、租赁期限、是否签订治安责任书。2)出租房生产经营情况统计统计出租房屋生产

34、和经营信息。3)房屋证照办理情况统计统计是否办理工商执照、是否办理卫生许可、是否办理生产许可、是否办理药品许可、是否办理医疗器械许可、是否办理环保许可、是否办理税务登记、是否办理文化许可。4)房屋基本信息统计统计房屋使用分类、房屋用途、是否违规搭建、有无违法生产经营嫌疑、有无其他违规嫌疑、房内人口分类情况。5)大型用工单位信息统计统计单位类型、企业登记注册情况、有无机构代码、纳税人识别号、从业人员数。6)流动人口学龄信息统计统计就学状况、学段及生源类别。7)流动人口就业状况统计统计就业状况、是否签订劳动合同、失业类型、失业原因。8)流动人口其他情况统计统计健康状况、基本医疗保险、基本医疗保险种

35、类、免疫接种、婚育证明。9)流动人口民族信息统计统计民族信息。10)流动人口基本信息统计 统计所有人员信息(包括年龄、性别、来自区域、居住从业情况、来本址时间)、16岁以上人员信息(包括是否低保、婚育证明、是否办理暂住证、是否加入工会)、14岁以上人员信息(包括政治面貌)、6岁以上人员信息(包括受教育程度)。11)流动人口统计月报统计指定月份的流动人口月信息。包括性别、暂住时间、来自区域、居住住所。3.2.7 高级信息查询高级信息查询主要提供给具有高级权限的用户使用,用户根据自己的需求自定义查询条件,这种查询方式模拟数据库的查询方式,只是把这种方式用户化,简单化,同时用户也可以选择展示的数据内

36、容,想看到什么,不想看到什么全部交由用户控制,充分考虑到用户不定的需求。3.2.8 数据导入操作利用PDA采集的房屋信息,人口信息和用工单位信息,可以把PDA收集的数据转换成Excel文件,用户可以选择响应的数据接口,导入大量数据,免去了进行单条的手工录入,节省了大量的时间。3.3后台管理业务此功能主要分为用户管理,资源管理,授权管理,系统管理四个子模块,主要是对系统的用户进行分级管理,对于不同的用户授予不同的权限,同时配置系统的资源。系统管理主要是配置业务系统的代码,便于灵活管理。3.4 数据字典提供系统使用过程中的数据标准选项,数据字典的依据为,有国标采用国标,无国标有部标的采用部标,没有

37、标准的编写成都市标准,并预留未来国标实施后的兼容与扩展接口。数据录入涉及的数据参考标准包括:GB/T 22611980 人的性别代码 GB/T 33041991中国各民族名称罗马字母拼写法和代码GB/T 47621984政治面貌代码 GB/T 4767-1984健康状况代码GB/T 4658-1984文化程度代码GB/T 4766-1984婚姻状况代码 GB11643公民身份号码GB/T11714全国组织机构代码编制规则GB/T6565职业分类与代码3.4.1 配置表1) 代码库_代码类型数据结构(T_CODE_TYPE):2) 代码库_代码数据表(T_CODE_DATA):3.4.2 系统表

38、系统日志表(T_SYS_LOG)-用于存储用户的登陆记录,以及系统错误的相关信息。3.4.3街路巷数据字典3.4.4 省市区数据字典3.4.5 门楼牌数据字典4项目主要功能实现4.1 数据处理层实现1. 创建数据会话工厂-会话工厂是一个线程安全且不可变的缓存快照,它属于单一数据库的编译过的映射文件。并且它是Session的工厂。它可能持有一个可选的数据缓存,在进程级别或者集群级别保存数据,这些数据能在事物中用。它也可能持有事物之间的重用数据的缓存。在建立SessionFactory实例之前,我们首先创建用于存储SessionFactory的Hashtable,如果Hashtable已经有Ses

39、sionFactor实例的键值对存在则不在建立,如果没有简直对存在就调用init(),这样做的目的是避免重复的读取Hibernate配置文件的内容,从何减小了系统的消耗。可以这样子做的原因是因为SessionFactory具备如下的两个特点:l 线程安全。整个应用公用一个SessionFactor实例。l 重量级。在SessionFactory中存放了Hibernate配置信息以及映射元素数据信息,这些都需要大量的缓存消耗。具体的代码如下:private static Hashtable table = new Hashtable();public AnnotationSessionFacto

40、ry() /*得到hibernate配置信息 return SessionFactory */public SessionFactory getSessionFactory() SessionFactory sessionFactory = (SessionFactory) table.get();if (sessionFactory = null) init();sessionFactory = (SessionFactory) table.get();return sessionFactory;/*初始化*/protected void init() try SessionFactory

41、sessionFactory = new AnnotationConfiguration().buildSessionFactory();table.put(, sessionFactory); catch (Exception e) LOG.error(error configuring, e);throw new RuntimeException(e.getMessage();2. 创建会话-会话是一个单线程,生命周期短促的对象。它代表应用程序和持久化层之间的一次对话。它封装了一个JDBC连接,同时也是Transaction的工厂。它保存必须的持久化对象的缓存,用于遍历对象图,或者通过标识

42、符查找对象。有session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一个SessionFactory并从中获取Session实例,但是session并不是线程安全的,所以HashtableString, ThreadLocal table = new HashtableString, ThreadLocal()的键值对用于专门对Session进行管理,特别是用ThreadLocal模式解决方案。ThreadLocal实现了为每个线程内共享Session实例,具体代码实现如下:private SessionFacto

43、ryManager sessionFactory = new AnnotationSessionFactory();/* hibernate session */private Session session;/* hibernate 事务 */private Transaction transaction;/* hibernate配置文件 */private String props = hibernate.cfg.xml;/* 是否回滚 */private boolean rollBackOnly = false;/* 是否同一session */private boolean own =

44、 false;/* 用于存放sesson实例 */private static final HashtableString, ThreadLocal table = new HashtableString, ThreadLocal();private ThreadLocal threadLocal;/*以默认的classes根目录下获取hibernate.cfg.xml作为配置文件构造*/public HibernateSession() threadLocal = (ThreadLocal) table.get(this.props);if (threadLocal = null) thre

45、adLocal = new ThreadLocal();table.put(this.props, threadLocal);/*以参数路径props作为配置文件构造*/public HibernateSession(String props) if (props != null) this.props = props;threadLocal = (ThreadLocal) table.get(this.props);if (threadLocal = null) threadLocal = new ThreadLocal();table.put(this.props, threadLocal);/*获取Session *return session *throws HibernateException*/SuppressWarnings(deprecation)public Session getSession() throws HibernateException session = (Session) threadLocal.get();if (session = null) session = sessionFactory.getSessionFactory(props).openSession();transaction =

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922