0.下载MySQL和Navicat
注册MySQL的账户密码,后面会用到的。
1.检查Qt支持的数据库驱动
qDebug()<<QSqlDatabase::drivers();
2.检查Qt的位数和MySQL的位数要对应,32位对应32位的
将MySQL的驱动libmysql.dll库复制一份到对应的debug目录或者release目录下
//添加一个数据库
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //括号内要写出数据库的类型
//设置数据库
db.setHostName("127.0.0.1"); //设置数据库的主机ip,localhost也可以
//设置端口,mysql的端口默认是3306
db.setPort(3306);
//设置数据库的用户名
db.setUserName("root");
//设置数据库的密码
db.setPassword("123456"); //这个就是安装MySQL时设置的密码
//设置数据库的名字
db.setDatabaseName("aaa2");
//打开数据库(已经安装过mysql驱动了)
if(db.open()==false){
QMessageBox::warning(this,"waring",db.lastError().text());
}
else QMessageBox::about(this,"success","数据库打开成功");
运行成功
主外键的级联操作
在Navicat中新建两张表,我建的是student的学生表和classinfo的班级信息表,在班级信息表中将classID设置为主键,类型为int,学生表中添加一个字段和班级信息表中的字段classID,名字不一定要相同,按自己的习惯来,方便区分就可以了。
、
、
、
在学生表中插入外键,名字自己取,字段选择学生表中的classID,被引用的模式就是你当前的数据库,被引用的父表就是你要关联的主表,被引用的字段就是父表中的某一个字段,删除时和更新时选择CASCADE(级联模式),当父表中关联的字段更新时从表中对应的字段也会更新。
在插入外键时,一定要仔细检查主表和从表中关联的字段是否匹配,比如说类型,长度,小数点,不是null,虚拟都要一一匹配,不然会报错,无法建立外键。
、
向表中添加一些数据后进行操作
删除主表中关联的字段记录后,从表中的数据会更新。这里我们删除了classID中1的记录,刷新student表中发现classID的记录也被删除了,这就是基础的级联操作,当然还可以关联多个表,可能会复杂一点。