• 【MySQL系列】使用C语言来连接数据库


    ☕导航小助手☕

         🍚写在前面

              🥡一、准备工作

                   🧇🧇1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下

                   🍞🍞1.2 添加 libmysql.lib 

                   🦪🦪1.3 添加 include目录

                   🍔🍔1.4 包含头文件

                   🧀🧀1.5 其他准备工作

                              🍗🍗🍗1.5.1 代码准备

                              🥩🥩🥩1.5.2 创建数据库连接

                   🍝🍝1.6 选择相应方案配置 Release,解决方案平台 x64

              🍜二、代码测试案例

                   🍰🍰2.1 向数据库插入数据

                   🍣🍣2.2 向数据库删除数据

                   🍤🍤2.3 修改数据

                   🥐🥐2.4 查询数据,打印出来

              🍱三、使用C语言连接MySQL数据库 的测试案例代码


    写在前面

    有铁铁私信说 知道了 Java中使用 JDBC编程 来连接数据库了,但是使用 C语言 来连接数据库却总是连接不上去~

    立即安排一波使用 C语言连接 MySQL数据库的教程~


    一、准备工作

    1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下

    首先,我们要找到刚刚开始下载的 MySQL数据库 的安装目录,打开目录,并且将 libmysql.dll文件 和 libmysql.lib文件 复制到工程目录下~

    我安装MySQL的路径:C:\Program Files\MySQL\MySQL Server 5.7\lib

    1.2 添加 libmysql.lib 

     

    1.3 添加 include目录

    我的这个路径是:C:\Program Files\MySQL\MySQL Server 5.7\include 

    来到 VS2019 页面,和上述操作一样~

    右键MySQL工程,选择属性 右键,选择 C/C++,选择常规,选择 附加包含目录,同时进行编辑,将刚刚复制的 include路径 给粘贴上去~

      

     

    1.4 包含头文件

    接下来 在VS2019里面,先后敲出代码:

    #include 和 #include ,需要注意的是,两行代码的顺序不可以改变~ 

     

    1.5 其他准备工作

    1.5.1 代码准备

    1. #include <iostream>
    2. using namespace std;
    3. #include <WinSock.h>
    4. #include <mysql.h>
    5. void test();
    6. int main()
    7. {
    8. cout << "main" << endl;
    9. test();
    10. getchar();
    11. return 0;
    12. }
    13. void test()
    14. {
    15. printf("test\n");
    16. MYSQL m; //mysql连接
    17. MYSQL_RES* res; //查询结果集
    18. MYSQL_ROW row; //二维数组,存放数据
    19. //初始化数据库
    20. mysql_init(&m);
    21. //设置编码方式
    22. mysql_options(&m, MYSQL_SET_CHARSET_NAME, "gbk");
    23. //连接数据库
    24. if (mysql_real_connect(&m, "localhost", "root", "111111", "c", 3306, NULL, 0))
    25. { //主机 用户名 密码 数据库名 端口
    26. printf("数据库连接成功\n");
    27. }
    28. else {
    29. printf("数据库连接失败:%s \n", mysql_error(&m));
    30. //输出错误信息
    31. }
    32. }

    1.5.2 创建数据库连接

    第一步,Win+R,输入 cmd~

     第二步,输入 musql -uroot -p,回车后,输入一开始安装MySQL数据库是设置的密码,之后回车进入数据库~

    第三步,开始创建一个新的数据库,并且开始建表之类的操作~

    1.6 选择相应方案配置 Release,解决方案平台 x64

    最终,来运行一下代码,发现已经成功了~

     

    二、代码测试案例

    在经过上述的一系列操作之后,已经可以连接上 MySQL数据库中了~

    接下来我们就可以来做一些测试案例~

    2.1 向数据库插入数据

    此时,再插入数据之前,我们可以来看一看 上面新建的 student表 是没有任何数据的~

    但是,在加入 插入数据的代码之后,运行一下,我们就会发现 多出来一条数据~

     当然,改成插入多条数据也是可以的啦~

    2.2 向数据库删除数据

     

    2.3 修改数据

    没修改之前:

    修改之后:

    2.4 查询数据,打印出来

    三、使用C语言连接MySQL数据库 的测试案例代码

    1. /*
    2. //向数据库插入数据
    3. const char* sql = "insert into student values(2,'李四','女'),(3,'王五','男'),"
    4. "(4, '赵六', '女')";
    5. if (mysql_query(&m, sql))
    6. {
    7. printf("插入数据失败:%s \n", mysql_error(&m));
    8. }
    9. else
    10. {
    11. printf("插入数据成功\n");
    12. }
    13. //向数据库删除数据
    14. const char* sql_2 = "delete from student where name = '赵六'";
    15. if (mysql_query(&m, sql_2))
    16. {
    17. printf("删除数据失败:%s \n", mysql_error(&m));
    18. }
    19. else
    20. {
    21. printf("删除数据成功\n");
    22. }
    23. //向数据库修改数据
    24. const char* sql_3 = "update student set id = 5 where name = '李四'";
    25. if (mysql_query(&m, sql_3))
    26. {
    27. printf("修改数据失败:%s \n", mysql_error(&m));
    28. }
    29. else
    30. {
    31. printf("修改数据成功\n");
    32. }
    33. */
    34. //需要注意的是,在下面的设置中,所查询到的数据 与打印出来的数据要相互匹配,
    35. //不然就会出现乱码的
    36. //查询数据
    37. const char* sql_4 = "select id,sex,name from student where name = '张三'";
    38. if (mysql_query(&m, sql_4))
    39. {
    40. printf("未查到记录:%s \n", mysql_error(&m));
    41. }
    42. else
    43. {
    44. printf("查询成功 \n");
    45. }
    46. //获取查询结果集
    47. res = mysql_store_result(&m);
    48. if (res)
    49. {
    50. printf("获取到数据\n");
    51. }
    52. else
    53. {
    54. printf("未获取到数据:%s \n", mysql_error(&m));
    55. }
    56. //打印获取到的数据
    57. printf("id\tname\tsex\n");
    58. while (row = mysql_fetch_row(res))
    59. {
    60. printf("%s\t%s\t%s\n", row[0], row[1], row[2]);
    61. }
    62. //释放资源
    63. mysql_free_result(res);//释放结果集
    64. mysql_close(&m);//关闭数据库
    65. }

    使用 C语言 连接 MySQL数据库,正好可以和 Java 连接 MySQL数据库 相互映衬~

    好了,这篇博客就暂时介绍到这里了~

    如果感觉这一篇博客对你有帮助的话,可以一键三连走一波,非常非常感谢啦 ~

  • 相关阅读:
    SpringMVC基础:@RequestMapping详解
    【Java】有 A、B、C 三个线程,如何保证三个线程同时执行?在并发情况下,如何保证三个线程依次执行?如何保证三个线程有序交错执行?
    JS正则表达式
    MCU如何选型?
    6月26日第壹简报,星期日,农历五月廿八
    lenovo联想笔记本小新 潮7000-14IKBR 2018款(81GA)原装出厂Windows10系统镜像
    Swagger学习
    大数据ClickHouse进阶(十二):ClickHouse的explain查询执行计划
    向上转型和向下转型
    什么是合规性测试?如何进行合规性测试?
  • 原文地址:https://blog.csdn.net/qq_53362595/article/details/126425815