Skip to content

Commit dca3ee0

Browse files
author
zhengshuxin
committed
Optimize and test mysql module.
1 parent 893c041 commit dca3ee0

File tree

13 files changed

+229
-248
lines changed

13 files changed

+229
-248
lines changed

lib_acl_cpp/include/acl_cpp/db/db_mysql.hpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ class ACL_CPP_API db_mysql : public db_handle {
5656
* 或出错时内部自动关闭了 mysql 连接
5757
* @return {void*} 类型同 MYSQL*
5858
*/
59-
void* get_conn(void) const
60-
{
59+
void* get_conn(void) const {
6160
return conn_;
6261
}
6362

@@ -142,23 +141,26 @@ class ACL_CPP_API db_mysql : public db_handle {
142141
bool rollback(void);
143142

144143
private:
145-
char* dbaddr_; // 数据库监听地址
146-
char* dbname_; // 数据库名
147-
char* dbuser_; // 数据库账号
148-
char* dbpass_; // 数据库账号密码
144+
std::string dbaddr_; // 数据库监听地址
145+
std::string dbname_; // 数据库名
146+
std::string dbuser_; // 数据库账号
147+
std::string dbpass_; // 数据库账号密码
149148
string charset_; // 连接数据库采用的字符集
150149

150+
std::string sslcrt_;
151+
std::string sslkey_;
152+
std::string sslca_;
153+
std::string sslcapath_;
154+
std::string sslcipher_;
155+
151156
unsigned long dbflags_;
152157
int conn_timeout_;
153158
int rw_timeout_;
154159
bool auto_commit_;
155160
void* conn_; // MYSQL 对象指针
156161

157162
bool sane_mysql_query(const char* sql);
158-
void sane_mysql_init(const char* dbaddr, const char* dbname,
159-
const char* dbuser, const char* dbpass,
160-
unsigned long dbflags, bool auto_commit,
161-
int conn_timeout, int rw_timeout, const char* charset);
163+
void sane_mysql_init(const mysql_conf& conf);
162164
};
163165

164166
} // namespace acl

lib_acl_cpp/include/acl_cpp/db/db_pool.hpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,26 +36,23 @@ class ACL_CPP_API db_pool : public connect_pool
3636
* 获得当前数据库连接池的最大连接数限制
3737
* @return {size_t}
3838
*/
39-
size_t get_dblimit() const
40-
{
39+
size_t get_dblimit() const {
4140
return get_max();
4241
}
4342

4443
/**
4544
* 获得当前数据库连接池当前的连接数
4645
* @return {size_t}
4746
*/
48-
size_t get_dbcount() const
49-
{
47+
size_t get_dbcount() const {
5048
return get_count();
5149
}
5250

5351
/**
5452
* 设置数据库连接池中空闲连接的生存周期(秒)
5553
* @param ttl {int} 生存周期(秒)
5654
*/
57-
void set_idle(int ttl)
58-
{
55+
void set_idle(int ttl) {
5956
set_idle_ttl(ttl);
6057
}
6158
};

lib_acl_cpp/include/acl_cpp/db/db_sqlite.hpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ class ACL_CPP_API db_sqlite : public db_handle {
7272
* 或出错时内部自动关闭了 sqlite
7373
* @return {sqlite3*}
7474
*/
75-
sqlite3* get_conn(void) const
76-
{
75+
sqlite3* get_conn(void) const {
7776
return db_;
7877
}
7978

lib_acl_cpp/include/acl_cpp/db/mysql_conf.hpp

Lines changed: 42 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#pragma once
22
#include "../acl_cpp_define.hpp"
3+
#include <string>
34

45
#if !defined(ACL_CLIENT_ONLY) && !defined(ACL_DB_DISABLE)
56

@@ -80,73 +81,69 @@ class ACL_CPP_API mysql_conf {
8081
*/
8182
mysql_conf& set_charset(const char* charset);
8283

83-
const char* get_dbaddr() const
84-
{
85-
return dbaddr_;
84+
const char* get_dbaddr() const {
85+
return dbaddr.c_str();
8686
}
8787

88-
const char* get_dbname() const
89-
{
90-
return dbname_;
88+
const char* get_dbname() const {
89+
return dbname.c_str();
9190
}
9291

93-
const char* get_dbkey() const
94-
{
95-
return dbkey_;
92+
const char* get_dbkey() const {
93+
return dbkey.c_str();
9694
}
9795

98-
const char* get_dbuser() const
99-
{
100-
return dbuser_;
96+
const char* get_dbuser() const {
97+
return dbuser.c_str();
10198
}
10299

103-
const char* get_dbpass() const
104-
{
105-
return dbpass_;
100+
const char* get_dbpass() const {
101+
return dbpass.c_str();
106102
}
107103

108-
size_t get_dblimit() const
109-
{
110-
return dblimit_;
104+
size_t get_dblimit() const {
105+
return dblimit;
111106
}
112107

113-
unsigned long get_dbflags() const
114-
{
115-
return dbflags_;
108+
unsigned long get_dbflags() const {
109+
return dbflags;
116110
}
117111

118-
bool get_auto_commit() const
119-
{
120-
return auto_commit_;
112+
bool get_auto_commit() const {
113+
return auto_commit;
121114
}
122115

123-
int get_conn_timeout() const
124-
{
125-
return conn_timeout_;
116+
int get_conn_timeout() const {
117+
return conn_timeout;
126118
}
127119

128-
int get_rw_timeout() const
129-
{
130-
return rw_timeout_;
120+
int get_rw_timeout() const {
121+
return rw_timeout;
131122
}
132123

133-
const char* get_charset() const
134-
{
135-
return charset_;
124+
const char* get_charset() const {
125+
return charset.c_str();
136126
}
137127

138-
private:
139-
char* dbaddr_; // 数据库监听地址
140-
char* dbname_; // 数据库名
141-
char* dbkey_; // dbname@dbaddr
142-
char* dbuser_; // 数据库账号
143-
char* dbpass_; // 数据库账号密码
144-
char* charset_; // 连接数据库时的字符集
145-
size_t dblimit_; // 数据库连接池连接数上限
146-
unsigned long dbflags_; // 打开数据库时的标志位
147-
bool auto_commit_; // 是否自动提交修改后的数据
148-
int conn_timeout_; // 连接数据库的超时时间
149-
int rw_timeout_; // 与数据库通信的超时时间
128+
//////////////////////////////////////////////////////////////////////
129+
130+
std::string dbaddr; // 数据库监听地址
131+
std::string dbname; // 数据库名
132+
std::string dbkey; // dbname@dbaddr
133+
std::string dbuser; // 数据库账号
134+
std::string dbpass; // 数据库账号密码
135+
std::string charset; // 连接数据库时的字符集
136+
size_t dblimit; // 数据库连接池连接数上限
137+
unsigned long dbflags; // 打开数据库时的标志位
138+
bool auto_commit; // 是否自动提交修改后的数据
139+
int conn_timeout; // 连接数据库的超时时间
140+
int rw_timeout; // 与数据库通信的超时时间
141+
142+
std::string sslcrt;
143+
std::string sslkey;
144+
std::string sslca;
145+
std::string sslcapath;
146+
std::string sslcipher;
150147
};
151148

152149
} // namespace acl

lib_acl_cpp/include/acl_cpp/db/pgsql_conf.hpp

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -71,48 +71,39 @@ class ACL_CPP_API pgsql_conf
7171
*/
7272
pgsql_conf& set_charset(const char* charset);
7373

74-
const char* get_dbaddr() const
75-
{
74+
const char* get_dbaddr() const {
7675
return dbaddr_;
7776
}
7877

79-
const char* get_dbname() const
80-
{
78+
const char* get_dbname() const {
8179
return dbname_;
8280
}
8381

84-
const char* get_dbkey() const
85-
{
82+
const char* get_dbkey() const {
8683
return dbkey_;
8784
}
8885

89-
const char* get_dbuser() const
90-
{
86+
const char* get_dbuser() const {
9187
return dbuser_;
9288
}
9389

94-
const char* get_dbpass() const
95-
{
90+
const char* get_dbpass() const {
9691
return dbpass_;
9792
}
9893

99-
size_t get_dblimit() const
100-
{
94+
size_t get_dblimit() const {
10195
return dblimit_;
10296
}
10397

104-
int get_conn_timeout() const
105-
{
98+
int get_conn_timeout() const {
10699
return conn_timeout_;
107100
}
108101

109-
int get_rw_timeout() const
110-
{
102+
int get_rw_timeout() const {
111103
return rw_timeout_;
112104
}
113105

114-
const char* get_charset() const
115-
{
106+
const char* get_charset() const {
116107
return charset_;
117108
}
118109

lib_acl_cpp/include/acl_cpp/db/query.hpp

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,7 @@ class ACL_CPP_API query : public noncopyable
160160
const char* fmt = "%Y-%m-%d %H:%M:%S");
161161

162162
private:
163-
typedef enum
164-
{
163+
typedef enum {
165164
DB_PARAM_CHAR,
166165
DB_PARAM_SHORT,
167166
DB_PARAM_INT32,
@@ -171,13 +170,11 @@ class ACL_CPP_API query : public noncopyable
171170
DB_PARAM_STR
172171
} db_param_type;
173172

174-
struct query_param
175-
{
173+
struct query_param {
176174
char type;
177175
int dlen;
178176
int precision;
179-
union
180-
{
177+
union {
181178
char c;
182179
short s;
183180
int n;

lib_acl_cpp/include/acl_cpp/db/sqlite_cursor.hpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,15 @@ class sqlite_cursor : public db_cursor
2828
* 获得查询 SQL 语句
2929
* @return {const string&}
3030
*/
31-
const string& get_sql(void) const
32-
{
31+
const string& get_sql(void) const {
3332
return sql_;
3433
}
3534

3635
/**
3736
* 在遍历查询结构集时,每次查询后可通过本方法获得结果行
3837
* @return {db_row*}
3938
*/
40-
db_row* get_row(void) const
41-
{
39+
db_row* get_row(void) const {
4240
return row_;
4341
}
4442

lib_acl_cpp/include/acl_cpp/db/sqlite_manager.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ class ACL_CPP_API sqlite_manager : public connect_manager
3535

3636
private:
3737
// sqlite 数据文件名
38-
char* dbfile_;
39-
char* charset_;
38+
char* dbfile_;
39+
char* charset_;
4040
size_t dblimit_;
4141
};
4242

lib_acl_cpp/include/acl_cpp/stream/sslbase_conf.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class ACL_CPP_API sslbase_conf : public noncopyable {
9090
* 加载 CA 根证书(每个配置实例只需调用一次本方法)
9191
* @param ca_file {const char*} CA 证书文件全路径
9292
* @param ca_path {const char*} 多个 CA 证书文件所在目录
93-
* @return {bool} 加载 CA 根证书是否成功
93+
* @return {bool} 加载 CA 根证书是否成功
9494
* 注:如果 ca_file、ca_path 均非空,则会依次加载所有证书
9595
*/
9696
virtual bool load_ca(const char* ca_file, const char* ca_path) {

lib_acl_cpp/samples/db/mysql_query/main.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,16 @@ int main(void)
347347

348348
//////////////////////////////////////////////////////////////////////
349349

350-
acl::db_mysql db(dbaddr, dbname, dbuser, dbpass, 0, false);
350+
acl::mysql_conf conf(dbaddr, dbname);
351+
conf.dbuser = dbuser.c_str();
352+
conf.dbpass = dbpass.c_str();
353+
//conf.sslcrt = "/opt/soft/mysql-8.4.7/data/client-cert.pem";
354+
//conf.sslkey = "/opt/soft/mysql-8.4.7/data/client-key.pem";
355+
//conf.sslca = "/opt/soft/mysql-8.4.7/data/ca.pem";
356+
357+
//acl::db_mysql db(dbaddr, dbname, dbuser, dbpass, 0, false);
358+
acl::db_mysql db(conf);
359+
351360
int max = 100;
352361

353362
// 先打开数据库连接

0 commit comments

Comments
 (0)