版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、装订线毕业论文(说明书)图2-2 Spring的特性图4-10 站点流程图车辆查询流程图如图4-11所示:图4-11用户查询流程图4.3.6 监控管理监控车辆管理可以让用户在线的查看这个车辆的所有数据,并显示为车辆运行图。图4-12用户查询流程图监控数据查询流程图如图4-13所示:图4-13 用户查询流程图4.4本章小结本章详细描述了系统的软件详细设计,包含了系统的软件框架,软件的程序结构图,以及系统的各个模块的数据流程图。第5章 软件的开发与实现5.1 数据设计5.1.1 车辆表格设计车辆信息:包括车牌号、车辆类型、车辆类型、车辆状态、所属线路。表5-1车辆表字段名数据类型含义说明空值情况车
2、辆IDint车辆的ID号自增主键车牌号nvarchar (10)车牌号非空车辆类型nvarchar (10)车辆的类型非空车辆状态nvarchar (10)车辆的使用类型非空所属线路int车辆在城市中属于哪条线路可为空5.1.2 站点表格设计站点信息:包括站点名称、站点状态。表5-2站点表字段名数据类型含义说明空值情况站点IDint站点的ID号自增主键站点名称nvarchar (10)站点名称非空站点状态nvarchar (10)站点的类型非空5.1.3 设备表格设计设备信息:设备名称、设备类型、设备参数、设备个数。表5-3设备表字段名数据类型含义说明空值情况设备IDint设备的ID号自增主键
3、设备名称nvarchar (10)设备的名称非空设备类型nvarchar (10)设备的类型非空设备参数nvarchar (10)设备的参数可为空设备个数int设备的个数可为空5.1.4权限表格设计设备信息:权限名称、权限类型。表5-4权限表字段名数据类型含义说明空值情况权限IDint权限的ID号自增主键权限名称nvarchar (10)权限的名称非空权限类型nvarchar (10)权限的类型非空5.1.5 用户表格设计用户信息:包括姓名、性别、所属部门、工作岗位、身份证号码、联系电话、家庭住址。表5-5用户表字段名数据类型含义说明空值情况用户IDint用户的ID号自增主键姓名nvarcha
4、r (10)用户的姓名非空密码nvarchar (10)用户的密码非空性别nvarchar (10)用户的性别非空所属部门nvarchar (10)用户的所属部门可为空工作岗位nvarchar (10)用户的工作岗位可为空身份证号码nvarchar (10)用户的身份证号码可为空联系电话nvarchar (10)用户的联系电话可为空住址nvarchar (10)用户的住址可为空权限int对应的权限可为空5.2 GPRS数据获取本系统用java来收发AT指令控制GPRS CDMA,本文通过串口连接GPRS收发模块,具体的代码如下:1 获取串行端口COM2 portId = CommPortIde
5、ntifier.getPortIdentifier(COM2); sPort = (SerialPort) portId.open(commsms, 1000);2 设置串口通讯参数sPort.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);3 初始化方法public boolean init() portList = CommPortIdentifier.getPortIdentifiers();/ 遍历端口while (portList.hasMoreE
6、lements() portId = (CommPortIdentifier) portList.nextElement();/ 串行端口if (portId.getPortType() = CommPortIdentifier.PORT_SERIAL) System.out.println(portId.getName(); / 端口号if (portId.getName().equals(COM3) try serialPort = (SerialPort) portId.open(this.getClass().getName(), 5000);/ / 添加端口事件监听 serialPo
7、rt.addEventListener(this); serialPort.notifyOnDataAvailable(true); catch (PortInUseException e) e.printStackTrace(); return false; catch (TooManyListenersException e) return false;try is = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); br = new BufferedReader(new InputStre
8、amReader(is); / 初始化串口 serialPort.setSerialPortParams(9600,SerialPort.DATABITS_8, SerialPort.STOPBITS_1,SerialPort.PARITY_NONE); System.out.println(端口COM3初始化成功); outputStream.write(ATr.getBytes(); System.out.println(is.read(); return true; catch (IOException e) return false; catch (UnsupportedCommOpe
9、rationException e) return false; return false;4 发送方法public bool send_msg(string msg) try outputStream = serialPort.getOutputStream(); outputStream.write(msg.getBytes(); System.out.println(is.read(); return true; catch (IOException e) return false; catch (UnsupportedCommOperationException e) return f
10、alse; return true;5 获取消息public string read_msg() String msg; try inStream = serialPort.getInputStream(); inStream.write(msg); System.out.println(msg); catch (IOException e) msg=null; catch (UnsupportedCommOperationException e) msg=null; return msg;5.3 SSH框架移植5.3.1 系统Model层实现1类UserBean:包名com.carsyste
11、m.model类名数据库表名UserBean.javaTB_USEROR映射文件UserBean.hbm.xml字段名private Integer userId;private String userName;private String userPassword;private String userSex;private String userDepartment;private String userJob;private String userIdentity;private String userPhone;private String userAddress;private St
12、ring userRight;USER_IDUSER_NAMEUSER_PASSWORDUSER_SEXUSER_DEPARTMENTUSER_JOBUSER_IDENTITYUSER_PHONEUSER_ADDRESSUSER_RIGHT方法public void setUserId(Integer adminId);public Integer getUserId();public void setUserName(String userName);public String getUserName();public void setUserPassword(String userPass
13、word);public String getUserPassword();public void setUserSex(String userSex);public String getUserSex();public void setUserDepartment(String userDepartment);public String getUserDepartment();public void setUserJob(String userJob);public String getUserJob();public void setUserIdentity(String userIden
14、tity);public String getUserIdentity();public void setUserPhone(String userPhone);public String getUserPhone();public void setUserAddress(String userAddress);public String getUserAddress();public void setUserRight(String userRight);public String getUserRight();2类RightBean包名com.carsystem.model类名 数据库表名
15、RightBean.javaTB_RIGHTOR映射文件RightBean.hbm.xml字段名private Integer rightId;private String rightName;private String rightType;RIGHT_IDRIGHT_NAMERIGHT_TYPE方法public Integer getRightId();public void setRightId(Integer rightId);public String getRightName();public void setRightName(String rightName) ;public
16、String getRightType();public void setRightType(String rightType);3类EquipmentBean:包名com.carsystem.model类名 数据库表名EquipmentBean.javaTB_EQUIPMENTOR映射文件EquipmentBean.hbm.xml字段名private Integer equipmentId;private String equipmentName;private String equipmentType;private String equipmentPara;private int equ
17、ipmenNum;EQUIPMENT_IDEQUIPMENT_NAMEEQUIPMENT_TYPEEQUIPMENT_PARAEQUIPMENT_NUM方法public Integer getEquipmentId() ;public void setEquipmentId(Integer equipmentId);public String getEquipmentName();public void setEquipmentName(String equipmentName) ;public String getEquipmentType();public void setEquipmen
18、tType(String equipmentType) ;public String getEquipmenPara();public void setEquipmenttParaString equipmentPara) ;public Integer getEquipmentNum() ;public void setEquipmentNum(Integer equipmentNum);4类SiteBean包名com.carsystem.model类名 数据库表名SiteBean.java TB_SITEOR映射文件SiteBean.hbm.xml字段名private Integer si
19、teId;private String siteName;private String siteType;SITE_IDSITE_NAMESITE_TYPE方法public Integer getSiteId() ;public void setSiteId(Integer siteId);public String getSiteName() ;public void setSiteName(String siteName) ;public String getSiteType() ;public void setSiteType(String siteType) ;5类CarBean包名c
20、om.carsystem.model类名 数据库表名CarBean.javaTB_CAROR映射文件CarBean.hbm.xml字段名private Integer carId;private Strring carIdentity;private String cartType;private String carState;private Integer carLine;CAR_IDCAR_IDENTITYCAR_TYPECAR_STATECAR_LINE方法public Integer getCarId();public void setCarId(Integer carId) ;pu
21、blic String getCarIdentity();public void setCarIdentity(String carIdentity) ;public String getCarType();public void setCarType(String carType);public String getCarState();public void setCarState(String carState);public Integer getCarLine();public void setCarLine(Integer carLine) ;5.3.2系统数据访问对象DAO层实现
22、DAO层中实现的接口和公共的类接口:IBaseHibernateDAO接口名IBaseHibernateDAO方法public Session getSession()DAO层中用到的公共类:BaseHibernateDAO类名BaseHibernateDAO (实现IBaseHibernateDAO接口)方法public Session getSession()1类UserBeanDAO:类名UserBeanDAO(继承于 BaseHibernateDAO)主要的方法public void save(UserBeantransientInstance);public void delete(
23、UserBean persistentInstance);public UserBean findById(java.lang.Integer id);public List findByProperty(String propertyName, Object value);public List findAll();功能描述通过这个类实现对数据库的操作,可以通过相应的方法实现数据的增删改查。2类RightBeanDAO:类名RightBeanDAO(继承于 BaseHibernateDAO)主要的方法public void save(RightBeantransientInstance);p
24、ublic void delete(RightBean persistentInstance);public RightBeanfindById(java.lang.Integer id);public List findByProperty(String propertyName, Object value);public List findAll();功能描述通过这个类实现对数据库的操作,可以通过相应的方法实现数据的增删改查。3类EquipmentBeanDAO类名EquipmentBeanDAO(继承于 BaseHibernateDAO)主要的方法public void save(Equ
25、ipmentBeantransientInstance);public void delete(EquipmentBeanpersistentInstance);public EquipmentBeanfindById(java.lang.Integer id);public List findByProperty(String propertyName, Object value);public List findAll();功能描述通过这个类实现对数据库的操作,可以通过相应的方法实现数据的增删改查。4类SiteBeanDAO类名SiteBeanDAO(继承于 BaseHibernateDA
26、O)主要的方法public void save(SiteBeantransientInstance);public void delete(SiteBeanpersistentInstance);public SiteBeanfindById(java.lang.Integer id);public List findByProperty(String propertyName, Object value);public List findAll();功能描述通过这个类实现对数据库的操作,可以通过相应的方法实现数据的增删改查。5类CarBeanDAO:类名CarBeanDAO(继承于 Base
27、HibernateDAO)主要的方法public void save(CarBeantransientInstance);public void delete(CarBeanpersistentInstance);public CarBeanfindById(java.lang.Integer id);public List findByProperty(String propertyName, Object value);public List findAll();功能描述通过这个类实现对数据库的操作,可以通过相应的方法实现数据的增删改查。5.3.3系统中的ACTION类1类AccountA
28、ction:主要方法和相应的功能:public ActionForward signin(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)账号登陆页面,点击进入,登陆到系统public ActionForward reSignin(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)进入重新登陆页面public A
29、ctionForward exit(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)退出本系统2类AccountManageAction:主要方法和相应功能:public ActionForward view(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)列出用户信息。public ActionForward
30、 doInfoModify(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)对用户的基本信息进行修改。public ActionForward doPasswordModify(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)用户修改密码。3类RightAction:主要方法和相应的功能:public Acti
31、onForward view(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)列出所有权限数据。public ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)增加权限数据。public ActionForward delete(ActionMapping mapping, A
32、ctionForm form,HttpServletRequest request, HttpServletResponse response)删除权限数据。public ActionForward doMod(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)修改权限数据。4类EquipmentAction:主要方法和相应的功能:public ActionForward view(ActionMapping mapping, ActionForm fo
33、rm,HttpServletRequest request, HttpServletResponse response)列出相应的设备数据,若有传入设备参数则列出某个设备的信息。public ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)增加设备数据。public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletReque
34、st request, HttpServletResponse response)删除设备数据。public ActionForward domod(ActionMapping mapping, ActionFormform,HttpServletRequest request, HttpServletResponse response)修改设备数据,根据传入的设备ID。5类SiteAction:主要的方法和相应的功能:public ActionForward view(ActionMapping mapping, ActionForm form,HttpServletRequest requ
35、est, HttpServletResponse response)列出所有站点数据,若传入站点参数则列出某个站点的信息。public ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)增加站点数据。public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletRespo
36、nse response)删除站点数据。public ActionForward domod(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)修改站点数据。6类CarAction:主要方法和相应的功能:public ActionForward view(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)列出车辆信
37、息,若有车辆参数传入则列出相应车辆的信息。public ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)增加车辆数据。public ActionForward delete(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)删除车辆数据。public ActionForward
38、 domod(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)修改车辆数据。5.3.4 持久层Hibernate实现1 创建并配置Hibernate映射文件 在进行struts层的功能开发之前,我们需要基于Hibernate开发底层的DAO层。我们将分2个步骤进行开发。1. 创建Hibernate的持久化类和映射文件,并在applicationContext.xml中进行配置;2. 开发并配置Hibernate DAO层UserDAO.java、Rig
39、htDAO.java、EquipmentDAO.java、SiteDAO.java、CarDAO.java。这是Hibernate层开发的第一步,使用MyEclipse的工具Database Explorer来自动创建Hibernate的持久化类和映射文件,对应的数据库分别为user、right、equipment、site、car表。最后生成的类文件包括:1. 持久化类的抽象类:AbstractUser.java、AbstractRight.java、AbstractEquipment.java、AbstractSite.java、AbstractCar.java;2. 持久化类:User.
40、java、Right.java、Equipment.java、Site.java、Car.java;3. 映射文件:User.hbm.xml、Right.hbm.xml、Equipment.hbm.xml、Site.hbm.xml、SchCaredule.hbm.xml。需要在applicationContext.xml中注册该映射文件。2 开发并配置Hibernate DAO层 到目前为止,系统已经具备了Hibernate的基础访问功能,下面我们要开发Hibernate DAO层,使用HibernateTemplate实现对数据表的增、删、改、查的操作,包括如下三步:1. 定义接口类:Abs
41、tractUser.java、AbstractRight.java、AbstractEquipment.java、AbstractSite.java、AbstractCar.java;2. 开发实现类:User.java、Right.java、Equipment.java、Site.java、Car.java;3. 在applicationContext.xml中配置DAO及其代理。5.3.5 控制层Struts实现1 开发Struts核心流程代码 在以上经过对Hibernate持久化类、映射文件和DAO类的开发,已经具备了数据层的功能代码,下面我们就要开发Struts层的代码,来调用该数据层
42、实现数据库的操作。要进行Struts层的功能开发,我们需要分4个步骤进行。1. 开发Struts核心流程代码,包括LoginForm.java和LoginAction.java、UserForm.java和UserAction.java、RightForm.java和RightAction.java、EquipmentForm.java和EquipmentAction.java、SiteForm.java和SiteAction.java、CarForm.java和CarAction.java、SuperviseForm.java和SuperviseAction.java及配置;2. 开发JSP
43、页面原型,包括数据列表页面login.jsp、user.jsp、right.jsp、equipment.jsp、site.jsp、car.jsp;增加页面supervise.jsp,user_add.jsp、right_add.jsp、equipment_add.jsp、site_add.jsp、car_add.jsp;修改页面user_edit.jsp、right_edit.jsp、equipment_edit.jsp、site_edit.jsp、car_edit.jsp;并进行页面文字的国际化和样式修饰;3. 增加表单校验功能。主要修改增加页面、修改页面和表单类;4. 调用DAO类操作数据
44、库。修改Actiono类调用DAO类中的函数,进行数据库的关联。接下来实现的是通讯录的请求处理流程的配置和类代码。实现的步骤包括如下:1. 新建并配置表单类:配置元素,并开发AddressForm.java表单类;2. 在struts-config.xml中添加请求配置:配置元素,并委托给Spring进行管理;3. 在applicationContext.xml中添加请求代理:配置与相匹配的元素,接收Struts的委托;4. 在applicationContext.xml中添加日志拦截:为请求地址添加日志拦截器;5. 开发Action类原型功能:设计Action类的请求处理函数,这里的函数现在
45、还只是空架子,只能够进行页面的流转,没有实际的功能,目的是为了在开发完JSP页面后能够进行页面的流转。2 开发JSP页面原型 在上面配置了、及元素,并编写了表单类和Action类的原型代码,现在要开发JSP页面,将页面的链接地址、表单请求指向,由Struts和Spring来将该请求转发到Action类的函数中,实现整个页面的流转。实现的步骤如下:1. 在frame.jsp中添加一个新的菜单:该菜单是通讯录模块的入口,负责进入通讯录的列表页面;2. 开发数据列表页面:新建一个通讯录的HTML列表页,该页面提供增加、修改、删除的按钮,负责跳转到不同的页面;3. 开发增加页面:新建新增通讯录的HTM
46、L表单页,负责添加通讯录;4. 开发修改页面:新建修改通讯录的HTML表单页,负责修改通讯录;5. 进行页面文字的国际化:将以上3个JSP页面中的中文文字提取出来,在资源文件中为这些文字定义国际化标签,并在JSP页面中引用这些标签,实现页面文字的国际化显示;6. 定义页面样式表stytle.css:新建一个样式表文件stytle.css,为以上3个JSP页面定义几个样式表以美化页面。3 增加表单校验功能 经过以上两步的开发,在重启Tomcat后,进入此模块,此时的页面都可以进行正常的流转了,只不过显示的数据都还是假的数据,没有经过数据的校验,以及数据库的交互。在这里要首先来进一步完善JSP页面
47、的表单验证功能,包括如下的步骤:1. 为增加页面和修改页面表单增加长度限制;2. 为表单类添加校验功能;3. 为增加页面和修改页面添加错误标签;4. 为增加页面和修改页面维持表单输入。5. 其中后面的3个部分是Struts的表单校验技术所完成的功能。4 调用DAO组件操作数据库 现在JSP页面、表单类的代码都已经开发完善了,接下来需要修改Action类中的请求处理函数,来调用Hibernate层的DAO类,实现与数据库的交互。主要包括以下几个功能:1. 显示列表页面数据;2. 实现增加功能;3. 实现修改功能;4. 实现删除功能。5.3.6 业务层Spring实现 Spring提供的Hiber
48、nateTemplate是对Hibernate功能的封装,通过封装的代码实现Spring IoC容器的有机结合。要使用HibernateTemplate进行开发,需要在Bean配置文件中添加一系列的组件,这些组件相互注入。由此,我们共需要配置如下的7个Bean组件。1. dataSource:为sessionFactory提供数据源;2. sessionFactory:Hibernate管理工厂,为DAO为的事务管理策略对象transactionManager提供SessionFactory;3. transactionManager:为DAO类的事务管理策略对象DAOProxy提供事务管理器对象;4. DAO类:为DAO提供POJO类;利用被注入的数据源,定义一系列的业务操作函数,使用JdbcTemplate来操作POJO类,实现对数据库的操作;5.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年亲子教育中的心理需求分析与应对策略
- 数据合规背景下智能仓储自动化如何构建企业数字安全护城河
- 数据安全法约束下智能普拉提全套:隐私保护与合规路径
- 筑巢引凤 2026年广东省抽水蓄能电站可行性研究报告
- 2026年预制菜中央厨房建设与供应链管理方案
- 智能即热饮水机赋能智慧养老:重构适老化饮水服务链条
- 《铁路桥梁施工与维护(第2版)》任务14.2 铁路桥涵技术状态检查
- 2027年沧州医学高专单招职业技能考试题库及参考答案详解【巩固】
- 2026年信阳职业技术学院单招职业技能考试模拟试卷含完整答案详解(全优)
- 2024年额尔古纳职业学院单招职业技能考试模拟试卷附参考答案详解(综合题)
- DB42T 1049-2015 房产测绘技术规程
- 检验科实习生培训
- 客户走访维护管理制度
- 粮库粉尘清扫管理制度
- 施工现场临时用电安全监理实施细则模版(3篇)
- 介入治疗术后运动康复
- 雷火灸讲义专题知识讲座
- 工程质量安全手册实施细则检查标准 (安全实体控制分册)
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 北师大版六年级数学下册全单元测试题及答案【完整】
- 20S805-1 雨水调蓄设施-钢筋混凝土雨水调蓄池
评论
0/150
提交评论