信计专业级暑期实习报告_测量学暑期实习报告
信计专业级暑期实习报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“测量学暑期实习报告”。
信息与计算科学2014级
暑期实习报告
系(院): 信息与数学学院 专业: 信息与计算科学 姓 名:沈马锐
指导教师:邹健、吴静、詹福星
实习时间:
2017.6.25-2017.7.22
实习地点:武汉厚溥教育科技有限公司
目录
一、实习概况.........................................................................................2
二、实习时间.........................................................................................2
三、实习地点.........................................................................................2
四、实习内容.........................................................................................3 大数据方向.......................................................................................4(1)Python程序设计语言........................................................9(2)VMware虚拟机.................................................................9(3)Linux操作系统..............................................................10(4)Shell命令.......................................................................11(5)Hadoop平台..................................................................12 Java综合方向....................................................................................9(1)HTML静态网页...............................................................9(2)SQL SERVER数据库........................................................10(3)Java基础........................................................................11(4)页面设计-JSP页面...........................................................12(5)JDBC连接数据库...........................................................13
五、实习总结.......................................................................................14
六、实习场景.......................................................................................16
一、实习概况
实习是一名大学生必走的道路,它是让你提前体验社会经历佳途。实习同样也是大学教育最后一个极为重要的实践性教学环节。通过实习,使我们在社会实践中接触与本专业相关的实际工作,增强感性认识,培养和锻炼我们综合运用所学的基础理论、基本技能和专业知识,去独立分析和团队合作解决实际问题的能力,把理论和实践结合起来,提高实践动手能力,为我们毕业后走上工作岗位打下一定的基础;同时可以检验在实习过程中老师的教学效果,为进一步提高教育教学质量,培养合格人才积累经验,并为自己能顺利与社会环境接轨做准备。
二、实习时间
2017年6月25日—2017年7月22日
三、实习地点
武汉厚溥教育科技有限公司 简介:
武汉厚溥企业集团是集IT产品研发、教育培训、管理咨询、人力资源服务等业务于一体的综合型IT服务机构,总部位于中国武汉光谷软件园,目前已在河南、湖南、贵州、广西、广东、江西等省成立子公司,与当地高校进行校企合作。2013年被中国软件行业协会列为“中国软件行业产学合作模式库”首批案例单位,是全国领先的大学产学合作模式企业。
公司致力于为高等院校信息技术相关院系和国际国内IT企业提供中高端人才解决方案。基于独创的ECDIO流程技术和项目驱动产品服务模式,公司开发完成了云计算、大数据、UI&UE前端界面设计、WEB前端开发、IOS、软件测试、软件技术PHP、VR虚拟现实技术、软件技术 JAVA、软件技术DOTNET、移动互联技术、GIS应用技术、物联网应用技术、网络营销与管理、企业信息化管理、动漫制作与设计等专业人才培养体系,并拥有完善的实施服务系统;而且,随着行业技术的发展定期予以更新。
迄今为止,公司已与武汉大学、华中科技大学、湖北工业大学、武汉理工大学、湖北师范学院、重庆邮电大学、河南教育学院、武汉软件工程职业学院、荆州职业技术学院、湖北国土资源职业学院、黄冈职业技术学院、湖北科技职业学院等22所高校开展了多种形式的合作,为华为、HP、IBM、联想、腾讯、阿里等1600余家企业输送了10000余名软件及服务外包人才----他们分别有大专、本科、研究生、在职或社会青年等不同起点,赢得了良好的社会声誉。
公司在北京、深圳、上海、广州、杭州、南京等IT产业较发达地区设有人才服务基地。
公司为商务部指定外包人才培养机构、工信部人才交流中心指定大学生实习基地、教育部教育信息中心物联网技术湖北推广中心、“中国软件行业产学合作模式库”首批案例单位等。
四、实习内容
首先我们参加了有党委副书记张大春老师、副院长胡中波教授、领队邹健教授等老师为我们开展的实习动员大会。大会上各位老师分别用以往的实习经验为我们容易在实习中犯得错误打了防疫针,而且提出了很多要求,告诫我们本次实习不同于以往的重要性,在实习前需要提前掌握什么,以及我们可以借什么方面的书籍等等做了详尽的解说。听了老师们的介绍,同学们深知此次实习的非凡意义,心中是充满了无限的向往与憧憬之情,恨不得马上体验这为期一个月的武汉实习之旅。整个专业实习分为两个方向,一个是大数据方向,另外一个就是Java综合方向。大数据方向
Python程序设计语言
这个阶段我们主要学习Python的基本语法,变量类型,操作符,流程控制语句,对于Python这门面向对象的解释型计算机程序设计语言的基本掌握并运用。
Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
自从20世纪90年代初Python语言诞生至今,它已被逐渐广泛应用于系统管理任务的处理和Web编程。
Python的创始人为Guido van Roum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。
ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。
就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
Python已经成为最受欢迎的程序设计语言之一。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python的使用率呈线性增长。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。
说起科学计算,首先会被提到的可能是MATLAB。然而除了MATLAB的一些专业性很强的工具箱还无法替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:
首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多 开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。
VMware虚拟机
在学习完Python语言之后,我们开始学习虚拟机的构建使用及多台虚拟机的联动使用,虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。
虚拟机技术是虚拟化技术的一种,所谓虚拟化技术就是将事物从一种形式转变成另一种形式,最常用的虚拟化技术有操作系统中内存的虚拟化,实际运行时用户需要的内存空间可能远远大于物理机器的内存大小,利用内存的虚拟化技术,用户可以将一部分硬盘虚拟化为内存,而这对用户是透明的。又如,可以利用虚拟专用网技术(VPN)在公共网络中虚拟化一条安全,稳定的“隧道”,用户感觉像是使用私有网络一样。
虚拟机技术最早由 IBM 于上世纪六七十年代提出,被定义为硬件设备的软件模拟实现,通常的使用模式是分时共享昂贵的大型机。虚拟机监视器是虚拟机技术的核心,它是一层位于操作系统和计算机硬件之间的代码,用来将硬件平台分割成多个虚拟机。VMM 运行在特权模式,主要作用是隔离并且管理上层运行的多个虚拟机,仲裁它们对底层硬件的访问,并为每个客户操作系统虚拟一套独立于实际硬件的虚拟硬件环境(包括处理器,内存,I/O 设备)。VMM 采用某种调度算法在各个虚拟机之间共享 CPU,如采用时间片轮转调度算法。
VMware 可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比,VMWare采用了完全不同的概念。多启动系统在一个时刻只能运行一个系统,在系统切换时需要重新启动机器。VMWare是真正“同时”运行,多个操作系统在主系统的平台上,就像标准Windows应用程序那样切换。而且每个操作系统你都可以进行虚拟的分区、配置而不影响真实硬盘的数据,你甚至可以通过网卡将几台虚拟机用网卡连接为一个局域网,极其方便。安装在VMware操作系统性能上比直接安装在硬盘上的系统低不少,因此,比较 适合学习和测试。使我们可以在同一台PC机上同时运行Windows NT、Linux、Windows 9x、FreeBSD„„可以在使用Linux的同时,即时转到Win 9x中运行Word。如果要使用Linux,只要轻轻一点,又回到Linux之中。就如同你有两台计算机在同时工作。实现的工具就是:虚拟计算平台——Vmware。
Linux操作系统
这个阶段我们主要对Linux操作系统有了简单,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
Shell命令
在构建完虚拟机以及学习完Linux操作系统之后,我们开始学习在Linux系统下运行的shell命令。在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
Shell不是一个程序.他大意是指对系统的操控权,一个操控接口, shell的概念是从Unix继承下来的,shell是分等级的,所以就有了提升权限的概念。
Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。现在延伸进Windows。
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
不论是哪一种Shell,它最主要的功用都是解译使用者在命令列提示符号下输入的指令。Shell 语法分析命令列,把它分解成以空白区分开的符号(token),在此空白包括了跳位键(tab)、空白和换行(New Line)。如果这些字包含了metacharacter,shell 将会评估(evaluate)它们的正确用法。另外,shell 还管理档案输入输出及幕后处理(background proceing)。在处理命令列之后,shell 会寻找命令并开始执行它们。
Shell 的另一个重要功用是提供个人化的使用者环境,这通常在 shell 的初始化档案中完成。这些档案包括了设定终端机键盘和定义窗口的特征;设定变量,定义搜寻路径、权限、提示符号和终端机类型;以及设定特殊应用程序所需要的变量,例如窗口、文字处理程序、及程序语言的链接库。Korn shell 和 C shell 加强了个别化的能力:增加历程、别名、和内建变量集以避免使用者误杀档案、不慎签出、并在当工作完成时通知使用者。
Shell 也能当解译性的程序语言(interpreted programing language)。Shell 程序,通常叫做命令文件,它由列在档案内的命令所构成。此程序在编辑器中编辑(虽然也可以直接在命令列下写作程序,online scripting),由 UNIX 命令和基本的程序结构,例如变量的指定、测试条件、和循环所构成。您不需要编译 shell 命令档。Shell 本身会解译命令档中的每一行,就如同由键盘输入一样。shell 负责解译命令,而使用者则必须了解这些命令能做什么。下面列出了一些有用的命令和它们的使用方法。
Hadoop平台
在学会了多台虚拟机的联动使用以及shell程序设计语言之后,我们开始学习Hadoop平台,一个低成本、高效、可靠、适合大数据的分布式储存和计算的平台。
Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。它是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。它是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。它还是可伸缩的,能够处理PB级数据。此外,Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
而Hadoop对于大数据处理的意义也是很大的。Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里。
在Hadoop 出现之前,高性能计算和网格计算一直是处理大数据问题主要的使用方法和工具,它们主要采用消息传递接口提供的API来处理大数据。高性能计算的思想是将计算作业分散到集群机器上,集群计算节点访问存储区域网络SAN 构成的共享文件系统获取数据,这种设计比较适合计算密集型作业。当需要访问像PB 级别的数据的时候,由于存储设备网络带宽的限制,很多集群计算节点只能空闲等待数据。而Hadoop却不存在这种问题,由于Hadoop使用专门为分布式计算设计的文件系统HDFS,计算的时候只需要将计算代码推送到存储节点上,即可在存储节点上完成数据本地化计算,Hadoop中的集群存储节点也是计算节点。在分布式编程方面,MPI 是属于比较底层的开发库,它赋予了程序员极大的控制能力,但是却要程序员自己控制程序的执行流程,容错功能,甚至底层的套接字通信、数据分析算法等底层细节都需要自己编程实现。这种要求无疑对开发分布式程序的程序员提出了较高的要求。相反,Hadoop的MapReduce却是一个高度抽象的并行编程模型,它将分布式并行编程抽象为两个原语操作,即map操作和reduce操作,开发人员只需要简单地实现相应的接口即可,完全不用考虑底层数据流、容错、程序的并行执行等细节。这种设计无疑大大降低了开发分布式并行程序的难度。Java综合方向(1)HTML静态网页
这个阶段的实训我们主要是练习网页制作及网站发布的各种知识。近些年随着计算机的广泛应用,Internet已经成为人们获得信息不可或缺的媒介,特别是Internet的普及和发展,网络已经成为了不可或缺的通信手段。无论是最新的新闻信息、新产品的出台、新游戏的发布、最新的动态,包括等候就业人才的个人简历,我们都是可以通过网络来获得。但是什么为这提供平台的呢。我们又是通过什么来获取这些信息的呢—网页。由于人们使用网络的频繁,网页作为上网的主要依托就变得非常的重要。网页讲究的是排版布局,其功能主要就是提供一种形式给每个上网者,让他们能够了解网站提供的信息。网页设计直接面对的是大量的用户,随时都会反馈回来对网页的批评建议等,可以根据实际情况进行修改,这样做可以使使用者用起来更加的方便。
Dreamweaver和Hbuilder工具为我们实现这些提供了便利,下面我将网页制作和网站发布的知识总结如下:
1.网页制作的前期工作是搜集大量的素材,我们的网页只有是实用的才会是大众喜欢的,搜集素材以充实我们的网页。当然我们也应该在此时定下网站的方向是什么,剩下的就是靠Dreamweaver进行编辑;
2.网页的版式设计,版式设计时我们应该有重点,把重要的内容新闻放在醒目的位置上。规划各元素在网页中的位置关系和表现方法,合理安排图像、文本等元素,使网页布局合理、美观大方;
3.文本编写,我们的网页中需要大量的文字材料,这就要在网页编辑器中用HTML语言中的标签编写。也可以利用网页编辑工具的“所见即所得”功能,直接写入文字。在浏览器中运行时出现冗余代码时返回代码页面重新进行查看修改;
4.处理网页之间的关联,这主要是建立合理、高效的网页导航系统; 5.网页发布过程,主要是将建设好的网页上传到服务器中供用户浏览。
存在的问题及解决思路
(1)在Dreamweaver基础方面:制作网页时如何实现网页不跳转就可以出现新的内容,实现页面内的链接;用代码编写网页上的按钮,实现按钮的各种功能,如刷新,重置,确定操作。C样式表的概念模糊。
(2)网站风格方面:一个网站的各个页面之间风格应该是统一的,只有围绕一个风格才会成功。
(3)网站的内容方面:在制作网站时内容之间应该是相关的,在制作时我们不能追求面面俱到,只能做到精益求精。杂乱无章的网站是不会有大的发展的。
(2)SQL SERVER数据库
用 SQL SERVER2008 做系统,这对于我们来说还算比较简单,因为刚开始我 们更本不知道怎样入手我们所需要建立的对象较为简单,学习了几天就开始下一阶段的内容。1.SQL Server 2000 数据库引擎提供完整的支持。它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型用以开发Web应用程序,并且SQL Server 2000 支持 English Query 和 Microsoft搜索服务等功能,在 Web 应用程序中包含了用户友好的查询和强大的搜索功能。
2.SQL Server 2000企业版支持联合服务器、索引视图和大型内存支持 等功能,使其得以升级到最大 Web站点所需的性能级别。
3.SQL Server 2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000分布式查询使您得以引用来不同数据源的数据,就好象这些数据是 SQL Server 2000数据库的一部分,同时分布式事务 支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复 本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用 户,使这些用户 自主地工作,然后将他们所做的修改合并回发布服务器。
4.SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在支持基于标准的与 WindowsDNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付SQL Server应用程序,使客户只需最少的安装和管理开销即可实现这 些应用程序。(3)Java基础
Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Acce、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。
控制技术-Servlet技术 1)什么是Servlet? 一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。2)Servlet的生命周期
一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个 servlet时,该容器执行下列步骤。页面设计-JSP页面 1)MVC 模式
为了把表现层presentation从请求处理request proceing 和数据存储data storage中分离开来,SUN公司推荐在JSP文件中使用一种“模型-视图-控制器”Model-view-controller 模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。
2)JSP技术的强势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。3)JSP技术的弱势
(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2)Java的运行速度是用cla常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.cla文件,以及对应的版本文件。
(4)页面设计-JSP页面
1)MVC模式
为了把表现层 presentation 从请求处理 request proceing和数据存储 data,与ASP 一样,Java 的一些优势正是规范的 SERVLET 或者分离 的 JSP 文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的 JSP 页。有几种平台都基于服 务于网络层的模-视图-控件模式(比如 Struts 和 Spring framework)。
2)JSP 技术的强势:
(1)一次编写,到处运行。在 这一点上 Java 比 PHP 更出色,除了系统之外,代码 不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比 ASP/PHP 的局限性是显而易见的。(3)强大的可伸缩性。从只有一个 小的 Jar文件就可以运行 Serv let/JSP,到由多台服务器进行集群和负载均衡,到多台Application 进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。这一点与 ASP 很像,Java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多己经可以顺利的运行于多种平台之下。3)JSP 技术的弱势
(1)它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂'性。
Java 的运行速度是用 cla 常驻内存来完成的,所以它在一些情况下所使用 的内存比起用户数量来说确实是“最 低性能价格比” 了。从另一方面,它还需要硬盘空 间来储存一系列的 java文件和.cla 文件,以及对应的版本文件。
4)JSP 内置对象(1)request 对象: 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
(2)respon se 对象: 对客户的请求做出动态的响应,向客户端发送数据。(3)seion 对象
seion 对象是一个 JSP 内置对象,它在第一个 JSP页面被装载时自动创建,完成束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的儿个页面之间反 复连接,反复刷新一个页面,服务器应当通过某种办法知道这 是向一个客户,这就需要 seion 对象。
(4)applicat ion 对象
服务器启动后就产生 了这个 application 对象,当客户在所访问的网站的各个页面 之间浏览时,这个 application 对象都是同一个,直到服务器关闭。但是与 seion 不 同的是,所有客户的 app licat ion 对象都是同一个,即所有客户共享这个内宜的application 对象。ou t 对象
ou t 对象是一个输出流,用来向客户端输出数据。out 对象用于各种数据的输出。
(5)JDBC连接数据库
JDBC(Java Data Base Connectivi t y,java 数据库连接)是 一种用于执行SQL 语句的 Java APl,可以为多种关系数据库提供统一访问,它由一组用 Java语言编写的类和接口组成。JDBC 扩展了 Java 的功能。简单地说,JDBC 可做三件事 : 与数据库 建立连接、发送操 作数 据库 的语句并处理结果。]DBC API 既支持数据库 访问的两 层 模型 C C/ S),同时也支持三层 模型 CB/S)。在两层模型中,]ava appl et 或应用程序将直接与数据库进行对话。这将需要一 个 ]DBC 驱 动程序来与 所访问 的特定数据库管理系统进行通讯。用户的 SQL 语句被送 往数据库中,而其结果 将被送 回给用户。数据库可以位 于另一 台计算机上,用户通过网络连接到上面。这就叫做客户机 /服务器配置,其中用户的 计算 机为客 户机,提供数 据库的计算机 为服务器。
(1)建 立 JDBC 连接 : Connection 对象代表与数据库的连接。
(2)打开连接
与数据库建立连接的标准方法是调用 DriverManager.getConnection 方法。(3)发送SQL语句
连接一旦建立,就可用来向它所涉及的数据库传送 SQL语句。JDBC 对 可被发送的SQL 语句类型不加任何限制。这就提供了很大的灵活性,即允许使用特定的数据库语句或甚至于非SQL语句。然而,它要求用户自己负责确保所涉及的数据库可以处理所发送 的 SQL语旬,否则将自食其果。例如,如果某个应用程序试图向不支持储存程序的 DBMS 发送储存程序调用,就会失败并将抛出异常。
JDBC 提供的类,用于向数据库发送SQL话句。Connection 接口中的三 个方法可用于创建这些类的实例。下面列出这些类及其创建方法 :(1)Statemen t : 由方法createStatement 所创建。Statement 对象用 于发送简单的 SQL 语句。(2)PreparedS tat ement: 由方法prepareStatement 所创 建。
五、实习总结
工欲善其事,必先利其器。选择对了开发的项目就给以后的开发系统开了一个好头。但是系统的进程并不是一帆风顺的,在做项目的过程中,看似简单的分工却是一门高深的学问。首先要根据各个人的不同的特点来安排不同的工作,这样才能人尽其才,物尽其用,达到资源的优化配置。比如,不能让不善于表达与讲解的去在成果展示的时候去做讲解。此外,在开发系统的时候不能各自只顾着干自己的,而不去和同学之间进行交流。遇到不明确的地方想当然,凭着自己的感觉往下做,最后造成各个模块之间不能快速有效的进行连接。这一点随着项目的深入越来越显得重要,在开发过程中要多进行交流和讨论,既避免了不必要的反工又能开阔思路还能激发大家的设计灵感,因为每一个步骤都关乎着系统的成败,他们之间是相互连接的,密不可分的。在这次实习过程中我们领会到了编程行业内的一句话的真正含义那就是“三分编写,七分调试”。当一个程序,员刚刚拿到一个模块时,会根据 自己以往的经验和手边的书籍立刻就可以进入程序的开发阶段。但是当编写完成后,更艰巨的任务还在后面,那就是调试。往往一次写完的程序存在很多错误根本无法正常运行,许多错误都比较低级比如拼写错误等。有时候费劲就牛二虎之力修改的差不多了但是就有那么一两个地方老是出错,这时只能不停的试验、测试、翻书、找资料,不知不觉两三个小时就过去了并且人的精神也很紧张和疲惫。很多时候那出错的地方并不是有多么难,换个思路或者梳理一下心绪就可以很快改正。当然,程序调试成功的快乐又促使着 自己继续做下去,做得更好并且不断追求难度。这次实习使我们对编程的工作有了了解,实在是很有成就感,当然在你完成开发并且能顺利运行的一瞬间激动,快来无处不在。
还有,我们深知大学里学的知识是非常的有限。现代社会是知识经济的社会,科学技术日新月异,只靠自己原有的那些技术是不能够应对客户越来越繁琐和苛刻的要求。要想在社会立足只有不停的学习和了解行业发展的前沿,不断消化吸收先进的思想和掌握 先进的工具。大学的学习大部分是浅尝辄止没有深入探索,内容宽泛不够细致入微,大部分根本不能直接用,而要依靠它快速掌握与其有关联的技术并为我们所用。我们想这才是大学教育的根本,大学教育不能教会你直接谋生的本领却可以赋予你自学的能力,这样不管走到哪里都能快速适应并且快速融入其中。通过这次实习,我们领悟到很多在学校在课堂学不到的东西。一个月的时间虽然短暂却非常充实。通过实践,我们解决实际问题的能力得到了很好的锻炼。工作中也遇到了很多的以前没有遇到过的新问题,面对技术难题我们总是直接面对,没有逃避,也因此自学了好多新的技术,大大提高了自己的自学能力,也加深了对自己工作要负责的信念。在项目开发过程中我们也遇到了一些自己确实无法解决的困难,在老师和大神的帮助下也顺利的解决了。在开发团队中,加强了自己的团结精神和集体感,对工作认真负责,对团队认真负责。通过这个项目不仅学习到了很多技术也了解了整个开发项目的大体流程,从需求分析、数据库设计、详细设计、代码编写、测试、项目维护等方面,使自己不仅更深的了解了开发中的一个小步骤的重要性,而且还从一个小步骤的角度学会了整体的来看整个项目开发,加深了软件开发概念的理解。不断学习使我们对编程 作有了更进一步的认识和了解。不懂就学、就问,是一切进步取得的前提和基础。我相信通过此次实习的引导,我们在以后的学习中会很快的入门,我没们相信我们会对实习中所遇到的问题格外注意,在今后的学习和工作中也会对问题有更深的见解。工作中时常遇到新的问题,就需要查阅相关资料,一个问题一个问题的解决,一个困难一个困难的克服,不仅将原有知识温习巩固,产生新的理解,而且学到很多新知识,有了许多新的认识。但某些认识都还是肤浅的,还需要我们在实践当中去不断深入地理解。
1、下面就是我的一点心得 :
2、学无止镜,时代的发展瞬息万变,各种新技术知识日新月异。我们要坚持不懈地努力学习各种理论知识,并用于指导实践,以更好的适应行业发展的需要。
3、熟练的掌握各种业务技能才能更好的投入工作,我们要通过多看、多学、多练来不断的提高自己的各项业务技能。
4、业“精于勤而荒于嬉”,实践是不断取得进步的基础。我们要通过实践不断的总结经验,提高自己解决实际问题的能力,并在实践的过程中慢慢克服急躁情绪,积极、热情的对待每一件工作。
5、一个人能走的更快,一群人才能走得更远。不管在以后的学习或工作中,我们要学会相互协作,团队的力量是强大的,会给你意想不到的惊喜。
总之,短短一个月的实习期,对我们长江大学信息与数学学院2014级的同学有很着重要的意义,是我们成长的一个重要阶段。我们以后将会以此次实习为 借鉴,努力工作和学习,不断为这个社会创造价值也为构建社会主义和谐社会尽自己绵薄之力。
六、实习场景
公司旁的湖畔景色怡人
每日走过的木板桥
清晨立会
小组每日任务安排一览表
最亲爱的吴静老师悉心的为同学们解答
班长送上鲜花以表对老师的感谢
每日加班到8点的Java班的同志们
闲暇之际欢乐的扫雷
督导带领我们前往素拓地点
欢乐而又短暂的素质拓展
实习一个月的项目成果
下班后与老师们的欢乐狼人杀
实习结束后返程旅途合影