BFWSOA多种数据库的连接方式
BFWSOA框架中Model层主要负责对数据库进行持久化,每个model层可以单独连接一个数据库或一张表,相互独立,支持分布式事务处理,读写分离设置
下面我们来演示一下常用的model层连接方式
1、mysql连接方式
$_config_arr['Db']['logicconfig'] = [ "dbtype" => "DbMysql", "dbport" => 3306, "dbuser" => "root", "dbpwd" => "root", "dbname"=>"bfwdbname", "dbhost"=>"127.0.0.1" ];
2、sqllite;连接方式
$_config_arr['Db']['sqlconfig'] = [ "dbtype" => "DbSqlite", "dbuser" => "root", "dbpwd" => "root", "dbname" => "bfwdbname", "dbhost" => DATA_DIR, "createsql" => "CREATE TABLE IF NOT EXISTS bfw_test ( id INTEGER PRIMARY KEY, username TEXT, userpwd TEXT, token TEXT, regtime TEXT)" ];
3、mssql连接方式
$_config_arr['Db']['mssqlconfig'] = [ "dbtype" => "DbMssql", "dbport" => 1433, "dbuser" => "root", "dbpwd" => "test", "dbname" => "dbname", "dbhost" => "127.0.0.1" ];
4、oracle连接方式
$_config_arr['Db']['oracleconfig'] = [ "dbtype" => "DbOracle", "dbport" => 1521, "dbuser" => "test", "dbpwd" => "test", "dbname" => "dbname", "dbhost" => "localhost" ];
分布式事务处理方式
try { $_resarr = array (); $_res1 = Model_Member::getInstance ()->InsertData ( $_data, false, true ); if ($_res1 ['err']) { Model_Member::getInstance ()->RollBack (); Model_Member::getInstance ()->ChangeBack (); return $_res1; } $_data_add ['id'] = $_res1 ['data']; $_resarr [] = Model_Member::getInstance ()->InsertDataAdd ( $_data_add, false, true ); foreach ( $_resarr as $_res ) { if ($_res ['err']) { Model_Member::getInstance ()->RollBack (); Model_Member::getInstance ()->ChangeBack (); Model_Member_add::getInstance()->RollBack(); Model_Member_add::getInstance()->ChangeBack(); return $_res; } } Model_Member::getInstance ()->Commit (); Model_Member::getInstance ()->ChangeBack (); Model_Member_add::getInstance ()->Commit (); Model_Member_add::getInstance ()->ChangeBack (); return $_res1; } catch ( DbException $e ) { Model_Member::getInstance ()->RollBack (); Model_Member::getInstance ()->ChangeBack (); Model_Member_add::getInstance ()->RollBack (); Model_Member_add::getInstance ()->ChangeBack (); return Bfw::RetMsg ( true, $e->getMessage () ); }
网友评论0