• Ubuntu 15 下 Qt 配置mysql链接及基本操作


    最近需要在Linux下做一个unix网络编程项目,选择了Ubuntu 最新版本15.04 :
    开发环境:Qt 5
    数据库: MySQL

    安装Qt 和 MySQL

    简要介绍一下软件的安装!

    1. 安装Qt命令sudo apt-get install qtcreator
    2. 安装MySQL,我是采用的软件中心选择的开发工具 包括 服务器、客户端、工作台三个软件;然后,在命令行配置root账户密码即可!
      默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:

    $mysql -u root

    在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。

    进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。

    mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

    注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。

    这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。

    安装MySQL驱动

    新建项目

    在Qt中新建一个控制台项目,在main.cpp内添加代码:

    #include <QCoreApplication>
    #include <QtSql/QSqlDatabase>
    #include <QtSql/QSqlDriver>
    #include <QtSql/QSqlQuery>
    #include <QDebug>
    int main(int argc, char *argv[])
    {
        QCoreApplication a(argc, argv);
    
        qDebug()<<"available drivers:";
        QStringList drivers = QSqlDatabase::drivers();
        foreach(QString driver, drivers)
        qDebug()<<driver;
    
        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
        db.setHostName("localhost");
        db.setPort(3306);
        db.setDatabaseName("EasyChat");
        db.setUserName("root");
        db.setPassword("123456");
        if(!db.open()){
            qDebug()<<"Unable to open database";
        }else{
            qDebug()<<"Database connection established";
        }
        return a.exec();
    }

    另外,在.pro文件中添加:

    QT       += sql

    基本操作

    插入语句

    //用户注册对应的,插入用户数据
    int insert(const User &user)
    {
        //执行sql语句
        QSqlQuery query;
        QString sql = QObject::tr("insert into User(userId,nickname,password,state,registerTime)values('%1','%2','%3','%4','%5')").arg(user.userId)
               .arg(user.nickname)
               .arg(user.password)
               .arg(user.state)
               .arg(user.registerTime);
    
        qDebug()<<sql;
    
        bool ret = query.exec(sql);
    
    
        qDebug()<<"插入操作结果ret = "<<ret;
    
        if(ret)
            return SUCCESS;
        else
            return FAILED;
    }
    

    查询操作

    这里写代码片
  • 相关阅读:
    javaweb学习总结(四十五)——监听器(Listener)学习二
    javaweb学习总结(四十四)——监听器(Listener)学习
    javaweb学习总结(四十三)——Filter高级开发
    javaweb学习总结(四十二)——Filter(过滤器)学习
    javaweb学习总结(四十一)——Apache的DBUtils框架学习
    javaweb学习总结(四十)——编写自己的JDBC框架
    javaweb学习总结(三十九)——数据库连接池
    javaweb学习总结(三十八)——事务
    javaweb学习总结(三十七)——获得MySQL数据库自动生成的主键
    javaweb学习总结(三十六)——使用JDBC进行批处理
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214768.html
Copyright © 2020-2023  润新知