提交 a1252972 编写于 作者: W wuyongning

modify interface para name and doc format

Signed-off-by: Nwuyongning <wuyongning@huawei.com>
上级 af976de9
...@@ -1064,7 +1064,7 @@ predicates.notIn("NAME", ["Lisa", "Rose"]) ...@@ -1064,7 +1064,7 @@ predicates.notIn("NAME", ["Lisa", "Rose"])
### insert ### insert
insert(name: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void insert(table: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;):void
向目标表中插入一行数据,结果以callback形式返回。 向目标表中插入一行数据,结果以callback形式返回。
...@@ -1073,7 +1073,7 @@ insert(name: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt; ...@@ -1073,7 +1073,7 @@ insert(name: string, values: ValuesBucket, callback: AsyncCallback&lt;number&gt;
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| name | string | 是 | 指定的目标表名。 | | table | string | 是 | 指定的目标表名。 |
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | | values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 | | callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。如果操作成功,返回行ID;否则返回-1。 |
...@@ -1097,7 +1097,7 @@ rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) { ...@@ -1097,7 +1097,7 @@ rdbStore.insert("EMPLOYEE", valueBucket, function (err, ret) {
### insert ### insert
insert(name: string, values: ValuesBucket):Promise&lt;number&gt; insert(table: string, values: ValuesBucket):Promise&lt;number&gt;
向目标表中插入一行数据,结果以Promise形式返回。 向目标表中插入一行数据,结果以Promise形式返回。
...@@ -1106,7 +1106,7 @@ insert(name: string, values: ValuesBucket):Promise&lt;number&gt; ...@@ -1106,7 +1106,7 @@ insert(name: string, values: ValuesBucket):Promise&lt;number&gt;
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| name | string | 是 | 指定的目标表名。 | | table | string | 是 | 指定的目标表名。 |
| values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 | | values | [ValuesBucket](#valuesbucket) | 是 | 表示要插入到表中的数据行。 |
**返回值** **返回值**
...@@ -1133,7 +1133,7 @@ promise.then(async (ret) => { ...@@ -1133,7 +1133,7 @@ promise.then(async (ret) => {
### update ### update
update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void update(values: ValuesBucket, predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。 根据RdbPredicates的指定实例对象更新数据库中的数据,结果以callback形式返回。
...@@ -1142,8 +1142,8 @@ update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallba ...@@ -1142,8 +1142,8 @@ update(values: ValuesBucket, rdbPredicates: RdbPredicates, callback: AsyncCallba
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| values | [ValuesBucket](#valuesbucket) | 是 | value指示数据库中要更新的数据行。键值对与数据库表的列名相关联 | | values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示要插入到表中的数据行。 | | predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 | | callback | AsyncCallback&lt;number&gt; | 是 | 指定的callback回调方法。返回受影响的行数。 |
**示例:** **示例:**
...@@ -1168,7 +1168,7 @@ rdbStore.update(valueBucket, predicates, function (err, ret) { ...@@ -1168,7 +1168,7 @@ rdbStore.update(valueBucket, predicates, function (err, ret) {
### update ### update
update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise&lt;number&gt; update(values: ValuesBucket, predicates: RdbPredicates):Promise&lt;number&gt;
根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。 根据RdbPredicates的指定实例对象更新数据库中的数据,结果以Promise形式返回。
...@@ -1177,8 +1177,8 @@ update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise&lt;number&gt; ...@@ -1177,8 +1177,8 @@ update(values: ValuesBucket, rdbPredicates: RdbPredicates):Promise&lt;number&gt;
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| values | [ValuesBucket](#valuesbucket) | 是 | value指示数据库中要更新的数据行。键值对与数据库表的列名相关联 | | values | [ValuesBucket](#valuesbucket) | 是 | values指示数据库中要更新的数据行。键值对与数据库表的列名相关联。 |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示要插入到表中的数据行。 | | predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的更新条件。 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -1206,17 +1206,17 @@ promise.then(async (ret) => { ...@@ -1206,17 +1206,17 @@ promise.then(async (ret) => {
### delete ### delete
delete(rdbPredicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void delete(predicates: RdbPredicates, callback: AsyncCallback&lt;number&gt;):void
根据rdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。 根据RdbPredicates的指定实例对象从数据库中删除数据,结果以callback形式返回。
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 | | predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
| callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 | | callback | AsyncCallback&lt;number&gt; | 是 | 指定callback回调函数。返回受影响的行数。 |
**示例:** **示例:**
...@@ -1235,16 +1235,16 @@ rdbStore.delete(predicates, function (err, rows) { ...@@ -1235,16 +1235,16 @@ rdbStore.delete(predicates, function (err, rows) {
### delete ### delete
delete(rdbPredicates: RdbPredicates):Promise&lt;number&gt; delete(predicates: RdbPredicates):Promise&lt;number&gt;
根据rdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。 根据RdbPredicates的指定实例对象从数据库中删除数据,结果以Promise形式返回。
**系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。 **系统能力:** SystemCapability.DistributedDataManager.RelationalStore.Core。
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 | | predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的删除条件。 |
**返回值** **返回值**
| 类型 | 说明 | | 类型 | 说明 |
...@@ -1266,7 +1266,7 @@ promise.then((rows) => { ...@@ -1266,7 +1266,7 @@ promise.then((rows) => {
### query ### query
query(rdbPredicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void query(predicates: RdbPredicates, columns: Array&lt;string&gt;, callback: AsyncCallback&lt;ResultSet&gt;):void
根据指定条件查询数据库中的数据,结果以callback形式返回。 根据指定条件查询数据库中的数据,结果以callback形式返回。
...@@ -1275,7 +1275,7 @@ query(rdbPredicates: RdbPredicates, columns: Array&lt;string&gt;, callback: Asyn ...@@ -1275,7 +1275,7 @@ query(rdbPredicates: RdbPredicates, columns: Array&lt;string&gt;, callback: Asyn
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 | | predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 |
| columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 | | columns | Array&lt;string&gt; | 是 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
| callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 | | callback | AsyncCallback&lt;[ResultSet](js-apis-data-resultset.md)&gt; | 是 | 指定callback回调函数。如果操作成功,则返回ResultSet对象。 |
...@@ -1288,15 +1288,15 @@ rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (e ...@@ -1288,15 +1288,15 @@ rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"], function (e
console.info("Query failed, err: " + err) console.info("Query failed, err: " + err)
return return
} }
console.log("resultSet column names:" + resultSet.columnNames) console.log("ResultSet column names: " + resultSet.columnNames)
console.log("resultSet column count:" + resultSet.columnCount) console.log("ResultSet column count: " + resultSet.columnCount)
}) })
``` ```
### query ### query
query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt; query(predicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;ResultSet&gt;
根据指定条件查询数据库中的数据,结果以Promise形式返回。 根据指定条件查询数据库中的数据,结果以Promise形式返回。
...@@ -1305,7 +1305,7 @@ query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;Re ...@@ -1305,7 +1305,7 @@ query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;Re
**参数:** **参数:**
| 参数名 | 类型 | 必填 | 说明 | | 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| rdbPredicates | [RdbPredicates](#rdbpredicates) | 是 | 表示rdbPredicates的实例对象指定的查询条件。 | | predicates | [RdbPredicates](#rdbpredicates) | 是 | RdbPredicates的实例对象指定的查询条件。 |
| columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 | | columns | Array&lt;string&gt; | 否 | 表示要查询的列。如果值为空,则查询应用于所有列。 |
**返回值** **返回值**
...@@ -1319,8 +1319,8 @@ query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;Re ...@@ -1319,8 +1319,8 @@ query(rdbPredicates: RdbPredicates, columns?: Array&lt;string&gt;):Promise&lt;Re
predicates.equalTo("NAME", "Rose") predicates.equalTo("NAME", "Rose")
let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"]) let promise = rdbStore.query(predicates, ["ID", "NAME", "AGE", "SALARY", "CODES"])
promise.then((resultSet) => { promise.then((resultSet) => {
console.log("resultSet column names:" + resultSet.columnNames) console.log("ResultSet column names: " + resultSet.columnNames)
console.log("resultSet column count:" + resultSet.columnCount) console.log("ResultSet column count: " + resultSet.columnCount)
}).catch((err) => { }).catch((err) => {
console.info("Query failed, err: " + err) console.info("Query failed, err: " + err)
}) })
...@@ -1349,8 +1349,8 @@ rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ...@@ -1349,8 +1349,8 @@ rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?",
console.info("Query failed, err: " + err) console.info("Query failed, err: " + err)
return return
} }
console.log("resultSet column names:" + resultSet.columnNames) console.log("ResultSet column names: " + resultSet.columnNames)
console.log("resultSet column count:" + resultSet.columnCount) console.log("ResultSet column count: " + resultSet.columnCount)
}) })
``` ```
...@@ -1378,8 +1378,8 @@ querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt ...@@ -1378,8 +1378,8 @@ querySql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;ResultSet&gt
```js ```js
let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo']) let promise = rdbStore.querySql("SELECT * FROM EMPLOYEE CROSS JOIN BOOK WHERE BOOK.NAME = ?", ['sanguo'])
promise.then((resultSet) => { promise.then((resultSet) => {
console.log("resultSet column names:" + resultSet.columnNames) console.log("ResultSet column names: " + resultSet.columnNames)
console.log("resultSet column count:" + resultSet.columnCount) console.log("ResultSet column count: " + resultSet.columnCount)
}).catch((err) => { }).catch((err) => {
console.info("Query failed, err: " + err) console.info("Query failed, err: " + err)
}) })
...@@ -1406,10 +1406,10 @@ executeSql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallbac ...@@ -1406,10 +1406,10 @@ executeSql(sql: string, bindArgs: Array&lt;ValueType&gt;, callback: AsyncCallbac
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)" const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) { rdbStore.executeSql(SQL_CREATE_TABLE, null, function(err) {
if (err) { if (err) {
console.info("executeSql failed, err: " + err) console.info("ExecuteSql failed, err: " + err)
return return
} }
console.info('create table done.') console.info('Create table done.')
}) })
``` ```
...@@ -1438,7 +1438,7 @@ executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt; ...@@ -1438,7 +1438,7 @@ executeSql(sql: string, bindArgs?: Array&lt;ValueType&gt;):Promise&lt;void&gt;
const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)" const SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL, CODES BLOB)"
let promise = rdbStore.executeSql(SQL_CREATE_TABLE) let promise = rdbStore.executeSql(SQL_CREATE_TABLE)
promise.then(() => { promise.then(() => {
console.info('create table done.') console.info('Create table done.')
}).catch((err) => { }).catch((err) => {
console.info("ExecuteSql failed, err: " + err) console.info("ExecuteSql failed, err: " + err)
}) })
...@@ -1552,10 +1552,10 @@ setDistributedTables(tables: Array&lt;string&gt;, callback: AsyncCallback&lt;voi ...@@ -1552,10 +1552,10 @@ setDistributedTables(tables: Array&lt;string&gt;, callback: AsyncCallback&lt;voi
```js ```js
rdbStore.setDistributedTables(["EMPLOYEE"], function (err) { rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
if (err) { if (err) {
console.info('setDistributedTables failed, err: ' + err) console.info('SetDistributedTables failed, err: ' + err)
return return
} }
console.info('setDistributedTables successfully.') console.info('SetDistributedTables successfully.')
}) })
``` ```
...@@ -1582,9 +1582,9 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) { ...@@ -1582,9 +1582,9 @@ rdbStore.setDistributedTables(["EMPLOYEE"], function (err) {
```js ```js
let promise = rdbStore.setDistributedTables(["EMPLOYEE"]) let promise = rdbStore.setDistributedTables(["EMPLOYEE"])
promise.then(() => { promise.then(() => {
console.info("setDistributedTables successfully.") console.info("SetDistributedTables successfully.")
}).catch((err) => { }).catch((err) => {
console.info("setDistributedTables failed, err: " + err) console.info("SetDistributedTables failed, err: " + err)
}) })
``` ```
...@@ -1607,10 +1607,10 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac ...@@ -1607,10 +1607,10 @@ obtainDistributedTableName(device: string, table: string, callback: AsyncCallbac
```js ```js
rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) { rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableName) {
if (err) { if (err) {
console.info('obtainDistributedTableName failed, err: ' + err) console.info('ObtainDistributedTableName failed, err: ' + err)
return return
} }
console.info('obtainDistributedTableName successfully, tableName=.' + tableName) console.info('ObtainDistributedTableName successfully, tableName=' + tableName)
}) })
``` ```
...@@ -1638,9 +1638,9 @@ rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableNa ...@@ -1638,9 +1638,9 @@ rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE", function (err, tableNa
```js ```js
let promise = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE") let promise = rdbStore.obtainDistributedTableName(deviceId, "EMPLOYEE")
promise.then((tableName) => { promise.then((tableName) => {
console.info('obtainDistributedTableName successfully, tableName=' + tableName) console.info('ObtainDistributedTableName successfully, tableName=' + tableName)
}).catch((err) => { }).catch((err) => {
console.info('obtainDistributedTableName failed, err: ' + err) console.info('ObtainDistributedTableName failed, err: ' + err)
}) })
``` ```
...@@ -1665,10 +1665,10 @@ let predicates = new rdb.RdbPredicates('EMPLOYEE') ...@@ -1665,10 +1665,10 @@ let predicates = new rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde']) predicates.inDevices(['12345678abcde'])
rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) { rdbStore.sync(rdb.SyncMode.SYNC_MODE_PUSH, predicates, function (err, result) {
if (err) { if (err) {
console.log('sync failed, err: ' + err) console.log('Sync failed, err: ' + err)
return return
} }
console.log('sync done.') console.log('Sync done.')
for (let i = 0; i < result.length; i++) { for (let i = 0; i < result.length; i++) {
console.log('device=' + result[i][0] + ' status=' + result[i][1]) console.log('device=' + result[i][0] + ' status=' + result[i][1])
} }
...@@ -1702,12 +1702,12 @@ let predicates = new data_rdb.RdbPredicates('EMPLOYEE') ...@@ -1702,12 +1702,12 @@ let predicates = new data_rdb.RdbPredicates('EMPLOYEE')
predicates.inDevices(['12345678abcde']) predicates.inDevices(['12345678abcde'])
let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates) let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicates)
promise.then((result) =>{ promise.then((result) =>{
console.log('sync done.') console.log('Sync done.')
for (let i = 0; i < result.length; i++) { for (let i = 0; i < result.length; i++) {
console.log('device=' + result[i][0] + ' status=' + result[i][1]) console.log('device=' + result[i][0] + ' status=' + result[i][1])
} }
}).catch((err) => { }).catch((err) => {
console.log('sync failed') console.log('Sync failed')
}) })
``` ```
...@@ -1735,9 +1735,9 @@ function storeObserver(devices) { ...@@ -1735,9 +1735,9 @@ function storeObserver(devices) {
} }
} }
try { try {
rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) rdbStore.on('DataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) { } catch (err) {
console.log('register observer failed') console.log('Register observer failed')
} }
``` ```
...@@ -1765,9 +1765,9 @@ function storeObserver(devices) { ...@@ -1765,9 +1765,9 @@ function storeObserver(devices) {
} }
} }
try { try {
rdbStore.off('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) rdbStore.off('DataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver)
} catch (err) { } catch (err) {
console.log('unregister observer failed') console.log('Unregister observer failed')
} }
``` ```
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册