title varchar(10) NULL,
detail varchar(50) NULL, date datetime(10) NULL, course_id varchar(50) NULL, );
选课记录表:xk_record
Create Table xk_record (
id int(8) PRIMARY KEY, date datetime NULL, user_code varchar(50) NULL, course_id varchar(50) NULL, );
第四章 系统的具体实现
4.1准备工作
首先利用MyEclispse 新建一个工程,工程可以任意命名。在工程下新建一个包grad.util ,然后在这个包下新建四个包user、homework、course、notice。
1)在user包下有两个类,其中各个类的作用为:
User类:用户类,描述用户属性,以及这些属性的值的设置和取得的方法。 Op_user类:管理用户,包括用户的查询,修改,删除,添加等。
2)在course包下有两个类,如下:
Course类:课程类,描述课程的属性,以及这些属性的值的设置和取得的方法。 Resourse类:课程资源类,描述资源的属性,以及这些属性的设置和取得的方法。 Op_resourse类:课程和课程资源的管理类,主要具有课程和课程资源的查询,修改,删除和添加方法。
3)在homework包下有2个类,其中各类的作用如下:
Homework类:家庭作业类,描述作业的属性,以及这些属性的值的设置和取得的方法。 Op_homework类:家庭作业管理类,主要包含家庭作业的查询,修改,删除和添加。
4)在notice包下有2个类,各类为:
Notice类,课程公告类,描述公告的属性,以及这些属性的值的设置和取得的方法。 Op_notice类,课程公告管理类,主要包含公告的查询,修改,删除和添加方法。
12
4.2数据库连接模块
Grad.util.DataBase.java是一个公共类,其他类如果要连接数据库,只需要构造这个类的对象就可以了,一般情况下大家常把是数据库的查询excuteQuere()、更新excuteUpdate()等方法也放在这个类里。 链接数据库有以下注意项: 1)数据库的端口要正确。
2)用户名为sa 密码在sqlserver2008中不能为空。
3)jdbc链接sqlserver的驱动使用SqlServer2000的驱动会出错,要使用sqljdbc.jar或者sqljdbc4的驱动,并且链接的代码也不同,详见代码。
以下详细代码详见附录一
数据库为公共连接类,代码为: package grad.util; import java.sql.*;
public class DataBase { public Connection conn; public DataBase() { this.connect();
}
public boolean connect(){
try{//用jdbc直接连接sqlserver数据库
Class.forName(\ String
url=\ String user=\
String password=\
conn= DriverManager.getConnection(url,user,password); }catch(Exception ee){
System.out.println(\ return false; }
return true; } }
4.3用户模块
有了前面的基本类,现在开始业务处理类的编写。用户类user.java主要负责描述用户的属性,以及这些属性的get和set方法。部分代码如下:
13
package grad.util.user;
public class user { public user() { }
private int id=0; //自动编号
String account=\用户帐号,老师的帐号为课程编号 String password=\用户密码
int type=0; //用户类型1-学生,2-老师,3-管理员 String name=\用户真实姓名 String sex=\用户性别
String college=\用户所在学院
String teacher=\如果是学生则为 指导教师姓名,否则值为null public void setId(int id) {
this.id=id; }
public int getId() {
return this.id;
??????.(后面的省略)
用户管理如下:
用户分教师,学生和管理员,因此在进行操作的时候,要判断用户属于哪一种身份。教师编号就是课程编号,因此把课程的管理也放在了用户管理中,增加一门课程的时候,也要相应的用课程编号做为教师编号添加一个新用户,因此,学生选课一类的操作也就放在这个类里。
1. public user getuserbyusercode(string user_code,string type)
功能:通过用户编号和用户类型,查询,返回用户的详细信息。 参数:user_code用户编号,type用户类型。 返回值:user对象。
实现思路:建立数据库连接—组织SQL语句—执行查询—构造用户对象—设置用户对象属性值—返回用户对象。
2. public arraylist getallstudent(string course_id)方法
功能:查询选修了指定课程的所有学生。 参数:course_id课程编号。 返回值:用户对象列表。
实现思路:建立数据库连接——组织SQL语句——执行查询——取结果—行记录—构造用户对象--设置对象属性—添加对象—取一行记录直到取完全部记录,返回对象列表。
3. public Boolean addcourse(course cs)方法
14
功能:添加一门课程
参数:course课程对象
返回值:添加成功返回ture,否则返回false.
实现思路:建立数据库连接—取课程对象—取课程属性---执行insert---构造用户对象—设置用户名和密码为课程编号—设置其他属性—调用方法添加用户—出错返回ture,否则返回false.
addUser() updateUser() getAllStudent()分别用于添加用户,修改用户,获取所有用户, 代码简要介绍在 附录一 A 4.4课程模块
课程bean对应的文件叫course.java,这个bean主要描述了课程的一些基本属性,以及这些属性值的get和set方法。课程bean course.java的参考代码在附录一 B String course_code=\课程编号 String course_name=\课程名称 String college=\开课院系String course_time=\上课时间 String start_end=\上课区间 即从第几周到第几周
String course_tech=\任课教师String course_credit=\课程学分 String course_site=\上课地点 4.5教学资源模块
教学资源bean对应的文件为resource.java,这个bean主要描述了教学资源的一些基本属性,以及这些属性值的get和set方法。教学资源bean resource.java的参考代码在附录一 C
int id=0; //自动编号 String title=\资源名称
String course_id=\资源所属课程编号 String link=\资源在服务器存贮地址
String ext=\资源文件扩展名 例如.doc,.ppt等
String filesize=\资源文件大小 String sdate=null; //上传日期
int power=1; //1为可在线浏览 2为可下载
教学资源管理主要是教学资源的添加,修改,删除和查询。其实现比较简单,对应的文件为op_resource.java,这里主要是两个方法:
1. public Arraylist GetAllresourceByCourse(string sourseid)方法 功能:查询指定课程发布的学生可以下载的全部资源。 参数:sourseid课程编号。
返回值:资源列表。
实现思路:建立数据库连接—组织SQL语句执行查询—取记录—构造资源对象—设置对象属性—返回结果列表。
15
2. public void addresource(resource rs)方法
功能:添加新资源。
参数:resource资源对象 返回值:无
实现思路:建立数据库连接—根据传递的对象,取得对象属性,组织SQL语句—执行insert操作。 课程作业bean的编写:
课程作业bean对应文件homework.java,主要描述了课程作业的一些基本属性,以及这些属性值的get和set方法。课程作业bean的代码在附录一 D int id=0; //作业编号String title=\作业名称
String link=\作业在服务器的存储路径 String date=\老师发布作业或者学生提交时间
String type=\为老师发布作业 2为学生提交的作业答案 String course_code=\作业所属课程编号
String user_id=\学生提交作业时,为学生编号
String status=\学生提交的作业 老师是否已经查看 4.6课程作业模块
课程作业管理主要包括教师发布课程作业、删除课程作业,查看学生提交的作业答
案,学生查询教师发布的作业、提交作业答案。课程管理bean对应的文件op_homework.java,课程作业管理bean的两个方法如下: 1. getallhomeworkcommit()方法:
功能:查询全部学生为指定课程提交的作业,并把相同学生提交的作业排列到一起。 参数:课程编号sourseid.
返回值: homework对象构成的arraylist数组。
实现思路:建立数据库连接――根据课程编号和提交的作业类型组织SQL语句执行查询――取一行记录――构造作业对象――返回arraylist结果列表。 2.getallhomeworkpub()方法:
功能:查询指定课程发布的全部作业。 参数:课程编号sourseid.
返回值: homework对象构成的arraylist数组。
实现思路:建立数据库连接――根据课程编号和提交的作业类型组织SQL语句执行查询――取一行记录――构造作业对象――设置对象书香――加进arraylist列表,循环直到最后一条记录――返回arraylist结果列表。 代码如下见附录一 E 4.7课程公告模块
课程公告bean主要定义课程公告所具有的属性,以及这些属性值的设置和获取方法。课程公告管理bean主要包含课程公告的添加、查询和删除的方法,各个方法的实现都比
16