前一段时间一直在看MySql,看完后就想着做点什么来运用一下,感受一下MySql强大的搜索功能。于是,这两天就在做这个学生管理系统,这次的学生管理系统和之前的职工管理系统有很大的不同,之前的职工管理系统只是增删改查,这次的学生管理系统含有多个数据表,学生学籍信息表、学生体检信息表、学生考试成绩表、课程号表和系统管理表。
做完之后,感觉最核心的就是对数据库的访问,然后再加一些界面之间切换,就成了我现在这个成品。
首先是我的访问数据库类:
class My_Sql
{
QSqlQuery *query;
public:
My_Sql();
void initsql(); //初始化连接数据库
void createtable(); //建表、索引、触发器
bool inituser(QString name, QString identify, QString passward); //注册用户
bool loguser(QString name, QString passward); //用户登录/忘记密码
bool addstu(my_stu* stu); //添加学生信息
bool deletestu(QString account); //删除学生信息
bool updatestu(my_stu* stu); //修改学生信息
bool addheal(my_heal* heal); //添加体检信息
bool updateheal(my_heal* heal); //修改体检信息
bool deleteheal(QString account); //删除体检信息
bool addgrade(my_grade* grad); //添加成绩信息
bool updategrade(my_grade* grad); //修改成绩信息
bool deletegrade(QString account); //删除成绩信息
bool addlicen(my_licen* lice); //添加领证信息
bool updatelicen(my_licen* lice); //修改领证信息
bool deletelicen(QString account); //删除领证信息
}; 这里主要显示了对数据库和数据表的初始化,以及对三张表的访问及处理。对数据表的处理和以前的用法差不多,最大的差距就是对多表的处理,比如:将多表查询结果整合存放于视图中,学籍和另外的体检表、证书表添加插入触发器,名字更改后就会将另外两个表的数据一起改变。再比如,对这几张表中的数据添加索引,让其自动排序,这样为数据的检索提高了效率。
query = new QSqlQuery;
/*用户表*/