java链接mysql原始方法_C++及Java连接MySQL方法

本文详细介绍了如何使用Java和C++连接MySQL数据库。对于Java,步骤包括下载JDBC驱动,将jar包添加到工程库,以及编写连接和插入数据的示例代码。对于C++,涉及下载C的connector,配置编译环境,添加头文件和库路径,以及展示简单的查询操作。同时,文章提及了解决VS2008测试时遇到的问题。
摘要由CSDN通过智能技术生成

Java连接MySQL

1.下载一个connector的jar包,例如 mysql-connector-java-5.1.7-bin.jar;

2.工程-》属性-》库中:添加外部jar,选择下载的connector的jar包即可;

3.简要连接程序参考:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.List;

import com.mysql.jdbc.PreparedStatement;

public class DataBase {

private static String dbUrl = "jdbc:mysql://localhost:3306/news";

private static String user = "root";

private static String password = "xx";

private static Connection conn = null;

private static PreparedStatement prest = null;

public DataBase(){}

public DataBase(String db,String user,String passwd)

{

this.dbUrl = "jdbc:mysql://localhost:3306/"+db;

this.user = user;

this.password = passwd;

}

public static void insertNews(News news, String table){

conn = null;

try{

Class.forName("com.mysql.jdbc.Driver");

java.sql.DriverManager.registerDriver(new com.mysql.jdbc.Driver());

conn = DriverManager.getConnection(dbUrl,user,password);

prest = null;

String sqll = "insert into "+table+"(id,title,content,ntype,site,url,pubtime,source,author,cgroup)"+"values(?,?,?,?,?,?,?,?,?,?)";

prest = (PreparedStatement)conn.prepareStatement(sqll);

prest.setInt(1, news.id);

prest.setString(2, news.title);

prest.setString(3, news.content);

prest.setString(4, news.ntype);

prest.setString(5, news.site);

prest.setString(6, news.url);

prest.setTimestamp(7, news.pubtime);

prest.setString(8, news.source);

prest.setString(9, news.author);

prest.setString(10, news.cgroup);

prest.executeUpdate();

prest.close();

}

catch (ClassNotFoundException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

} catch (SQLException e) {

// TODO 自动生成 catch 块

e.printStackTrace();

}

}

}

C++连接MySQL

网络上的很多介绍都有问题,这里主要参考 http://www.cnblogs.com/lovebread/archive/2009/11/24/1609936.html

1. 下载C的connector,主要是include和lib文件夹(MySQL connector for C)

2. include目录下的libmysql.lib文件拷到VS2008安装目录中的VC\lib\下,然后在 项目-选项-c/c++-常规 中的附加包含目录以及 链接器-常规 中的附加库目录中加入“……\MySQL\include\”(connector的路径),并且在 链接器-输入 中的附加依赖项内添加“libmysql.lib”,这样即可使编译器找到mysql.h头文件,并可在程序中使用c语言的mysql API来操作数据库。另外还需要在project目录下拷贝上libmysql.dll。

3. 代码

#include

#include

#include"mysql.h"

using namespace std;

int main(char **args)

{

const char user[] = "root";         //username

const char pswd[] = "****";         //password

const char host[] = "localhost";    //or"127.0.0.1"

const char dbname[] = "news";        //database

unsigned int port = 3306;           //server port

MYSQL mysql;

MYSQL_RES *result = NULL;

MYSQL_ROW sql_row;

MYSQL_FIELD *fd;

char column[32][32];

int res;

mysql_init(&mysql);

if (mysql_real_connect(&mysql,host,user,pswd,dbname,port,0,0))

{

cout<

mysql_query(&mysql, "SET NAMES GBK");

res=mysql_query(&mysql,"select * from sy_163_news");

if(!res)

{

result = mysql_store_result(&mysql);

if(result)

{

int i,j;

cout<

for(i=0;fd=mysql_fetch_field(result);i++)//获取列名

{

strcpy(column[i],fd->name);

}

j=mysql_num_fields(result);

for(i=0;i

{

printf("%s\t",column[i]);

}

printf("\n");

while(sql_row=mysql_fetch_row(result))//获取具体的数据

{

for(i=0;i

{

printf("%s\n",sql_row[i]);

}

printf("\n");

}

}

}

return 0;

}

else

{

int i = mysql_errno(&mysql);

const char * s = mysql_error(&mysql);

cout << s<

}

}

关于用VS2008测试出现“MSVCRTD.lib(crtexew.obj) :errorLNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCRTStartup 中被引用”的错误,参考 http://apps.hi.baidu.com/share/detail/18226584 解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值