在java中怎样连接mysql数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中怎样连接mysql数据库相关的知识,希望对你有一定的参考价值。

1. 在开发环境中加载指定数据库的驱动程序。
接下来的实验中,使用数据库mysql,所以需要下载MySQL支持JDBC的驱动程序(mysql-connector-java-5.1.18-bin.jar)。

2. 开发环境是MyEclipse,将下载得到的驱动程序加载进开发环境中。

3. 在Java程序中加载驱动程序。
在Java程序中,通过 “Class.forName(“指定数据库的驱动程序”)” 
方式来加载添加到开发环境中的驱动程序,例如Class.forName(“com.mysql.jdbc.Driver”)。

4. 创建数据连接对象:通过DriverManager类创建数据库连接对象Connection。
DriverManager类作用于Java程序和JDBC驱动程序之间,用于检查所加载的驱动程序是否可以建立连接,然后通过它的getConnection方法,根据数据库的URL、用户名和密码,创建一个JDBC 
Connection 对象。代码如:Connection connection =  DriverManager.getConnection(“连接数据库的URL", "用户名", 
"密码”)。
    其中,URL=协议名+IP地址(域名)+端口+数据库名称;用户名和密码是指登录数据库时所使用的用户名和密码。具体示例创建MySQL的数据库连接代码如下:
              Connection connectMySQL  = 
 DriverManager.geiConnection(“jdbc:mysql://localhost:3306/myuser","root" 
,"root" );

5. 创建Statement对象:Statement 类的主要是用于执行静态 SQL 
语句并返回它所生成结果的对象。
通过Connection 对象的 createStatement()方法可以创建一个Statement对象。例如:Statement statament = 
connection.createStatement(); 具体示例创建Statement对象代码如下:Statement statamentMySQL =connectMySQL.createStatement(); 

6. 调用Statement对象的相关方法执行相对应的 SQL 
语句:通过execuUpdate()方法用来数据的更新,包括插入和删除等操作,例如向staff表中插入一条数据的代码:
statement.excuteUpdate( "INSERT INTO 
staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 321, 
'M', 'china','Personnel','3','3000' ) ") ; 

7. 通过调用Statement对象的executeQuery()方法进行数据的查询,而查询结果会得到 
ResulSet对象,ResulSet表示执行查询数据库后返回的数据的集合,ResulSet对象具有可以指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。如果当next()方法返回null,则表示下一行中没有数据存在。使用示例代码如下:
ResultSet resultSel = 
statement.executeQuery( "select * from staff" );

8. 关闭数据库连接:使用完数据库或者不需要访问数据库时,通过Connection的close() 方法及时关闭数据连接。

参考技术A 很简单:
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection conn = DriverManager.getConnection(url, nam, pass);
自己导入mysql包就行了

怎样在C++中调用MYSQL数据库中的数据

我用的是VC6.0,首先应该是得把C++和数据库建立连接吧。
然后我想在我的C++程序里调用MYSQL数据库中的数据,而且能够实现增加数据,删除数据等功能。。
希望高手稍详细的说明下,我是愿意学的。。谢谢

参考技术A 1、用CAPI连接MySQL数据库有两个步骤:
1)初始化一个连接句柄
2)建立连接
所用到的函数如下:
MYSQL *mysql_init(MYSQL *connection); // 初始化连接句柄
//成功返回MySQL结构指针,失败返回NULL

MYSQL *mysql_real_connect(MYSQL *connection,
const char *server_host,
const char *sql_user_name,
const char *sql_password,
const char *db_name,
unsigned int port_number,
const char *unix_socket_name,
unsigned int flags); //建立连接
//成功返回MySQL结构指针,失败返回NULL
以下是完整实例:

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <mysql/mysql.h>

using namespace std;

void mysql_err_function(MYSQL * connection);

int main()

//freopen("input.txt","r",stdin);

MYSQL * connection;
connection = mysql_init(NULL);

if (!connection)

cout << "mysql_init failed!" << endl;

exit(-1);


if (!mysql_real_connect(connection,"localhost","root","123456","test",0,NULL,0))

cout << "Connection To MySQL failed!" << endl;
mysql_err_function(connection);


cout << "Connection To MySQL Server is Success..." << endl;

string str;
getline(cin,str);

int res = 0;
int affected_count = 0;
while (str != "close" && str != "" && !res)

res = mysql_query(connection,str.c_str());

affected_count += mysql_affected_rows(connection);

if (res)

if (mysql_errno(connection))

cout << "Error " << mysql_errno(connection) << " : "
<< mysql_error(connection) << '\n' << endl;
break;


getline(cin,str);


cout << "Have affected " << affected_count << " rows!" << endl;

mysql_close(connection);
cout << "Connection To MySQL Server is closed..." << endl;

return 0;


void mysql_err_function(MYSQL * connection)

if (mysql_errno(connection))

cout << "Error " << mysql_errno(connection) << " : "
<< mysql_error(connection) << endl;

exit(-1);

参考技术B 建立一个空的控制台程序,建立一个cpp文件,在其中加入如下代码。代码部分:

Cpp代码
#include<winsock2.h>
//定义socket
#include<iostream>
#include"mysql.h"
//#pragma comment( lib, "libmysql.lib");
//此句话和在附加依赖项中增加libmysql.lib 的功能一样

usingnamespace std;
int main(char **args)

MYSQL mysql;
mysql_init(&mysql);
if (mysql_real_connect(&mysql,"localhost","root","","test",3306,0,0))

cout<<"ok"<<endl;
return 0;

else

int i = mysql_errno(&mysql);
constchar * s = mysql_error(&mysql);
cout << s<<endl;



#include<winsock2.h>
//定义socket
#include<iostream>
#include"mysql.h"
//#pragma comment( lib, "libmysql.lib");
//此句话和在附加依赖项中增加libmysql.lib 的功能一样

usingnamespace std;
int main(char **args)

MYSQL mysql;
mysql_init(&mysql);
if (mysql_real_connect(&mysql,"localhost","root","","test",3306,0,0))

cout<<"ok"<<endl;
return 0;

else

int i = mysql_errno(&mysql);
constchar * s = mysql_error(&mysql);
cout << s<<endl;

相关设置:
1、附加包含头文件的目录,include就是mysql-5.0.27-win32\Include文件夹。
2、附加库目录,MySql lib中的文件就是mysql-5.0.27-win32\lib\opt中的文件
3、附加依赖项,名称为libmysql.lib
4、将libmysql.dll拷贝到debug文件夹中,libmysql.dll在lib文件夹中有本回答被提问者采纳
参考技术C include "mysql.h"

然后调用mysql API库

以上是关于在java中怎样连接mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

怎样在java中查询mysql得到如下的json格式的结果

jsp怎样用jdbc连接mysql数据库

grails怎样连接mysql数据库

java求高手,怎样随时监测数据库中数据的增删改查?

esclipse连接mysql数据库

使用Java代码连接MySQL8.0数据库,在添加日期时,数据库里的日期少一天该怎样解决