From 1691c1a9a2c7330dc90c450d2c885fbf0fade409 Mon Sep 17 00:00:00 2001 From: wangky <m1561510467@163.com> Date: 星期三, 30 十月 2024 12:32:07 +0800 Subject: [PATCH] 1 --- /dev/null | 91 --------------------------------------------- Server/王琨元/document/数据库模块需求分析.docx | 0 Server/王琨元/document/建表.docx | 0 3 files changed, 0 insertions(+), 91 deletions(-) diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\345\215\225\344\276\213\346\250\241\345\274\217\345\260\201\350\243\205.txt" "b/Server/\347\216\213\347\220\250\345\205\203/document/\345\215\225\344\276\213\346\250\241\345\274\217\345\260\201\350\243\205.txt" deleted file mode 100644 index c07f1df..0000000 --- "a/Server/\347\216\213\347\220\250\345\205\203/document/\345\215\225\344\276\213\346\250\241\345\274\217\345\260\201\350\243\205.txt" +++ /dev/null @@ -1,51 +0,0 @@ -#include <iostream> -#include <memory> -#include <mutex> -#include <string> -#include <mysql_driver.h> -#include <mysql_connection.h> -#include <cppconn/statement.h> -#include <cppconn/resultset.h> - -class DatabaseOperator { -private: - // 绉佹湁鏋勯�犲嚱鏁� - DatabaseOperator() { - try { - driver = sql::mysql::get_mysql_driver_instance(); - connection = driver->connect("tcp://127.0.0.1:3306", "username", "password"); - connection->setSchema("your_database"); - } catch (sql::SQLException &e) { - std::cerr << "鏁版嵁搴撹繛鎺ラ敊璇�: " << e.what() << std::endl; - } - } - - static DatabaseOperator* instance; - static std::mutex mutex; - sql::Driver* driver; - std::unique_ptr<sql::Connection> connection; - -public: - // 鑾峰彇鍗曚緥瀹炰緥 - static DatabaseOperator* getInstance() { - std::lock_guard<std::mutex> lock(mutex); - if (instance == nullptr) { - instance = new DatabaseOperator(); - } - return instance; - } - - // 鎵ц鏌ヨ鎿嶄綔锛堢ず渚嬶級 - sql::ResultSet* query(const std::string& sql) { - try { - std::unique_ptr<sql::Statement> stmt(connection->createStatement()); - return stmt->executeQuery(sql); - } catch (sql::SQLException &e) { - std::cerr << "鏌ヨ閿欒: " << e.what() << std::endl; - } - return nullptr; - } -}; - -std::mutex DatabaseOperator::mutex; -DatabaseOperator* DatabaseOperator::instance = nullptr; \ No newline at end of file diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\345\273\272\350\241\250.docx" "b/Server/\347\216\213\347\220\250\345\205\203/document/\345\273\272\350\241\250.docx" new file mode 100644 index 0000000..b777db4 --- /dev/null +++ "b/Server/\347\216\213\347\220\250\345\205\203/document/\345\273\272\350\241\250.docx" Binary files differ diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223.docx" "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223.docx" deleted file mode 100644 index c7dd41d..0000000 --- "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223.docx" +++ /dev/null Binary files differ diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\346\250\241\345\235\227\351\234\200\346\261\202\345\210\206\346\236\220.docx" "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\346\250\241\345\235\227\351\234\200\346\261\202\345\210\206\346\236\220.docx" index 0a608f6..22d785e 100644 --- "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\346\250\241\345\235\227\351\234\200\346\261\202\345\210\206\346\236\220.docx" +++ "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\346\250\241\345\235\227\351\234\200\346\261\202\345\210\206\346\236\220.docx" Binary files differ diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245.txt" "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245.txt" deleted file mode 100644 index dad6734..0000000 --- "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245.txt" +++ /dev/null @@ -1,16 +0,0 @@ -#include "MySQL.h" -#include <WinSock2.h> -#include <mysql.h> -#include <iostream> -#include <string> -using namespace std; -int main() { - MYSQL mysql; - mysql_init(&mysql);//鍒濆鍖� - //杩炴帴鏁版嵁搴撴湇鍔″櫒鏈嶅姟鍣� IP 鐢ㄦ埛鍚� 瀵嗙爜 鏁版嵁搴撶鍙e彿 - mysql_real_connect(&mysql, "192.168.136.128", "root", "123456", "wang", 3306, NULL, 0); - - string sql="set names gbk"; - mysql_real_query(&mysql, sql.c_str(), sql.size()); - mysql_close(&mysql); - return 0; \ No newline at end of file diff --git "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240\347\261\273.txt" "b/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240\347\261\273.txt" deleted file mode 100644 index 8c82c1a..0000000 --- "a/Server/\347\216\213\347\220\250\345\205\203/document/\346\225\260\346\215\256\345\272\223\350\277\236\346\216\245\346\261\240\347\261\273.txt" +++ /dev/null @@ -1,91 +0,0 @@ -#include <iostream> -#include <list> -#include <mutex> -#include <condition_variable> -#include <mysql_driver.h> -#include <mysql_connection.h> -#include <cppconn/statement.h> -#include <cppconn/resultset.h> - -class SQLConnectionPool { -private: - SQLConnectionPool(int minConns, int maxConns) : - minConnections(minConns), maxConnections(maxConns), currentConnections(0) {} - - static SQLConnectionPool* instance; - static std::mutex mutex; - std::condition_variable cv; - int minConnections; - int maxConnections; - int currentConnections; - std::list<std::unique_ptr<sql::Connection>> connections; - - // 鍒涘缓涓�涓柊鐨勬暟鎹簱杩炴帴 - std::unique_ptr<sql::Connection> createConnection() { - try { - sql::Driver* driver = sql::mysql::get_mysql_driver_instance(); - std::unique_ptr<sql::Connection> conn(driver->connect("tcp://127.0.0.1:3306", "username", "password")); - conn->setSchema("your_database"); - return conn; - } catch (sql::SQLException &e) { - std::cerr << "鍒涘缓杩炴帴閿欒: " << e.what() << std::endl; - return nullptr; - } - } - -public: - // 鑾峰彇鍗曚緥瀹炰緥 - static SQLConnectionPool* getInstance(int minConns, int maxConns) { - std::lock_guard<std::mutex> lock(mutex); - if (instance == nullptr) { - instance = new SQLConnectionPool(minConns, maxConns); - instance->initializePool(); - } - return instance; - } - - // 鍒濆鍖栬繛鎺ユ睜 - void initializePool() { - for (int i = 0; i < minConnections; ++i) { - std::unique_ptr<sql::Connection> conn = createConnection(); - if (conn) { - connections.push_back(std::move(conn)); - currentConnections++; - } - } - } - - // 鑾峰彇鏁版嵁搴撹繛鎺� - std::unique_ptr<sql::Connection> getConnection() { - std::unique_lock<std::mutex> lock(mutex); - while (connections.empty() && currentConnections >= maxConnections) { - cv.wait(lock); - } - - std::unique_ptr<sql::Connection> conn; - if (!connections.empty()) { - conn = std::move(connections.front()); - connections.pop_front(); - } else if (currentConnections < maxConnections) { - conn = createConnection(); - if (conn) { - currentConnections++; - } - } - return conn; - } - - // 褰掕繕鏁版嵁搴撹繛鎺� - void releaseConnection(std::unique_ptr<sql::Connection>& conn) { - std::lock_guard<std::mutex> lock(mutex); - if (currentConnections > minConnections) { - currentConnections--; - } else { - connections.push_back(std::move(conn)); - } - cv.notify_one(); - } -}; - -std::mutex SQLConnectionPool::mutex; -SQLConnectionPool* SQLConnectionPool::instance = nullptr; \ No newline at end of file -- Gitblit v1.8.0