How to Connect a database in MySQL with a c++ application in Windows
Download Mysql from
https://dev.mysql.com/downloads/installer/
And the connector library from
https://dev.mysql.com/downloads/connector/cpp/
Unzip the file
https://cdn.mysql.com//Downloads/Connector-C++/mysql-connector-c++-8.3.0-winx64.zip
Create a C++ empty project in Visual Studio.
Right-click over the name of the project, ->Add -> New Item -> C++ File. Rename the file as main.cpp
One important thing is to create a database. For that, you can open a command prompt, type the next command:
MySQL -u root -p
Enter password: the one you used when install MySQL
Then use the command:
create database quickstartdb
Copy and paste the next code:
<stdlib.h>
#include <iostream>
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/prepared_statement.h>
using namespace std;
//for demonstration only. never save your password in the code!
const string server = "localhost";
const string username = "root";
const string password = "yourownpassword";
int main()
{
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::PreparedStatement *pstmt;
try
{
driver = get_driver_instance();
con = driver->connect(server, username, password);
}
catch (sql::SQLException e)
{
cout << "Could not connect to server. Error message: " << e.what() << endl;
system("pause");
exit(1);
}
//please create database "quickstartdb" ahead of time
con->setSchema("quickstartdb");
stmt = con->createStatement();
stmt->execute("DROP TABLE IF EXISTS inventory");
cout << "Finished dropping table (if existed)" << endl;
stmt->execute("CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);");
cout << "Finished creating table" << endl;
delete stmt;
pstmt = con->prepareStatement("INSERT INTO inventory(name, quantity) VALUES(?,?)");
pstmt->setString(1, "banana");
pstmt->setInt(2, 150);
pstmt->execute();
cout << "One row inserted." << endl;
pstmt->setString(1, "orange");
pstmt->setInt(2, 154);
pstmt->execute();
cout << "One row inserted." << endl;
pstmt->setString(1, "apple");
pstmt->setInt(2, 100);
pstmt->execute();
cout << "One row inserted." << endl;
delete pstmt;
delete con;
system("pause");
return 0;
}
I leave the video from where I took the code.
Change debug to release in solution configuration.
Go to Project-> NameofProject Properties. Change Configuration to Release. Follow the next configuration steps in:
https://www.youtube.com/watch?v=a_W4zt5sR1M&t=2s
And this link for the database creation, And another option for connection processes:
https://www.youtube.com/watch?v=B8fdzMTnOLc
MySQL - Java Installation process
I will share links that I used in the process:
This one is the forts one:
https://www.ionos.com/digitalguide/server/tools/xampp-tutorial-create-your-own-local-test-server/
Then the two for the antivirus and UAC disable:
https://www.process.st/how-to/disable-microsoft-defender-antivirus-service/
https://portal.microfocus.com/s/article/KM000020477?language=en_US
You will find some error, I encounter some and these videos helped me:
https://www.youtube.com/watch?v=faxAeJybrBw
https://www.youtube.com/watch?v=o56L2He3YbA
This video shows how to manage a MySQL database from intellij but does not show how to use java
This one gives the connection using Apache Net Beans, Java and MySQL
https://www.youtube.com/watch?v=zerYyyJ9CRs
These series of youtube videos teach JDBC concepts
https://www.youtube.com/playlist?list=PLhs1urmduZ2-yp3zID5rMEmXDETN8xvMo
Here is the code I generated following the last tutorial:
https://github.com/ivonneleonor/JavaSqlConnection