windows下C API连接mysql问题 满意加高分 急急!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows下C API连接mysql问题 满意加高分 急急!!相关的知识,希望对你有一定的参考价值。

怎么在windows下 用VC 6.0工具连接mysql, 我现在不需要代码,只想知道怎么加载libmySQL.dll
步骤是什么??我用LoadLibrary("libmySQL.dll");加载报错:
E:\BT_SRC\demo\demo.cpp(5) : error C2501: 'LoadLibraryA' : missing storage-class or type specifiers
E:\BT_SRC\demo\demo.cpp(5) : error C2373: 'LoadLibraryA' : redefinition; different type modifiers
c:\program files\microsoft visual studio\vc98\include\winbase.h(4159) : see declaration of 'LoadLibraryA'
E:\BT_SRC\demo\demo.cpp(5) : error C2440: 'initializing' : cannot convert from 'char [13]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

用这个#pragma comment(lib, "libmysql.dll")加载,将libmysql.dll拷贝到当前工程目录报错:
ibmysql.dll : warning LNK4003: invalid library format; library ignored
libmysql.dll : warning LNK4003: invalid library format; library ignored
demo.obj : error LNK2001: unresolved external symbol _mysql_free_result@4
demo.obj : error LNK2001: unresolved external symbol _mysql_num_fields@4
demo.obj : error LNK2001: unresolved external symbol _mysql_fetch_row@4
demo.obj : error LNK2001: unresolved external symbol _mysql_num_rows@4
demo.obj : error LNK2001: unresolved external symbol _mysql_store_result@4
demo.obj : error LNK2001: unresolved external symbol _mysql_query@8
demo.obj : error LNK2001: unresolved external symbol _mysql_real_connect@32
demo.obj : error LNK2001: unresolved external symbol _mysql_init@4

注:我完整的安装了mysql 5.1

满意一定高分!!!

#include <windows.h>
#include "C:/MySQL Server 5.1/include/mysql.h"
#pragma comment(lib, "C:/MySQL Server 5.1/lib/debug/libmysql.lib")
这样就行了追问

我的路径是#include #include #include
#include "C:\Program Files\MySQL\MySQL Server 5.1\include\mysql.h"
#pragma comment(lib,"C:\Program Files\MySQL\MySQL Server 5.1\lib\debug\libmysql.dll")还是报错:
LINK : fatal error LNK1104: cannot open file "C:Program FilesMySQLMySQL Server 5.1libdebuglibmysql.dll"
Error executing link.exe.
不能打开??? 大侠指教啊!!!

追答

用/或\\
是libmysql.lib,不要指定dll

追问

恩 可以了 非常感谢 能解释下为什么不能指定dll 本人菜鸟 呵呵

追答

链接库就是要链接lib,哪有链接dll的,dll是可执行程序

参考技术A 目录不对 libmySQL.dll
放到debug下 吧
编译就是编译用的
参考技术B 1

windows10环境下eclipse连接mysql

windows10环境下eclipse连接mysql

 

只要按照下面的步骤走,绝对绝对错不了,除非今天上厕所没带纸

 

第一步:

安装mysql驱动器,可以在官网上面下载,里面是会有的,另外推荐一个网站直接下载: https://mvnrepository.com/artifact/mysql/mysql-connector-java ,从上面选择跟mysql版本相同的驱动器版本下载。

注意:点击我画住的地方,不要点击后面的蓝色central,然后下载jar包就好了。如果不知道自己mysql版本是多少的,可以到下载mysql的文件上面查看(除非你给他改了个名字)1597377936734

 

 

第二步:配置环境:

1.将下载好的jar包复制粘贴到你下载的java的jdk安装目录下的lib目录下面

 

 

2.在高级系统设置中,配置环境变量,将驱动器路径添加到CLASSPATH路径中,如果没有的话,可以新建一个

注意:加完路径后,记得加上分号哦

 

第三步:新建一个用来测试的数据库test1,按照下面的创建就好了

 

mysql>create database test;
mysql>use test;
mysql>create table user(name varchar(20),password varchar(20));
mysql>insert into user values(\'huzhiheng\',\'123456\');

 

 

第四步:打开eclipse配置并测试:

1.创建一个java项目,命名为onetest。

2.在onetest项目上右键,Build Path-->Add External Archives to Java Build Path-->选择mysql驱动器存放路

 

3.上代码测试:除了第一行的包名,还有mysql的用户名和密码在代码中可能需要修改,其他的不修改

package cc.bb.aa;
import java.sql.*;
​
public class onetest {
​
     public static void main(String args[]) { 
      try { 
       Class.forName("com.mysql.jdbc.Driver");   //加载MYSQL JDBC驱动程序  
       //Class.forName("org.gjt.mm.mysql.Driver"); 
       System.out.println("Success loading Mysql Driver!"); 
      } 
      catch (Exception e) { 
       System.out.print("Error loading Mysql Driver!"); 
       e.printStackTrace(); 
      } 
      try { 
       Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC","root",""); 
          //连接URL为  jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码 
     
       System.out.println("Success connect Mysql server!"); 
       Statement stmt = connect.createStatement(); 
       ResultSet rs = stmt.executeQuery("select * from user"); 
       while (rs.next()) { 
        System.out.println(rs.getString("name")); 
       } 
      } 
      catch (Exception e) { 
       System.out.print("get data error!"); 
       e.printStackTrace(); 
      } 
     } 
}

 

注意:这里其实有一个注意的地方,Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?serverTimezone=UTC","root","");,这里在MySQL8.0及以上要加上这句话:?useSSL=false&serverTimezone=UTC ,如果不添加,程序会报错。上面的代码已添加上了。

 

第五步:查看测试结果:

以上是关于windows下C API连接mysql问题 满意加高分 急急!!的主要内容,如果未能解决你的问题,请参考以下文章

Windows下Qt连接MySql数据库

C语言连接MySQL

sqlserver在用c语言连接操作的时候,有没有提供类似mysql的API如mysql_quer

用C语言API(常用)操作MySql数据库

用C语言API(常用)操作MySql数据库

爱上C之:API for Mysql