简单成绩管理系统.docx
- 文档编号:3528710
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:19
- 大小:415.37KB
简单成绩管理系统.docx
《简单成绩管理系统.docx》由会员分享,可在线阅读,更多相关《简单成绩管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
简单成绩管理系统
河南理工大学计算机学院
Grails课程设计报告
题目简单成绩管理系统
学号310709040308
班级07网络工程(三)班
姓名韩立伟
指导老师冯文峰
Grails课程设计报告
摘要:
Grails构建在开源技术如Spring、Hibernate和SiteMesh之上,提供了一个类似于Rails的平台可以与Java平台无缝集成的。
但Grails比Rails具有更强的可像Java那样成熟的虚拟机,并且能够能够给企业级的服务提供成熟的支持。
Grails也是构建在Groovy之上的,而Groovy是一种“动态”或指令语言。
动态语言一般用来加速和简化程序撰写。
与Python或Ruby等其他指令语言不同的是,用Groovy撰写的程序,可与Java虚拟器结合。
因此可以这样说,Grails=Groovy+Spring+Hibernate。
Grails有两个原则:
一是CoC:
约定大于配置(ConventionoverConfiguration
二是DRY:
不要重复你自己(Don’tRepeatYourself)
在这我将用Grails制作一个简单的表格,主题是同学录。
关键词:
GrailsMySQL成绩管理
前言
Grails时一个开元网络应用框架,它的宗旨是应用。
Grails构建于Groovy之上,与Java无缝的结合,充分利用了Java丰富的第三方开源库。
Grails的内核就是基于Spring、Hibernate、和SiteMesh这些成熟而完善的框架组合之上的。
它可被部署在任何主流的JavaEE应用服务器(如WebSphere、Weblogic等)之上,在为你的应用开发增添强大的动态语言优势的同时,又能直接访问业务所依赖的企业服务。
因此Grails具有像Java那样成熟稳定的虚拟机,以及对企业及服务(如分布式事物、消息传递等)的成熟支持。
通过本次课程设计实验,我们亲身体验了如何利用Grails在最短的时间里创建一个功能完整而又灵活的网络应用。
Groovy本身的强大表达能力让我们可以写出简历的代码,同时Grails使用合理的默认设置(即规约重于配置)为我们节约了许多传统框架所面临的大量的编码以及配置工作。
当然,代码越少意味着维护的工作越少,同时随着需求的不断变化而需要改动程序的时候,我们克服的遗留代码也相对更少了。
1实验准备
(1)安装JDK5
下载并安装JDK5(5的安装路径。
如图
(2)下载并安装Grails
从http:
//grails.org/Download下载Grails的稳定版本。
本实验用的是grails-1.3.2,然后按照快速安装步骤安装好Grails,并配置必要的环境变量GRAILS_HOME和PATH。
如图
(3)安装数据库
Grails自己附带了一个内嵌的HSQLDB数据库,所以Grails程序都默认有个内存数据库可用,如果是称其运行的话,就需要安装一个数据库,这里选择了MySQL5.0。
可以从
等这些都准备好之后,打开dos系统,输入grails会出现这样的界面
说明安装正确。
2创建Grails程序
(1)创建目录,如图:
(2)在创建的目录里面生成项目结构:
Grailscreate-appstu
Cdstu
(3)输入Grailsrun-app来启动程序。
(4)打开浏览器访问http:
//localhost:
8080/stu,你会看到这个友好的信息欢迎你来到Grails世界。
3建立领域
Grails把领域类(DomainClass)看做是程序的中心,并且是程序最重要的部件。
(1)创建领域类:
生考试成绩管理staManagement(studenttestachievementmanagement)。
Grailscreate-domain-classstaManagement
(2)为领域类staManagement增加属性。
在目录D:
\grails-1.3.2\grails-apps\stu\grails-app\domain\stu下打开StaManagement.groovy文件添加属性。
如下:
packagestu
classStaManagement{
intstudentid
DatetestDate
Stringproject
intprojectid
intscore
staticconstraints={
}
}
(3)在属性限制(constraints)中添加属性的限制:
staticconstraints={
name(maxSize:
9,blank:
false)
project(maxSize:
9,blank:
false)
studentid(size:
10,blank:
false)
projectid(size:
5,bank:
false)
score(max:
100,min:
0)
}
(4)生成脚手架并运行Grails程序:
Grailsgenerate-allstu.StaManagement
Grailsrun-app
当看到程序成功启动时,打开浏览器并访问http:
//localhost:
8080/stu/
进入stu.StaManagementController界面
(6)创建一个StaManagement
输入相关的信息
如果输入的信息不符合要求会出现相应的错误提示,如下所示:
或者是
多输入一些信息形成列表:
4让错误消息更友好
当信息输入错误时会出现如下的错误提示:
其中类的属性name不能为空。
这样的错误信息存储在
grails-apps\stu\grails-app\i18n中messages_zh_CN.properties文件中。
当违反blank限制时,显示的错误信息由:
className.propertyName.blank指定。
例如本实验中的领域类StaManagement中的属性name违反了限制,则是由staManagement.name.balnk指定。
其他几项的错误信息提示也可以修改。
如下:
5建立自己的数据库
(1)Grails有一个内置数据库:
HSQLDB,但是只要重启程序,就会丢失刚刚录入的数据,所以我们需要建立一个数据库,这里用MySQL数据库来支持程序。
回到命令行窗口,按照下面的步骤创建必要的数据库访问权限
(2)用编辑器打开DataSource.groovy文件
按照下面的配置修改它。
可以在目录grails-apps\stu\grails-app\conf中找到这个文件。
修改如下:
dataSource{
pooled=true
driverClassName="com.mysql.jdbc.Driver"
username="root"
password="wang"
}
hibernate{
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'
}
//environmentspecificsettings
environments{
development{
dataSource{
dbCreate="create-drop"//oneof'create','create-drop','update'
url="jdbc:
mysql:
//localhost/boxinmis_dev"
}
}
test{
dataSource{
dbCreate="update"
url="jdbc:
mysql:
//localhost/boxinmis_test"
}
}
production{
dataSource{
dbCreate="update"
url="jdbc:
mysql:
//localhost/boxinmis_prod;shutdown=true"
}
}
把MySql的Java连接库拷贝到lib下
打开下载的zip文件并解压出mysql-connector-java-3.1.13-bin.jar文件,并放到Grails应用的stu/lib目录里,然后启动程序看看程序的运行情况,
启动MySQL
查看开发环境数据库,会看到该领域类有一个有一张数据库表。
6实现查询
(1)在stu\grails-app\views\staManagement\list视图中添加到查询的链接:
linkclass="create"action="search">search link> 此时,出现search按钮 (2)在staManagement控制器中添加search操作: defsearch={} (3)添加查询视图 在stu\grails-app\views\staManagement\下添加查询视图: search.gsp(可以从create视图拷贝) 将有关project、studentid、projectid、score等字段删掉,只保留一个字段: name 将表单的action改为: searchresults,通过action转到searchresults.sp formaction="searchresults"method="post"> Value改为: search 打开网页,点击search按钮。 (5)添加searchresults 在staManagement控制器中添加searchresults操作: defsearchresults={ [staManagementInstanceList: staManagement.findAllByNameLike('%'+params.name+'%'),staManagementInstanceTotal: staManagement.count()]} 通过params.name从Request获得查询条件 用findAllByNameLke方法获得staManagement对象列表,放到staManagementInstanceList中 (6)添加查询结果视图 由于searchresults结果和list一样,都是表所以searchresults.gsp可以从list.gsp拷贝 Searchresults视图 7Grails查询—GORM 条件查询: 基于HibernateCriteria实现,通过createCriteria或者withCriteria方法来使用 改staManagement控制器searchresults 方法如下: (2)更改search.gsp 添加以下代码添加复杂查询条件: (3)生成search视图 (4)输入选择条件,生成searchresults: 8实现用户认证 (1)建立用户领域类,用于管理用户帐户 启动程序,打开浏览器访问http: //localhost: 8080/stu/user/create,如下: (2)通过Grails的Bootstrap机制添加初始用户 在grails-apps\stu\grails-app\conf中添加: 添加用户: (3)添加用户登录页面login.gsp。 (4)为User控制器添加login操作,以支持登录 (5)为User控制器添加logout操作,以支持退出 (6)在控制器中添加拦截器,以鉴别用户权限 对于student,希望所有的操作执行前都鉴别用户权限 对于user,希望除过login和logout之外的操作都鉴别用户权限 其中: auth是鉴别用户权限的操作 (7)将auth操作抽象到一个基类中 在hpu\src\groovy中添加基类BaseController Students和user控制器从BaseController中继承auth操作 (9)主要视图 如下: 访问界面 StaManagementList 登陆user 登陆后的界面 9总结 该课程设计是在Grails这个开源框架上开发出来的一个简单的系统。 通过这次课程设计使我对Grails有一个比较深刻的认识。 更加理解运用一个好的开发工具对开发系统的重要性,以及带来的简便性。 该课程设计像一个敲门砖一样使我认识了Grails,在以后我也必将对该开发工具作更系统的学习其中的各种功能等。 本次课程设计能顺利完成,首先应该在此感谢冯老师的指导,使得我对Grails这个开源框架能在尽可能短的时间内能够比较熟练地运用。 也在此感谢在课程设计过程中给予我诸多帮助的同学们 参考文献 《Groovy经典入门》 《Grails入门指南》 《Grails开源框架》-(使用指南) 冯文峰老师的课件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)