以YII、自定义数据操作两种方式组成的数据库微服务的服务端。
客户端介绍
YII控制器
BaseController
所有数据库操作请求的基类,通过获取对应的参数实例化数据库类。提供其他基础操作函数。
初始化数据库代码
// 返回值为JSON
Yii::$app->response->format = Response::FORMAT_JSON;
// 初始化数据库信息
$request = Yii::$app->request;
$dbName = $request->get('_db', $request->post('_db', ''));
$tableName = $request->get('_table', $request->post('_table', ''));
$dbType = $request->get('_type', $request->post('_type', 'mysql'));
$this->initDb($dbName, $tableName, $dbType);
DmlController、DqlController
继承自BaseController,提供自定义的函数操作处理,对应客户端Dg_Db_Hnb类。
insert
/**
* insert 插入数据
* @return JSON
*/
public function actionInsert()
{
// 参数
$request = Yii::$app->request;
$data = $request->post('data', array());
if ( empty($data) || !is_array($data) ) {
return $this->renderJson(ERROR, ERROR_PARAM_DATA_WRONG, '数据参数错误!');
}
// 插入
$response = $this->_dbBase->insert($data);
// 输出
return $response;
}
query
/**
* 查询数据
* @param array $param 查询条件,条件数组或者条件SQL
* @param string $order 排序规则
* @param string $limit 获取条数
* @param string $field 查询的列,默认为*
* @param string $group 分组规则
* @return json 数据列表
*/
public function actionQuery()
{
// 参数
$request = Yii::$app->request;
$param = $request->get('param', '');
$param = $this->formatParam($param);
$order = $request->get('order', false);
$limit = $request->get('limit', false);
$field = $request->get('field', '*');
$group = $request->get('group', false);
// 查询
$response = $this->_dbBase->query($param, $order, $limit, $field, $group);
// 输出
return $response;
}
QueryController
继承自BaseController,提供Yii数据操作处理,对应客户端Dg_Db_Yii类。
/**
* Yii\db\Query命令请求
*/
public function actionIndex()
{
$request = Yii::$app->request;
$_db = $request->get('_db', '');
$_call = $request->get('_call', array());
try {
$results = $this->execute(new \yii\db\Query(), $_call);
return $this->renderJson(SUCCESS, NO_ERROR, $results);
} catch (\Exception $e) {
return $this->renderJson(ERROR, $e->getCode(), $e->getMessage());
}
return $results;
}