精华内容
下载资源
问答
  • idea配置连接数据库的操作方法

    万次阅读 多人点赞 2020-05-08 14:47:21
    idea连接数据库教程目录一、 连接操作1.1 创建连接1.2 连接数据库1.3 查看检验1.3.1 在终端上检验1.3.2 在Navicat上检验二、 解决问题 一、 连接操作 简介:介绍如何创建连接,具体连接某个数据库的操作流程。 1.1 ...

    学习时,使用IDEA的时候,需要连接Database,连接时遇到了一些小问题,下面记录一下操作流程以及遇到的问题的解决方法。

    一、 连接操作

    简介:介绍如何创建连接,具体连接某个数据库的操作流程。

    1.1 创建连接

    打开idea,点击右侧的 Database

    在这里插入图片描述
    或者 选择 View --> Tool Windows --> Database

    在这里插入图片描述
    点击 + 号 ,选择 Data Source ,选择 数据库 (下面以MySQL为例)
    在这里插入图片描述

    选择 mysql 后弹出以下界面

    在这里插入图片描述
    填上信息后,点击 Test Connect 测试 (如果有报错,请看下面 二、解决问题

    测试成功,点击 Apply ,再 OK 确定
    在这里插入图片描述
    如下图,连接创建成功

    在这里插入图片描述

    1.2 连接数据库

    上面 1.1 的操作,成功连接了 mysql ,还没有具体连接到你的数据库,这一部分介绍在idea中创建数据库、数据表。

    右键 刚刚创建好的连接,点击 New --> Schema

    在这里插入图片描述
    点击后弹出以下窗口,输入名字,这个名字是所创建的数据库库名,在终端上输入 show databases; 这个命令查看数据库显示数据库。
    mysql相关命令可以参考这篇文章 :MySQL常使用的命令

    在这里插入图片描述
    创建完成后如下

    在这里插入图片描述
    右键 数据库库名 ,点击 New --> Table ,创一个新的数据表

    在这里插入图片描述

    点击后弹出下面这个界面

    在这里插入图片描述

    修改表名,点击 + 添加列,设置各项属性

    在这里插入图片描述

    点击执行 Execute ,创建完成后如下

    在这里插入图片描述
    再创一个,这次不要勾选,因为 每个表只能有一个主键

    在这里插入图片描述
    完成后如下
    在这里插入图片描述
    双击 表名 打开,开始编辑,输入后按 回车 ,编辑完后点击 保存

    在这里插入图片描述
    补充说明一下,idea连接数据库,并不是工程项目连接了数据库。 idea连接操作数据库 只是代替了 cmd 操作数据库 ,让你在操作数据库的时候更方便一些。

    1.3 查看检验

    可以通过 终端navicat 来检验。

    1.3.1 在终端上检验

    打开终端(快捷键: Win+r ,输入 cmd ),输入命令查看数据库

    cmd登录数据库命令也可以参考这篇文章:MySQL在终端上操作命令
    在这里插入图片描述

    1.3.2 在Navicat上检验

    打开连接,选择数据库 demonstration (上面创建的名字,如果和上面创建的库名不一样,输入你的库名就可以了),打开 ,一步步点开就行了,界面很友好的。

    在这里插入图片描述

    另外,推荐使用 Navicat 这个数据库管理工具,它使用起来比较友好,如果不太熟悉使用的话,可以参考这篇文章 :Navicat使用快速入门教程

    二、 解决问题

    第一次连接,点击测试后,会出现以下错误提示
    在这里插入图片描述
    在URL 那一项的后面加上

    ?serverTimezone=GMT
    

    / 之间的位置为你的数据库名)
    在这里插入图片描述

    好了,继续学习。

    展开全文
  • python连接数据库

    万次阅读 多人点赞 2019-01-17 14:48:27
    一、python连接数据库 pyton连接数据库需要先安装pymysql模块:pip install pymysql 安装完成后导入pymysql模块:import pymysql python连接数据库主要分五个步骤: step1:连接数据库 step2:创建游标对象 ...

    一、python连接数据库
    pyton连接数据库需要先安装pymysql模块:pip install pymysql
    安装完成后导入pymysql模块:import pymysql
    python连接数据库主要分五个步骤:
    step1:连接数据库
    step2:创建游标对象
    step3:对数据库进行增删改查
    step4:关闭游标
    step5:关闭连接

    # 1. 连接数据库,
    conn = pymysql.connect(
        host='localhost',
        user='root',
        password='redhat',
        db='helloTest',
        charset='utf8',
           # autocommit=True,    # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。
    )
    # ****python, 必须有一个游标对象, 用来给数据库发送sql语句, 并执行的.
    # 2. 创建游标对象,
    cur = conn.cursor()
    # 3. 对于数据库进行增删改查
    # 1). ************************创建数据表**********************************
    try:
        create_sqli = "create table hello (id int, name varchar(30));"
        cur.execute(create_sqli)
    except Exception as e:
        print("创建数据表失败:", e)
    else:
        print("创建数据表成功;")
    ## 2). *********************插入数据****************************
    try:
        insert_sqli = "insert into hello values(2, 'fensi');"
        cur.execute(insert_sqli)
    except Exception as e:
        print("插入数据失败:", e)
    else:
        # 如果是插入数据, 一定要提交数据, 不然数据库中找不到要插入的数据;
        conn.commit()
        print("插入数据成功;")
    # 3). *********************插入多条数据****************************
    try:
        info = [(i, "westos%s" %(i)) for i in range(100)]
    
        # *********************第一种方式********************
        # %s必须手动添加一个字符串, 否则就是一个变量名, 会报错.
        insert_sqli = "insert into hello values(%d, '%s');"
        for item in info:
            print('insert语句:', insert_sqli %item)
            cur.execute(insert_sqli %item)
    
         # *********************第二种方式********************
        insert_sqli = "insert into hello values(%s, %s);"
         cur.executemany(insert_sqli, info )
    except Exception as e:
        print("插入多条数据失败:", e)
    else:
        # 如果是插入数据, 一定要提交数据, 不然数据库中找不到要插入的数据;
        conn.commit()
        print("插入多条数据成功;")
    # 4). **************************数据库查询*****************************
    sqli = "select * from hello;"
    result = cur.execute(sqli)  # 默认不返回查询结果集, 返回数据记录数。
    print(result)
    print(cur.fetchone())     # 1). 获取下一个查询结果集;
    print(cur.fetchone())
    print(cur.fetchone())
    print(cur.fetchmany(4))   # 2). 获取制定个数个查询结果集;
    info = cur.fetchall()     # 3). 获取所有的查询结果
    print(info)
    print(len(info))
    print(cur.rowcount)       # 4). 返回执行sql语句影响的行数
    #  5). 移动游标指针
    print(cur.fetchmany(3))
    print("正在移动指针到最开始......")
    cur.scroll(0, 'absolute')
    print(cur.fetchmany(3))
    print("正在移动指针到倒数第2个......")
    print(cur.fetchall())    # 移动到最后
    cur.scroll(-2, mode='relative')
    print(cur.fetchall())
    # 4. 关闭游标
    cur.close()
    # 5. 关闭连接
    conn.close()
    

    操作运行结果截图:
    1.创建数据表:
    在这里插入图片描述
    2.插入数据;
    在这里插入图片描述
    3.插入多条数据(第一种方法);
    在这里插入图片描述
    3.插入多条数据(第二种方法)
    在这里插入图片描述
    4.数据库查询;
    在这里插入图片描述
    5.移动游标指针
    在这里插入图片描述
    二、获取表的字段名和信息
    首先导入所需要的模块

    import time
    import pymysql
    

    然后进入主程序部分:此部分用with语句编写(with语句实现的效果是: with语句执行结束, 如果成功, 则提交改变的数据, 如果不成功, 则回滚.)

    conn = pymysql.connect(
        host='localhost',
        user='root',
        password='redhat',
        db='helloTest',
        charset='utf8',
        # autocommit=True,    # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。
    ) 	#连接数据库
    with conn:	#主程序with语句部分
        # ****** 判断是否连接? 
        print(conn.open)  # True
        # 2. 创建游标对象,
        cur = conn.cursor()
        # 3).
        sqli = "select * from hello;"
        result = cur.execute(sqli)  # 默认不返回查询结果集, 返回数据记录数。
        # 显示每列的详细信息
        des = cur.description
        print("表的描述:", des)
    	# 获取表头
        print("表头:", ",".join([item[0] for item in des]))
        cur.close() 	#关闭游标,with语句内部
     conn.close()	#关闭指针,with语句外部
    print("with语句之外:", conn.open)   # 正确情况下会是False
    

    操作运行结果;
    在这里插入图片描述

    三、基于mysql数据库银行转账功能实现
    银行转账系统考虑因素主要包括:
    1). 判断两个银行卡号是否存在?
    2). 判断source_id是否有足够的钱?
    3). source_id扣钱
    4). target_id加钱
    代码如下:

    import pymysql
    class TransferMoney(object):
        # 构造方法
        def __init__(self, conn):
            self.conn = conn
            self.cur = conn.cursor()
        def transfer(self, source_id, target_id, money):
    		if not self.check_account_avaialbe(source_id):
                raise  Exception("账户不存在")
            if not self.check_account_avaialbe(target_id):
                raise  Exception("账户不存在")
            if self.has_enough_money(source_id, money):
                try:
                    self.reduce_money(source_id, money)
                    self.add_money(target_id, money)
                except Exception as e:
                    print("转账失败:", e)
                    self.conn.rollback()
                else:
                    self.conn.commit()
                    print("%s给%s转账%s金额成功" % (source_id, target_id, money))
                    
        def check_account_avaialbe(self, acc_id):
            """判断帐号是否存在, 传递的参数是银行卡号的id"""
            select_sqli = "select * from bankData where id=%d;" % (acc_id)
            print("execute sql:", select_sqli)
            res_count = self.cur.execute(select_sqli)
            if res_count == 1:
                return True
            else:
                # raise  Exception("账户%s不存在" %(acc_id))
                return False
                
        def has_enough_money(self, acc_id, money):
            """判断acc_id账户上金额> money"""
            # 查找acc_id存储金额?
            select_sqli = "select money from bankData where id=%d;" % (acc_id)
            print("execute sql:", select_sqli)
            self.cur.execute(select_sqli)  # ((1, 500), )
            # 获取查询到的金额钱数;
            acc_money = self.cur.fetchone()[0]
            # 判断
            if acc_money >= money:
                return True
            else:
                return False
    
        def add_money(self, acc_id, money):
            update_sqli = "update bankData set money=money+%d  where id=%d" % (money, acc_id)
            print("add money:", update_sqli)
            self.cur.execute(update_sqli)
    
        def reduce_money(self, acc_id, money):
            update_sqli = "update bankData set money=money-%d  where id=%d" % (money, acc_id)
            print("reduce money:", update_sqli)
            self.cur.execute(update_sqli)
        # 析构方法
        def __del__(self):
            self.cur.close()
            self.conn.close()
            
    if __name__ == '__main__':
        # 1. 连接数据库,
        conn = pymysql.connect(
            host='localhost',
            user='root',
            password='redhat',
            db='helloTest',
            charset='utf8',
            autocommit=True,    # 如果插入数据,, 是否自动提交? 和conn.commit()功能一致。
        )
        trans = TransferMoney(conn)   
        trans.transfer(13997, 13998, 200)	#账户13997向13998转账200
    

    测试时,首先在数据库中构造数据表bankData,在数据表中添加用户信息(包括用户帐号和账户内金额)
    如下:
    在这里插入图片描述在这里插入图片描述
    运行代码后数据库内金额发生变化,由账户13997向账户13998转账200元:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • android连接数据库实例

    千次下载 热门讨论 2012-08-16 09:48:20
    android连接数据库的实例,包括webservice端的代码和数据库的格式和代码,希望对需要的人有帮助
  • 用Navigate连接数据库 MySQL数据库管理系统实现对MySQL数据库的操作与管理(体现在 Query中) MySQL数据库是一个数据库软件,本质是一个文件系统,用于存放各种文件,但是没有直接的图像化操作界面,里边的数据的...

    用Navicat连接数据库

    说明:MySQL数据库管理系统实现对MySQL数据库的操作与管理(体现在Query中)
    MySQL数据库是一个数据库软件,本质是一个文件系统,用于存放各种文件,但是没有直接的图像化操作界面,里边的数据的管理就要借助其他的软件。
    Navicat Premium只是一个操作MySQL软件的图形化界面,首先在navicat中建立连接(Connection,创建一个新的数据库,双击实现连接),在keeper数据库中创建一个表tables,
    语句是:
    use test;		//test是数据库,table是创建的表
    create table uesr_info(
    id char(36),
    user_name varchar(12) unique,
    password varchar(15)
    )
    
    //char与varchar的异同:都是存储字符串,用单引号,如果表中字段长度始终相同(例如身份证号和手机号)则使用char,否则使用varchar类型
    //unique:则要求数据不允许重复
    
    创建完成后可以使用SQL语句
    /*添加语句*/
    insert into userinfo (id,user_name,password) values('0b2d0ee2-0ddf-4061-bb2e-ce390b4c6960','tom','123456')
    insert into userinfo (id,user_name,password) values('0b2d0ee2-0ddf-4061-bb2e-ce390b4c6960','jim','456')
    insert into userinfo (id,user_name,password) values('0b2d0ee2-0ddf-4061-bb2e-ce390b4c6960','jom','456')
    
    /*查询语句,*是通配符,会查出所有的信息*/
    select * from userinfo where user_name='jim' and password='456'
    
    /*删除语句*/
    delete from userinfo where user_name='jom'
    
    /*修改语句*/
    update userinfo set id='2',user_name='lucy' where user_name='jim' 
    

    在JAVA中实现数据库的连接

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    try {
    	Class.forName("com.mysql.jdbc.Driver");	//1,加载驱动
    	Connection connection=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","root");	//2,实现连接,返回连接,连接到一个数据库对象。Connection是类,connection变量名。相当于Navicat中Connection 连接到数据库。
    	Statement statement=connection.createStatement();	//3,创建对象(new Query)。相当于Navicat软件中执行SQL语句的窗口
    	String sql="delete from user_info";			//4,要执行的删除操作
    	int affect=statement.executeUpdate(sql);		//statement调用方法executeUpdate(),开始执行命令,相当于在query窗口执行sql语句
    	System.out.println(affect);		//5,处理结果,输入受影响的行数。
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    
    //try语句中的代码出现检查时异常,需捕获异常,由于异常种类较杂,所以直接使用Exception处理,语句执行完之后需要进行资源释放,不然会蚕食内存,因为操作数据库是向硬盘中存信息,数据库中信息不会消除。
    finally {		//6,释放资源过程:先关掉窗口,再关掉连接
    		try {
    			if(statement!=null) {		//02,加if是防止出现控制针异常,如Class.forName("com.mysql.jdbc.Driver");此语句出现非检查时错误捕捉不到,try中的语句会终止执行.不加if时statement一定为null,会执行关闭资源的语句,因为根本没有启动所以会出错。加if后出现null就不关闭。
    			statement.close(); 	//01,单独的此语句会出错,需要捕捉异常
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		
    		try {
    			if(connection!=null) {
    			connection.close();
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    }
    
    展开全文
  • QT连接数据库

    万次阅读 多人点赞 2019-06-07 11:15:09
    QT连接数据库及操作 MySQL数据库 创建一个新的项目,带ui,(Widget) 在.pro文件中加上sql,如图 在类的.cpp中加上两个头文件 #include <QSqlDatabase> #include <QDebug> #include <QMessageBox&...

    QT连接数据库及操作

    MySQL数据库

    创建一个新的项目,带ui,(Widget)
    在这里插入图片描述
    在.pro文件中加上sql,如图
    在这里插入图片描述
    在类的.cpp中加上两个头文件

    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>
    #include <QSqlError>
    

    当你加上这一句:

    qDebug()<<QSqlDatabase::drivers();
    

    在这里插入图片描述
    QSQLITE 文件型数据库,不用服务器。

    这里我们用QMYSQL

    添加MYSQL数据库

        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //数据库对象
    

    连接数据库(首先得先有mysql)

    //连接数据库
        db.setHostName("127.0.0.1"); //数据库服务器IP
        db.setUserName("root"); //数据库用户名
        db.setPassword("123456"); //数据库密码
        db.setDatabaseName("info"); //使用哪个数据库
    

    判断数据库是否连接成功同时打开数据库

        if( !db.open() ){ //数据库打开失败
            QMessageBox::warning(this,"错误",db.lastError().text());
            return;
        }
    

    (记住,这里要把libmysql.dll库放进QT的bin文件里,否则会弹出找不到)
    下面的百度云网盘里有libmysql。dll的库:
    链接:https://pan.baidu.com/s/1vXhscnLRZtI1XhQH8oZaOw
    提取码:y7h7

    在这里插入图片描述
    这样则说明成功了。

    创建表

    加个头文件:

    #include <QSqlQuery>
    

    创建代码:

     QSqlQuery query;
        query.exec("create table student(id int primary key auto_increment, name varchar(255), age int, score int);");
    

    会发现数据库成功创建出一个student的表
    在这里插入图片描述
    创建表一次就行,或者你事先在mysql创建好了则不用再创建了。

    传入数据:

    单组传入:
    QSqlQuery query;
        query.exec("insert into student(id, name, age, score) values(1, 'mike', 18, 59);");
    

    在这里插入图片描述
    在这里,我mysql可视化用的是 sqlyog。

    批量插入

    加上头文件

    #include <QSqlQuery>
    #include <QVariantList>
    
        //odbc风格
        //预处理语句
        //?相当于占位符
        query.prepare("insert into student( name, age, score) values(?,?,?);");
        //给字段设置内容 list
        QVariantList nameList;
        nameList<<"xiaoming"<<"xiaolong"<<"xiaojiang";
        QVariantList ageList;
        ageList<<11<<22<<33;
        QVariantList scoreList;
        scoreList<<59<<69<<79;
        //给字段绑定相应的值,按顺序绑定
        query.addBindValue(nameList);
        query.addBindValue(ageList);
        query.addBindValue(scoreList);
        //执行预处理命令
        query.execBatch();
    

    刷新一下数据库可以发现表中又多了三组数据
    在这里插入图片描述

    第二种风格(个人推荐这个)

     		//oracle风格
        	//占位符 : + 自定义名字
          	query.prepare("insert into student( name, age, score) values(:name,:age,:score);");
             QVariantList nameList;
             nameList<<"xiaoa"<<"xiaob"<<"xiaoc";
             QVariantList ageList;
             ageList<<33<<44<<55;
             QVariantList scoreList;
             scoreList<<89<<90<<100;
             //给字段绑定
             query.bindValue(":name",nameList);
             query.bindValue(":score",scoreList);
             query.bindValue(":age",ageList);
    
             //执行预处理命令
             query.execBatch();
    

    在这里插入图片描述
    成功插入数据。

    删除数据

    到.ui文件中
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    将界面设为
    在这里插入图片描述
    修改按钮名字。buttonCancel,buttonDel,buttonSure;
    右击删除,然后转到槽,选第一个。

    void Widget::on_buttonDel_clicked()
    {
        //获取行编辑内容
        QString name = ui->lineEdit->text();
    
        QString sql = QString("delete from student where name = '%1';").arg(name);
        //开启一个事务
        QSqlDatabase::database().transaction();
        QSqlQuery query;
        query.exec(sql);
    }
    

    其他两个也一样的操作;

    void Widget::on_buttonSure_clicked()
    {
        //确定删除
        QSqlDatabase::database().commit();
    }
    
    void Widget::on_buttonCancel_clicked()
    {
        //回滚,撤销
        QSqlDatabase::database().rollback();
    }
    

    更新数据用update student set score = 90 where id = 3;

    编译运行即可实现删除数据。

    查询:

    query.exec("select*from student");
        while(query.next()){  //一行一行遍历
            //取出当前行的内容
           qDebug()<<query.value(0).toInt()
               <<query.value(1).toString()
               <<query.value("age").toInt()
               <<query.value("score").toInt();
        } 
    

    遍历出来了
    在这里插入图片描述
    要只显示一行的内容

    query.exec("select*from student where name = 'xiaoa");
    

    可以看到
    在这里插入图片描述

    #include "widget.h"
    #include "ui_widget.h"
    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>
    #include <QSqlError>
    #include <QSqlQuery>
    #include <QVariantList>
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
    
        //打印QT支持的数据库驱动
        qDebug()<<QSqlDatabase::drivers();
    
        //添加MYSQL数据库
        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //数据库对象
        //连接数据库
        db.setHostName("127.0.0.1"); //数据库服务器IP
        db.setUserName("root"); //数据库用户名
        db.setPassword("holdworld000312"); //数据库密码
        db.setDatabaseName("slimes"); //使用哪个数据库
    
        //打开数据库
        if( !db.open() ){ //数据库打开失败
            QMessageBox::warning(this,"错误",db.lastError().text());
            return;
        }
    
        //传入
        QSqlQuery query;
        //query.exec("insert into student(id, name, age, score) values(1, 'mike', 18, 59);");
    
        //批量插入
        //odbc风格
        //预处理语句
        //?相当于占位符
    //    query.prepare("insert into student( name, age, score) values(?,?,?);");
    //    //给字段设置内容 list
    //    QVariantList nameList;
    //    nameList<<"xiaoming"<<"xiaolong"<<"xiaojiang";
    //    QVariantList ageList;
    //    ageList<<11<<22<<33;
    //    QVariantList scoreList;
    //    scoreList<<59<<69<<79;
    //    //给字段绑定相应的值,按顺序绑定
    //    query.addBindValue(nameList);
    //    query.addBindValue(ageList);
    //    query.addBindValue(scoreList);
    //    //执行预处理命令
    //    query.execBatch();
    
          //oracle风格
        //占位符 : + 自定义名字
    //      query.prepare("insert into student( name, age, score) values(:name,:age,:score);");
    //         QVariantList nameList;
    //         nameList<<"xiaoa"<<"xiaob"<<"xiaoc";
    //         QVariantList ageList;
    //         ageList<<33<<44<<55;
    //         QVariantList scoreList;
    //         scoreList<<89<<90<<100;
    //         //给字段绑定
    //         query.bindValue(":name",nameList);
    //         query.bindValue(":score",scoreList);
    //         query.bindValue(":age",ageList);
    
    //         //执行预处理命令
    //         query.execBatch();
       query.exec("select*from student where name = 'xiaoa';");
        while(query.next()){  //一行一行遍历
            //取出当前行的内容
           qDebug()<<query.value(0).toInt()
               <<query.value(1).toString()
               <<query.value("age").toInt()
               <<query.value("score").toInt();
        }
    
    
    
    
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    
    void Widget::on_buttonDel_clicked()
    {
        //获取行编辑内容
        QString name = ui->lineEdit->text();
    
        QString sql = QString("delete from student where name = '%1';").arg(name);
        //开启一个事务
        QSqlDatabase::database().transaction();
        QSqlQuery query;
        query.exec(sql);
    
    
    }
    
    void Widget::on_buttonSure_clicked()
    {
        //确定删除
        QSqlDatabase::database().commit();
    }
    
    void Widget::on_buttonCancel_clicked()
    {
        //回滚,撤销
        QSqlDatabase::database().rollback();
    }
    

    静态数据库(.db)

    先建立一个.db文件
    在这里插入图片描述
    创建一个新项目。
    在.pro文件中加上sql
    .cpp文件和上面的类似,但是不用连接密码和账户(是开源的)。

    #include "widget.h"
    #include "ui_widget.h"
    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>
    #include <QSqlError>
    #include <QSqlQuery>
    #include <QVariantList>
    
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
    
        //打印QT支持的数据库驱动
        qDebug()<<QSqlDatabase::drivers();
    
        //添加MYSQL数据库
        QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //数据库对象
        //设置数据库
        db.setDatabaseName("../info.db");
    
    
        //打开数据库
        if( !db.open() ){ //数据库打开失败
            QMessageBox::warning(this,"错误",db.lastError().text());
            return;
        }
    
        QSqlQuery query;
        query.exec("create table student(id int primary key, name varchar(255), age int, score int);");
    
         // ?相当于占位符
        query.prepare("insert into student( name, age, score) values(?,?,?);");
        //给字段设置内容 list
        QVariantList nameList;
        nameList<<"xiaoming"<<"xiaolong"<<"xiaojiang";
        QVariantList ageList;
        ageList<<11<<22<<33;
        QVariantList scoreList;
        scoreList<<59<<69<<79;
        //给字段绑定相应的值,按顺序绑定
        query.addBindValue(nameList);
        query.addBindValue(ageList);
        query.addBindValue(scoreList);
        //执行预处理命令
        query.execBatch();
    
        query.exec("select*from student;");
         while(query.next()){  //一行一行遍历
             //取出当前行的内容
            qDebug()<<query.value(0).toInt()
                <<query.value(1).toString()
                <<query.value("age").toInt()
                <<query.value("score").toInt();
         }
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    

    在这里插入图片描述
    静态数据库的操作和上面的基本相似,唯一不同的就是登陆不用账号密码。

    展开全文
  • JDBC连接数据库6个步骤

    万次阅读 多人点赞 2018-11-01 09:46:27
    JDBC连接数据库,创建一个以JDBC连接数据库的程序,包含7个步骤:  首先准备JDBC所需的四个参数(user,password,url,driverClass) (1)user用户名 (2)password密码 (3)URL定义了连接数据库时的协议、...
  • idea数据库管理工具配置连接数据库

    万次阅读 2018-08-07 10:57:13
    idea数据库管理工具配置连接数据库 —————————————————————————————————————————————————————— 在cmd中操作数据库太麻烦了,还好idea为我们提供了很方便的...
  • spring boot 不连接数据库启动

    万次阅读 2018-09-03 22:28:12
    用spring boot 搭建的项目,在配置文件不连接数据库启动项目会报错。 原因在于 spring boot默认会加载 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 类,...
  • Pycharm连接数据库

    千次阅读 2019-01-15 09:36:36
    我们一般通过终端连接数据库, 其实也可以通过pycharm连接数据库: pycharm最右侧找到Database,然后操作如下 然后做如下配置: (第一次需要下载Driver驱动) 连接上去之后的效果 接下来,在pycharm中打开执行sql的...
  • SpringBoot 连接数据库

    千次阅读 2018-02-09 16:10:40
    ps: spring boot连接数据库 Spring Boot项目启动 连接mysql数据库 appliction配置文件 pomxml 利用JdbcTemplate执行语句 Spring Boot项目启动 上图所示,没有问题。下一步进行配置mysql ...
  • SecureCRT 连接数据库

    千次阅读 2019-05-24 19:15:11
    在开发中可能有些情况下无法直接连接数据库,可以通过一台可访问数据的机器做转发连接。 1、登录中转服务器 2、配置跳转 右键属性 3、将数据库连接工具的连接IP和端口改为上述127.0.0.1和8082,...
  • java JDBC连接数据库步骤及代码

    万次阅读 多人点赞 2018-12-06 09:34:01
    JDBC连接数据库,包含7个步骤 (1)加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现,成功加载后...
  • python MySQLdb 连接数据库

    万次阅读 2018-09-19 16:56:26
    python MySQLdb 连接数据库 引入并创建连接 以连接本地数据库为例 import MySQLdb conn = MySQLdb.Connect( host = '127.0.0.1', #服务器地址 port = 3306, #服务器端口号 user = 'root', #用户名 ...
  • OrientDB连接数据库

    千次阅读 2020-08-10 15:41:33
    OrientDB连接数据库 本章介绍如何从OrientDB命令行连接到特定数据库。它打开一个数据库。 以下语句是Connect命令的基本语法。 CONNECT <database-url> <user> <password> 以下是上述语法中的...
  • msf连接数据库

    千次阅读 2018-03-24 17:06:24
    手工连接数据库 开启postgresql服务, 进入postgresql配置 修改数据库配置,支持远程访问 进入以下目录/etc/postgresql/10/main 打开配置文件postgresql.conf 第二处修改,口令加密 保存退出。 ...
  • PHP7的连接数据库的三种方法
  • 连接数据库ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库...
  • PowerDesigner连接数据库

    万次阅读 2015-09-02 12:04:27
    PowerDesigner使用JDBC连接数据库
  • Idea连接数据库并执行SQL语句

    千次阅读 多人点赞 2020-10-09 16:32:49
    2、连接数据库 1、打开界面 2、配置连接信息 3、测试连接 4、面板基本信息 5、选择要显示的数据库 6、表的基本信息 7、新建查询 8、设置sql的备注名称 9、编写sql执行 10、执行结果 3、连接可能出现的...
  • nodejs连接数据库

    千次阅读 2018-07-11 10:28:24
    以MySQL为例:第一步:文件——新建链接——MySQL第二部,把信息填写完整第三步:新建数据库和数据表最后,创建一个server.js,写...//连接数据库 var connection = mysql.createConnection({ host:'localhost', ...
  • DataGrip第一次使用连接数据库的步骤

    万次阅读 2019-11-08 09:35:49
    接下来给大家介绍一下DataGrip的基本使用步骤【连接数据库】 第一步:点击database -> 点击加号 -> 点击Data Source -> 选择你需要的 第二步:填写数据库及数据库的用户名与密码信息 第三步:选择你要看...
  • 使用pymysql连接数据库

    千次阅读 2019-11-02 11:28:04
    使用pymysql连接数据库 一、什么是pymysql 想要在Python上连接数据库,必须通过一个中间库,就是pymysql,当然类似的连接库还有mysqlclient等,但是pymasql是最好用的一个。【连接mysql的一个库】 二、如何安装...
  • python连接数据库及操作数据库

    千次阅读 2018-02-27 17:02:08
    在数据分析过程中往往要操作较大的数据集,这就需要连接数据库进行操作import pandas as pd import numpy as np from pandas import Series,DataFrame from sqlalchemy import create_engine import MySQLdb as msd ...
  • java利用jdbc连接数据库之删除数据库中的数据准备工作: java利用jdbc连接mysql数据库准备知识目的: java利用jdbc连接数据库之删除数据库中的数据 1:代码package cn_java_connection_mysql;import java.sql....
  • Intellij idea远程连接数据库

    万次阅读 2018-03-09 13:34:26
    远程连接数据库。(相当于Navicat Premium等一些连接数据库的软件) 1.打开Intellij idea,选中view—-&gt;点击Tool Windows—–&gt;选择Database(如下图) 2.选择你需要连接的数据库类型(比较经常...
  • Oracle SQL Developer 连接数据库

    万次阅读 多人点赞 2019-05-16 11:28:45
    Oracle SQL Developer 连接数据库 今天在连接sqldeveloper服务器时遇到了很多问题,但最终还是通过网上的博客解决了问题,我就在总结一下我的解决过程。 一.界面 首先,Oracle SQL Developer 的连接数据库 界面是...
  • 连接数据库的步骤

    千次阅读 2018-12-21 13:37:55
    1、  user用户名,password密码,MySql连接URL,jdbc:mysql: //localhost:3306/hrms,... 在连接数据库之前要加载想要连接的数据库的驱动到JVM(Java虚拟机),  通过java.lang.Class类的静态方法forName(String ...
  • python如何连接数据库

    千次阅读 2019-06-08 11:02:01
    python如何连接数据库 (1)安装Anaconda软件 (2)点击"Anaconda Prompt"进入控制台 (3)启动Jupyter Notebook (4)测试连接 (5)查询数据 (6)安装驱动 (7)导入相关文件 (8)测试查询 哈哈,快来试试吧 ...
  • ASP.NET连接数据库实现登录和注册

    万次阅读 多人点赞 2019-03-25 21:29:23
    连接数据库 在连接之前,我们先在数据库中建立数据表以及待会要用到的数据 创建连接数据库的类 右击项目->添加新项 选择类 点击是 创建好的类如下 连接数据库呢我们肯定需要用到一些关于数据库的类...
  • pycharm如何连接数据库

    万次阅读 多人点赞 2018-01-30 22:08:10
    普通的安装连接数据库,在dos里面,用pip工具,pip install pymysql,等待成功就行了。 pycharm,应该是java开发工具idea一个公司,风格很像,用pycharm做数据库连接,相当简单,因为它本身是一个集成工具,pip...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 355,304
精华内容 142,121
关键字:

连接数据库