根据老师给的提纲,将学习资源网暂分成六个大的版块,分别是:本科课程、网络课程、教学课件、教学素材、教学文库、会员中心。所有的课程、课件、文章都按
2004
的国家课程分类大纲进行分类。
通过于
老师的沟通,由于现今无法通过网络沟通,所以寒假的工作可以分成两个部分先做。一是做一个完整的会员制;二是做一个完整的后台资源管理系统;三是做一个新闻发布系统。而前台的展示,到学校后再与老师商量。
可建立的模型有:用户库及行为模型、新闻发布系统模型、资源发布系统模型。
其模型结构如下图:
数据库说明:
#
管理员表
.
# Structure for the `admin` table :
#
CREATE TABLE `admin` (
`Id` int(2) NOT NULL auto_increment COMMENT '
管理员
Id
号
.',
`Name` varchar(20) default NULL COMMENT '
管理员名称
.',
`Pwd` varchar(65) default NULL COMMENT '
管理员密码
.',
`SGrant` int(1) default NULL COMMENT '
管理员权限
.',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#
课程资源分类表
# Structure for the `courseid` table :
#
CREATE TABLE `courseid` (
`Id` int(3) NOT NULL auto_increment COMMENT '
资源归属类别
Id.',
`Name` varchar(20) default NULL COMMENT '
归属名称
.',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
#
课程资源表
.
# Structure for the `courses` table :
#
CREATE TABLE `courses` (
`Id` int(6) NOT NULL auto_increment COMMENT '
资源
Id
号
.',
`Cname1` varchar(20) default NULL COMMENT '
一级学科名称
.',
`Cname2` varchar(20) default NULL COMMENT '
二级学科名称
.',
`PhotoPath` varchar(255) default NULL COMMENT '
资源介绍图片
.',
`School` varchar(50) default NULL COMMENT '
出自学校
.',
`Teacher` varchar(12) default NULL COMMENT '
主讲教师
.',
`Course` varchar(50) default NULL COMMENT '
课程名称
.',
`IURL` varchar(255) default NULL COMMENT 'Internet
网上地址
.',
`LURL` varchar(255) default NULL COMMENT '
本地地址
.',
`Link` varchar(50) default NULL COMMENT '
所生成的
HTML
文件名称
.',
`Introduce` text COMMENT '
介绍
.',
`RegDate` datetime default NULL COMMENT '
添加日期时间
.',
`Click` int(5) default NULL COMMENT '
点击次数
.',
`Changed` longblob COMMENT '
是否已生成
HTML
网页
.',
`CId` int(3) default NULL COMMENT '
归属
Id.',
`AId` int(2) default NULL,
PRIMARY KEY (`Id`),
KEY `CId` (`CId`),
KEY `AId` (`AId`),
CONSTRAINT `courses_fk` FOREIGN KEY (`CId`) REFERENCES `courseid` (`Id`),
CONSTRAINT `courses_fk1` FOREIGN KEY (`AId`) REFERENCES `admin` (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#
新闻类别表
.
# Structure for the `newsclass` table :
#
CREATE TABLE `newsclass` (
`Id` int(3) NOT NULL auto_increment COMMENT '
新闻栏目
ID.',
`Name` varchar(10) NOT NULL COMMENT '
新闻栏目名称
.',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
#
新闻表
.
# Structure for the `news` table :
#
CREATE TABLE `news` (
`Id` int(8) NOT NULL auto_increment COMMENT '
新闻
Id
号
.',
`Author` varchar(24) NOT NULL COMMENT '
原文作者
.',
`Source` varchar(20) default NULL COMMENT '
来源网站
.',
`SRrl` varchar(255) default NULL COMMENT '
来源网址
.',
`NDate` datetime default NULL COMMENT '
添加时间
.',
`Words` varchar(60) default NULL COMMENT '
关键词
.',
`Content` mediumtext COMMENT '
内容
.',
`NewsCId` int(3) default NULL COMMENT '
外码
NewsClass
的
Id.',
`AId` int(2) default NULL COMMENT '
添加文章的作者
.',
PRIMARY KEY (`Id`),
KEY `NewsCId` (`NewsCId`),
KEY `AId` (`AId`),
CONSTRAINT `news_fk` FOREIGN KEY (`NewsCId`) REFERENCES `newsclass` (`Id`),
CONSTRAINT `news_fk1` FOREIGN KEY (`AId`) REFERENCES `admin` (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
#
会员表
.
# Structure for the `username` table :
#
CREATE TABLE `username` (
`Id` int(6) NOT NULL auto_increment COMMENT '
用户
Id.',
`Name` varchar(24) default NULL COMMENT '
用户昵称
.',
`Pwd` varchar(65) default NULL COMMENT 'MD5
加密密文
.',
`RealName` varchar(12) default NULL COMMENT '
用户真实姓名
.',
`Province` varchar(3) default NULL COMMENT '
省份
.',
`City` varchar(16) default NULL COMMENT '
城市
.',
`Addr` varchar(24) default NULL COMMENT '
通讯地址
.',
`Zip` varchar(6) default NULL COMMENT '
邮政编码
.',
`Phone` varchar(12) default NULL COMMENT '
固定电话号码
.',
`Tel` varchar(12) default NULL COMMENT '
手机号码
.',
`Email` varchar(24) default NULL COMMENT '
电子邮箱
.',
`Temp` longblob COMMENT '
是否是临时用户
.',
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
通过Hibernate映射,请注意:AdminàNews及AdminàCourses的关联操作.当删除Admin中的一条记录时,将会导致对News及Course 中字段 Aid的修改.
2006
年
1
月
16
日
星期一
8
时
58
分
7
秒
//Hibernate处理数据库几个步聚.
// 第一步:创建 session.
// 第二步:创建事务处理 transcation.
// 第三步:操作 session.
// 第四步:处理事务.
// 第五步:关闭 session.
Session session=HibernateSessionFactory.currentSession();
Transaction tran=session.beginTransaction();
Username ws=new Username();
ws.setName("唯思");
session.save(ws);
session.flush();
tran.commit();
session.close();
利用
Hibernate
定义的通用数据库访问类.此类为持久类
.
package wills.sql;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import wills.beans.HibernateSessionFactory;
public class SQL_Comm {
Session session;
Transaction tran;
public void Begin() {
session = HibernateSessionFactory.currentSession();
tran = session.beginTransaction();
}
//
在数据库中插入一条记录
.ws
为插入的记录
.
public void Insert(Object ws) {
Begin();
session.save(ws);
End();
}
//
在数据库中删除一条记录
. ws
为对象对象副本
.
public void Delete(Object ws) {
Begin();
session.delete(ws);
End();
}
//
在数据库中搜入一个对象
. Hibernaet
将自动寻找相匹配的数据库
.
public void Update(Object ws) {
Begin();
session.update(ws);
End();
}
//
执行
Update
或是
Delete
等
SQL
语句
.
public int UpdateAndDelete(String sql) {
Begin();
Query query = session.createQuery(sql);
int ret = query.executeUpdate();
End();
return ret;
}
//
执行
Select
查询语句
public List Select(String sql) {
Begin();
List list = session.createQuery(sql).list();
End();
return list;
}
//
对数据库事务直接进行递交
.
public void End() {
try {
session.flush();
tran.commit();
System.out.print("
事务成功递交
!\n");
} catch (Exception e) {
//
如果递交出错
,
则显示出错信息
.
System.out
.print("
操作
MySQL
出错
!\n
请验证是否出现如下错误
:\n \t1.
插入、更新的对象中是否有不允许的空值!
\n\t2.
插入、更新的对象中值的相关性是否正确!
\n\t3.Select
语句的条件是否正确!
\n");
System.out.print("
系统出错信息是:
" + e.toString() + "\n");
}
HibernateSessionFactory.closeSession();
}
}