一直以来都是用C++写算法。。。做一个小项目,熟悉面向对象思想,MySql数据库原生API使用以及SQL语句。
环境配置:https://blog.csdn.net/whiskey_wei/article/details/84893062
数据库:test
(这个水印可恶啊)
项目目录:(现在只有一个表,暂时没想好要做什么功能,等想到一些好玩的东西再加吧)
先做一下conn类吧
//conn.h
#pragma once
#include <mysql.h>
class conn
{
public:
conn();
~conn();
static MYSQL* Connect();
static void Close(MYSQL *con);
};
暑假的时候做了一个Java项目,别人都是把连接数据库封装成一个类,我觉得挺好的。
这里把连接数据库和关闭数据库方法设置成静态成员函数,直接conn::Connect调用就行了
//conn.h
#include <mysql.h>
#include <iostream>
#include "conn.h"
MYSQL* conn::Connect() {
MYSQL* con = mysql_init((MYSQL*)0);
char dbuser[30] = "";
char dbpasswd[30] = ""; // 记得这里要改成自己的user和密码
char dbip[30] = "localhost";
char dbname[50] = "test";
int count = 0;
con = mysql_init((MYSQL*)0);
if (con != NULL && mysql_real_connect(con, dbip, dbuser, dbpasswd, dbname, 3306, NULL, 0)) {
printf("connect success!\n");
return con;
}
else {
printf("connect failed!\n");
return nullptr;
}
}
void conn::Close(MYSQL *con) {
mysql_close(con);
}
conn::conn() {
}
conn::~conn() {
}
本来Connect()函数我是把conn当作参数的,但是在外部声明然后调用这个函数的时候抛出了异常,改了之后就没什么问题,不是很理解这个地方。
其实最近在做Go语句的Web项目,用框架以及别人的好的数据库语句简单很多也安全很多,但是多用用原生的API以及SQL语句,多看看源码,受益匪浅。