|
3 | 3 | #include "jdbc/mysql_connection.h"
|
4 | 4 | #include "jdbc/mysql_driver.h"
|
5 | 5 | #include "json/json.h"
|
6 |
| -//relate to chat |
7 |
| -void sql_delete_operation(std::string sender, std::string receiver) |
8 |
| -{ |
9 |
| - std::vector<std::string> usernamelist; |
10 |
| - sql::mysql::MySQL_Driver *driver; |
11 |
| - driver = sql::mysql::get_mysql_driver_instance(); |
12 |
| - sql::Connection *con; |
13 |
| - con = driver->connect("tcp://8.130.48.157:3306", "root", "abc.123"); |
14 |
| - con->setSchema("flypen"); |
15 |
| - std::string readdata = "SELECT friends FROM users WHERE username = ?"; |
16 |
| - std::string Sfriendlist, Rfriendlist; |
17 |
| - std::string changedata = "UPDATE users SET friends=? WHERE username =?"; |
18 |
| - sql::PreparedStatement *readdatament = con->prepareStatement(readdata); |
19 |
| - readdatament->setString(1, sender); |
20 |
| - sql::ResultSet *SresultSet = readdatament->executeQuery(); |
21 |
| - if (SresultSet->next()) |
| 6 | +// relate to chat |
| 7 | +void process(sql::PreparedStatement *readdatament ,std::vector<std::string> s,sql::Connection *con){ |
| 8 | + for(int i=0;i<2;i++){ |
| 9 | + readdatament->setString(1, s[i]); |
| 10 | + sql::ResultSet *resultSet = readdatament->executeQuery(); |
| 11 | + std::string friendlist; |
| 12 | + if (resultSet->next()) |
22 | 13 | {
|
23 |
| - Sfriendlist = SresultSet->getString("friends"); |
| 14 | + friendlist = resultSet->getString("friends"); |
24 | 15 | }
|
25 |
| - int pos = Sfriendlist.find(receiver); |
| 16 | + int pos = friendlist.find(s[i+1]); |
26 | 17 | if (pos != std::string::npos && pos != 0)
|
27 |
| - Sfriendlist.erase(pos - 1, receiver.length() + 1); |
| 18 | + friendlist.erase(pos - 1, s[i+1].length() + 1); |
28 | 19 | else if (pos == 0)
|
29 |
| - Sfriendlist.erase(pos, receiver.length() + 1); |
30 |
| - std::cout << Sfriendlist << "\n"; |
| 20 | + friendlist.erase(pos, s[i+1].length() + 1); |
| 21 | + std::string changedata = "UPDATE users SET friends=? WHERE username =?"; |
31 | 22 | sql::PreparedStatement *updateStatement = con->prepareStatement(changedata);
|
32 |
| - updateStatement->setString(1, Sfriendlist); |
33 |
| - updateStatement->setString(2, sender); |
| 23 | + updateStatement->setString(1, friendlist); |
| 24 | + updateStatement->setString(2, s[i]); |
34 | 25 | updateStatement->execute();
|
35 |
| - readdatament->setString(1, receiver); |
36 |
| - sql::ResultSet *RresultSet = readdatament->executeQuery(); |
37 |
| - if (RresultSet->next()) |
38 |
| - { |
39 |
| - Rfriendlist = RresultSet->getString("friends"); |
40 | 26 | }
|
41 |
| - pos = Rfriendlist.find(sender); |
42 |
| - if (pos != std::string::npos && pos != 0) |
43 |
| - Rfriendlist.erase(pos - 1, sender.length() + 1); |
44 |
| - else if (pos == 0) |
45 |
| - Rfriendlist.erase(pos, sender.length() + 1); |
46 |
| - std::cout << Rfriendlist << "\n"; |
47 |
| - updateStatement->setString(1, Rfriendlist); |
48 |
| - updateStatement->setString(2, receiver); |
49 |
| - updateStatement->execute(); |
| 27 | +} |
| 28 | +void sql_delete_operation(std::string sender, std::string receiver) |
| 29 | +{ |
| 30 | + sql::mysql::MySQL_Driver *driver = sql::mysql::get_mysql_driver_instance(); |
| 31 | + sql::Connection *con = driver->connect("tcp://8.130.48.157:3306", "root", "abc.123"); |
| 32 | + con->setSchema("flypen"); |
| 33 | + std::vector<std::string> s; |
| 34 | + s.push_back(sender); |
| 35 | + s.push_back(receiver); |
| 36 | + std::string readdata = "SELECT friends FROM users WHERE username = ?"; |
| 37 | + |
| 38 | + sql::PreparedStatement *readdatament = con->prepareStatement(readdata); |
| 39 | + process(readdatament ,s,con); |
50 | 40 | }
|
51 | 41 | void sql_process_request(std::string sender, std::string receiver, std::string attitude)
|
52 | 42 | {
|
53 | 43 | std::vector<std::string> usernamelist;
|
54 | 44 | sql::mysql::MySQL_Driver *driver = sql::mysql::get_mysql_driver_instance();
|
55 | 45 | sql::Connection *con = driver->connect("tcp://8.130.48.157:3306", "root", "abc.123");
|
56 |
| - |
57 | 46 | con->setSchema("flypen");
|
58 | 47 |
|
59 | 48 | std::string readData = "SELECT req FROM users WHERE username = ?";
|
60 | 49 | sql::PreparedStatement *readDatament = con->prepareStatement(readData);
|
61 | 50 | readDatament->setString(1, receiver);
|
62 | 51 | sql::ResultSet *resultSet = readDatament->executeQuery();
|
63 |
| - |
64 | 52 | std::string req;
|
65 | 53 | if (resultSet->next())
|
66 | 54 | req = resultSet->getString("req");
|
67 |
| - |
68 | 55 | size_t pos = req.find(sender);
|
69 |
| - |
70 | 56 | if (pos != std::string::npos && pos != 0)
|
71 | 57 | req.erase(pos - 1, sender.length() + 1);
|
72 | 58 | else if (pos == 0)
|
73 | 59 | req.erase(pos, sender.length() + 1);
|
74 |
| - |
75 | 60 | std::string updateQuery = "UPDATE users SET req = ? WHERE username = ?";
|
76 | 61 | sql::PreparedStatement *updateStatement = con->prepareStatement(updateQuery);
|
77 | 62 |
|
@@ -219,7 +204,7 @@ void sql_addhistory(std::string sender, std::string receiver, std::string messag
|
219 | 204 | std::cerr << "SQL Exception: " << e.what() << std::endl;
|
220 | 205 | }
|
221 | 206 | }
|
222 |
| -//relate to user |
| 207 | +// relate to user |
223 | 208 | void sql_add(std::string username, std::string passwd, int avatar)
|
224 | 209 | {
|
225 | 210 | try
|
|
0 commit comments