前言
作为还没有踏入社会的大学生,面对自己未来的生活与工作,我们心中是有很多疑问的,我们特别需要到真正的工作环境中去感受一下自己几年后会所从事的工作。因此在刚开学的两周时间里,学校为我们安排了生产实习,主要是让我们较深层次接触社会,运用所学的专业知识认识企业实践活动,了解企业运行环境,认识企业管理业务流程,为将来走上工作岗位打下基础。
实习目的
1、加强和巩固理论知识,发现问题并运用所学知识分析问题和解决问题的能力。
2、锻炼自己的实习工作能力,适应社会能力和自我管理的能力。
3、了解实习单位的计算机技术的应用情况、需求情况和发展方向及前景。
4、亲身参与项目的实际完成工作,了解计算机专业软件开发的具体流程。
5、通过实习来认识了解自己,发现不足,提前做好自己的职业规划。
实习单位简介
学校安排的实习单位是在中国最大的城市上海,我们学的是计算机科学与技术专业,因此学校给我们安排的单位是上海的一家软件公司-上海杰普科技软件有限公司。
上海杰普软件科技有限公司(Briup Technology, Inc. )是一家专注于高端IT培训、软件外包、研发咨询的高新技术企业。公司核心成员由海外留学人员和来自Sybase、亚信、Sun等国际大公司的资深技术人员组成,在电信、金融、电子商务等方面有着丰富的专业开发、管理和培训经验。公司全面致力于开展以面向外企、电信、金融等行业为主的中高级软件人才培训及人才外包业务。公司经过多年运营,先后为浦东软件园、徐汇软件园、漕河泾软件园、天地软件园、南京雨花软件园等提供数千名软件开发人员,同时成为全国首家专业软件外包园区---龙软园区最为紧密的合作伙伴,为园区专业提供软件外包人才。上海紧缺人才办公室指定的高端IT培训基地 2007年度获得“促进上海信息化建设奖” 2007年度、2008年度最受网友推崇的IT培训品牌百家高校指定的专业实习孵化基地首家与“211工程”大学联合培养软件工程硕士的培训机构首家提出“优质就业”理念的IT培训机构国内首家面向大学生提供免费JAVA集训的IT公司。
公司业务: IT培训:A)DPS人才培训项目:高级JAVA软件开发实训/职业规划及入职培训。B)企业培训项目:企业客户定制开发课程/软件开发/项目管理
软件外包:提供软件开发服务和人力资源外包服务。
研发咨询:提供专业的研发管理咨询服务
公司文化:诚信、专业、 和谐、创新
公司资质:公司成立于2006年,注册资金100万人民币,是上海市人事局许可的高级人才培训中心。同时也是上海市紧缺人才办公室培训基地。
实习任务
在Android平台下运用java语言、JDBC技术、Oracle数据库,开发一个手机上的应用软件—影像租赁系统。
相关技术简介
Android平台
Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。
ORACLE数据库
ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器(CLIENT/SERVER)体系结构的数据库之一。
Java语言
Java 吸取了C++面向对象的概念,将数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java 提供了众多的一般对象的类,通过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类 为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。
JDBC技术
JDBC是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
任务种需要用到的相关技术都是我们之前没有学过的,但是我们有C++语言和SQL SERVER数据库的基础,这些技术在某些方面有其通用性,因此我们学习起来也会事半功倍。
实习内容
影像租赁系统
在美国,由于知识产权问题得到了很好的保护,所以一般不会出现盗版的问题。美国人除去在电影院看电影之外就是在音像店租碟回家去看。在这种情况下,影像出租的店铺就比较多。在信息化的背景下,设计一套系统管理影像出租业务成了当务之急,于是通过和店铺经理沟通,获得如下业务信息:
1 凡是想要到该影像租赁影碟的被称为会员(Member),只有成为该店的会员才能
够租借该店的影像资料(Title)。
2 影像店中不定期会购买一些影像资料(Title),并且获得了复制该影像资料的权
力,每一份影像制品可以有多个拷贝,每一份拷贝称为一个复制条目(TitleCopy)
3 对客户而言,原始的影像资料(Title)只能被预定并且可以同时接受多份预
定(Reservation),客户可以租赁的是影像拷贝(TitleCopy)。
4 任何一个客户的租赁信息(Rental)都必须存档以便将来店铺对客户的租赁进行
评估。
通过和租赁店经理详细面谈,了解更详细的业务的信息:
1 每一个会员必须被记录的信息包括会员编号Id,而且所有会员的编号是唯一的,
姓名Name, 称为会员的日期Join_date,以及其他需要被记录的信息包括(住宅地址
Address, 所在城市city, 住宅电话phone).
2 影像制品(Title)必须被记录的信息包括编号Id,而且所有影像制品的编号也是
唯一的俄,标题Title,影片说明Description,价格Price,和其他如下信息(分
级rating,种类category, 发行日期release_date).
3 每一份影像拷贝(TitleCopy)都有各自的编号Id,同一个影像的若干拷贝编号
不同,但是不同的影像拷贝的编号可能会重复。必须记录下是否已经出租,以便于
店员随时能够查询拷贝资料的当前状态(status)。
4 系统中允许会员预定某项影像资料,但必须提前预约租赁时间(res_date)。
5 每一项出租事项需要记录下来(租借日期book_date,实际归还日期act_ret_date,
过期时间(exp_ret_date)。
业务逻辑实现:
1 查询出所有用户的名字(name)以及用户所借阅的影像资料名字(title)和借阅的日期(book_date)
2 查询出最近一周订阅影像资料的用户的名字(name)和相应的影像资料名字(title)及借阅日期(book_date)
3 查询出下周日应该归还的影像资料的名称(title)和借阅者的姓名(name),地址(address)
4 查询出已经超期还未归还的影像资料的名称(title)和借阅者的姓名(name),地址(address)
5 查询出最近一月借阅次数最多的影像资料的名称(title)
6 查询出已经登记但是还没有拷贝的影像资料的名称(title)
7 查询出本周预定最多的影像资料的名称(title)
要求:
1 实体关系模型
2 表实例图
3 建表语句
4 样例数据入库(insert语句)
5 业务逻辑实现(select语句)
数据库设计
采用oracle 数据库进行设计。
1 根据需求分析,设计数据库,其实体关系模型图如图-1。
图-1
2 由实体关系图,设计各表的实例结构图如下。
图-2
图-3
图-4
图-5
图-6
3 由表实例图,设计建表语句。
使用JDBC链接数据库
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
会员表单代码如下:
package com.briup.jdbc;
import com.briup.pojo.Member;
import java.sql.*;
import java.util.*;
public class MemberJdbc {
//提供连接数据库的四个参数
private static final String DRIVER =
"oracle.jdbc.driver.OracleDriver";
private static final String URL =
"jdbc:oracle:thin:@localhost:1521:XE";
private static final String USER =
"wzp";
private static final String PASSWORD =
"wzp";
public void saveMember(Member member){
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try{
//步骤1: 注册驱动
Class.forName(DRIVER);
//步骤2: 建立和数据库的连接
conn = DriverManager.getConnection
(URL, USER, PASSWORD);
/*从数据库中获得t_member_seq来作为主键*/
String selectSql =
"select t_member_seq.nextval from dual";
pstmt =
conn.prepareStatement(selectSql);
rs = pstmt.executeQuery();
Long id = 0L;
if(rs.next()){
id = rs.getLong(1);
}
//步骤3: 创建PreparedStatement对象
String sql =
"insert into " +
"jack_member values(?,?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
/*替换占位符'?'*/
pstmt.setLong(1, id);
pstmt.setString(2, member.getName());
pstmt.setString(3, member.getAddress());
pstmt.setString(4, member.getCity());
pstmt.setString(5, member.getPhone());
pstmt.setDate(6, member.getJoinDate());
//步骤4: 执行sql语句
int rows = pstmt.executeUpdate();
//步骤5: 处理返回的结果
System.out.println("成功插入"+rows+"条记录!");
}catch(Exception e){
e.printStackTrace();
}finally{
//步骤6: 关闭资源,释放内存
try{
conn.close();
pstmt.close();
}catch(SQLException e2){
}
}
}
使用Servlet编写服务器端应用程序
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
部分代码如下:
package com.briup.pojo;
import java.sql.Date;
public class MemberTest {
//程序入口方法
public static void main(String[] args){
//创建Member对象
Member member = new Member();
//设置Member对象的属性值
member.setId(10L);
member.setName("briup");
member.setAddress("wan long road");
member.setCity("shanghai");
member.setPhone("888888");
long time = System.currentTimeMillis();
member.setJoinDate(new Date(time));
//输出Member对象中的属性值
System.out.println("id:"+member.getId());
System.out.println
("name:"+member.getName());
System.out.println
("city:"+member.getCity());
System.out.println
("address:"+member.getAddress());
System.out.println
("phone:"+member.getPhone());
System.out.println
("joinDate:"+member.getJoinDate());
}
}
调试运行
使用Android 手机模拟软件,模拟手机客户端,运行该影响租赁系统。
实习总结
虽然实习只有短短的两个星期,但是我的收获是很多的。从对项目相关的技术完全不了解,到和同学组成的团队一起克服种种困难,解决各种疑问,一起协同合作成功将软件调试成功。我的感触颇深,古语有云:读万卷书,行万里路。古人将读与行并列甚至有偏重行的意味,这正是说明了实践的重要性。“实践是检验真理的唯一标准”,没有实践何来了解、进步之说。也深深的体会到大学期间为什么要安排这样的实习课程。
通过这次实习,我们基本达到了此次实习的目的,加强和巩固了理论知识,提高了发现问题并运用所学知识分析问题和解决问题的能力。锻炼自己的实习工作能力,适应社会能力和自我管理的能力。了解了实习单位的计算机技术的应用情况、需求情况和发展方向及前景。亲身参与了项目的实际完成工作,了解了计算机专业软件开发工作的具体流程。
这次实习不仅拓展了我们的眼界,更为重要的是使我们了解了所学专业的现阶段发展状况及未来发展动向。在实习最后的几天时间里,在公司工作的一个我们学校的学姐为我们上了一堂人生职业规划的课,教我们该怎么给自己一个合适的定位,同时哪些是我们应该着重学的,同时也介绍了计算机行业的发展前景,以及一些当今比较流行比较热门的技术,为我们的学习指明了方向,也将激励我们计算机专业学子更加努力地学好自己的专业知识,为今后的发展打好基础。
同时,在这段时间我得到的最大体会就是,如果一个人在社会上没有一技之长,那他是没有办法很好的活下来的。工欲善其事,必先利其器。而对于我们来说,扎实稳固的技术就是我们以后走上工作岗位,实现人生梦想、自我价值以及在竞争越来越激烈的今天立足社会的最好利器,只有不断的加强自身专业技能学习才行。所以,我会在以后的时间里努力学习,加强自己的专业能力,使自己变得更强,只有这样才能上到为国家、为社会做出贡献,下到为自己、为父母、为学校交出一份满意的答卷。
实习生活暂告一个段落,闲暇之余,我开始静静地长思。通过这次实习,我认识到只有沉下身来,静下心来认真学习,踏实做事,多用心,多动脑,才能让自身能力有好的起色。社会的竞争是激烈的,我想我们应该好好把握住大学学习的时间,充实、完善自我,全面发展,做一名出色的IT精英!