在网上找了一些方法,但是没有效果,还有一些方法直接没看懂
。下面是代码,把下面两个中文名“剑”、“盾”改成数字或英文就能正常写入MySQL;
在mysql命令提示符里直接输入INSERT INTO my_table (username,password) VALUES ('剑','123'),('盾','456');这个代码也能正常写入,就是从VS里不能写入
#include <jdbc/cppconn/statement.h>
#include <jdbc/cppconn/resultset.h>
#include <jdbc/cppconn/exception.h>
#include "jdbc/mysql_driver.h"
#include<windows.h>
int main() {
std::string sql1 = "create database testmysql";//sql1用于创建testmysql数据库
std::string sql2 = "use testmysql";//使用数据库
std::string sql3 = "create table my_table (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL)";//创建数据表
std::string sql4 = "INSERT INTO my_table (username,password) VALUES ('剑','123'),('盾','456') ";//插入多条数据
SetConsoleOutputCP(CP_UTF8);
try
{
// 注册MySQL驱动程序
sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();
sql::Connection* con;
sql::Statement* stmt;
sql::ResultSet* res;
//获取数据库连接对象
con = driver->connect("tcp://localhost:3306", "root", "XZZ361121");
//获取执行语句对象
stmt = con->createStatement();
stmt->execute("SET NAMES utf8mb4");
stmt->execute(sql1);
stmt->execute(sql2);
stmt->execute(sql3);
stmt->execute(sql4);
delete stmt;
delete con;
}
catch (sql::SQLException& sqle)
{
std::cout << "错误代码: " << sqle.getErrorCode() << std::endl;
std::cout << "错误信息: " << sqle.what() << std::endl;
std::cout << "数据库连接出错啦,你是不是密码或者用户名写错了?或者你的数据库名称或者表名称写错了?" << std::endl;
}
return 0;
}

在mysql命令提示符里直接输入INSERT INTO my_table (username,password) VALUES ('剑','123'),('盾','456');这个代码也能正常写入,就是从VS里不能写入
#include <jdbc/cppconn/statement.h>
#include <jdbc/cppconn/resultset.h>
#include <jdbc/cppconn/exception.h>
#include "jdbc/mysql_driver.h"
#include<windows.h>
int main() {
std::string sql1 = "create database testmysql";//sql1用于创建testmysql数据库
std::string sql2 = "use testmysql";//使用数据库
std::string sql3 = "create table my_table (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,password VARCHAR(50) NOT NULL)";//创建数据表
std::string sql4 = "INSERT INTO my_table (username,password) VALUES ('剑','123'),('盾','456') ";//插入多条数据
SetConsoleOutputCP(CP_UTF8);
try
{
// 注册MySQL驱动程序
sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();
sql::Connection* con;
sql::Statement* stmt;
sql::ResultSet* res;
//获取数据库连接对象
con = driver->connect("tcp://localhost:3306", "root", "XZZ361121");
//获取执行语句对象
stmt = con->createStatement();
stmt->execute("SET NAMES utf8mb4");
stmt->execute(sql1);
stmt->execute(sql2);
stmt->execute(sql3);
stmt->execute(sql4);
delete stmt;
delete con;
}
catch (sql::SQLException& sqle)
{
std::cout << "错误代码: " << sqle.getErrorCode() << std::endl;
std::cout << "错误信息: " << sqle.what() << std::endl;
std::cout << "数据库连接出错啦,你是不是密码或者用户名写错了?或者你的数据库名称或者表名称写错了?" << std::endl;
}
return 0;
}