SQLLib_Diagram
2016-06-28 14:34:17 0 举报
SQLLib_Diagram是一个用于创建和管理数据库结构的图形工具。它可以帮助用户可视化数据库的表、字段、关系和约束,并提供了丰富的功能来设计和优化数据库架构。通过使用SQLLib_Diagram,用户可以快速创建新的表和字段,定义主键和外键关系,设置索引和触发器等。此外,它还支持多种数据库管理系统,如MySQL、Oracle和SQL Server等,使用户能够在不同的平台上进行数据库设计。总之,SQLLib_Diagram是一个功能强大且易于使用的数据库设计工具,可以帮助用户提高数据库的设计效率和质量。
作者其他创作
大纲/内容
被继承
SQLDBSession
int _error;
1.每个线程的thread_data内部都维护一个db名称与对应session的map供该线程中各service class内部访问db使用,初始化各service class实例时调用fetch_db_session,根据core_work_db名称找到本线程thread_data实例内部维护的对应session如果还没有,则通过SQLDBManager::make_session创建10.每个新的session_db_session对象要进行set_mysql_read_write_timeout,然后加入session_这个map
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;
被包含
3.make_session内部调用make_builder(传入dsn文件内容:mysql://user@pwd)创建一个session builder然后使用它的make_session创建真正的SQLSession实例
3.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_;
每一个sql_db_session对象的核心是它里面的SQLDBSession对象它只是一个供外部service class操作的wrapper
8.父类的make_session里面调用子类make_session_internal拿到新的MySQLsession实例后调用其get_ready函数
4.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_;
9.get_ready()中,通过先后执行mysql_next_result和mysql_ping先清空链接上遗留的query结果,再ping一下测试链接是否还有效如果ping失败则调用reconnect重试链接
SQLDBSessionBuilder
被包含4.在table被创建时,被填充
SQLPrimaryKey
vector keys_;
2.为prodlib.conf每行,调用create_table,传入参数,创建SQLTable实实例,并与table名字对应放入table_
5.父类的make_session里面调用子类的make_session_internal
11.sql_db_session的set_mysql_read_write_timeout函数内部,执行MySQLSession的set_mysql_read_write_timeout,然后reconnect
1.通过REGISTER_SQL_TABLE宏调用register_table,将table类型与该类型create函数对应放入table_map_
6.make_session_internal会new一个MySQLDBSession实例构造函数中会init内部MYSQL变量和multi_sqls这个vector并调用reconnect
2.通过SQLDBManager::make_session创建每个db名称(core_work_db)对应的session链接,不可重复(传入dsn文件内容:mysql://user@pwd)
0 条评论
下一页
为你推荐
查看更多