SQLLib_Diagram
2016-06-28 14:34:17 0 举报
SQLLib_Diagram是一种用于描述和管理数据库结构的图形化工具。它提供了一种直观的方式来展示数据库中的表、字段、关系和约束等元素,并允许用户进行修改和优化。通过使用SQLLib_Diagram,开发人员可以更好地理解和操作数据库,提高开发效率和数据库性能。此外,SQLLib_Diagram还支持多种数据库平台,如MySQL、Oracle和SQL Server等,使用户能够在不同的环境中进行数据库设计和管理工作。总之,SQLLib_Diagram是一个功能强大且易于使用的数据库设计工具,对于任何需要进行数据库开发和管理的人来说都是一个宝贵的资源。
作者其他创作
大纲/内容
被继承
SQLDBSession
int _error;
每个线程的thread_data内部都维护一个db名称与对应session的map供该线程中各service class内部访问db使用
typedef struct{string host;string user;string pass;string charset;u_int port;} stru_conn_info;
SQLTableCollection
SQLDBManager
MySQLDBSession
MYSQL mysql_; string db_name_;stru_conn_infos conn_info_;vector _multi_sqls;
被包含
make_session内部调用make_builder(传入dsn文件内容:mysql://user@pwd)创建一个session builder然后使用它的make_session创建真正的SQLSession实例
create_table中依据要创建的table类型在table_map_中找到对应class的createa函数,创建table实例
MYSQL
- mysql_close()- mysql_init()- mysql_options()- mysql_read_connect()- mysql_next_result()- mysql_ping()
MySQLDBSessionBuilder
typedef vector stru_conn_infos;string db_name_;stru_conn_infos conn_info_;
thread_data
- sql_db_session* fetch_db_session(const ::std::string &db_name);
SQLTable
SQLPrimaryKey *primary_key_;
父类的make_session里面调用子类make_session_internal拿到新的MySQLsession实例后调用其get_ready函数
make_builder根据dsn中协议判断是MySQL数据库,调用MySQL对应子类的make_builder创建MySQL定制化的session builder(其实就是用dsn内容填充new出来的SesBldr的conn_info结构体)
sql_db_session
scoped_ptr session_;datetime current_time_;bool transaction_started_;bool is_ready_;
StringHashTable/SingleDBTable/...
string db_base_name_;string table_base_name_;
get_ready()中,通过先后执行mysql_next_result和mysql_ping先清空链接上遗留的query结果,再ping一下测试链接是否还有效如果ping失败则调用reconnect重试链接
SQLDBSessionBuilder
1.被包含2.在table被创建时,被填充
SQLPrimaryKey
vector keys_;
1.为prodlib.conf每行,调用create_table,传入参数,创建SQLTable实实例,并与table名字对应放入table_
父类的make_session里面调用子类的make_session_internal
通过REGISTER_SQL_TABLE宏调用register_table,将table类型与该类型create函数对应放入table_map_
make_session_internal会new一个MySQLDBSession实例构造函数中会init内部MYSQL变量和multi_sqls这个vector并调用reconnect
初始化各service class实例时调用fetch_db_session,根据core_work_db名称找到本线程thread_data实例内部维护的对应session如果还没有,通过SQLDBManager::make_session创建(传入dsn文件内容:mysql://user@pwd)
0 条评论
下一页
为你推荐
查看更多