zoukankan      html  css  js  c++  java
  • Hbase restFul API

    获取hbase版本

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/version/cluster
    1.2.6

    获取集群状态:

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/status/cluster
    4 live servers, 0 dead servers, 1.0000 average load

    4 live servers
    ..........

    获取hbase非系统表表名列表

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/
    hbase_test
    hbase_yarnlog

    获取hbase所有的命名空间

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/namespaces
    default
    hbase

    某个命名空间下表名

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/namespaces/namespace/tables

    eg:curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/namespaces/default/tables

    hbase_test
    hbase_yarnlog

    获取表结构:

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/schema
    { NAME=> 'hbase_yarnlog', IS_META => 'false', COLUMNS => [ { NAME => 'yarnlog', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true' } ] }

    获取表区域:

    curl -vi -X GET -H "Accept: text/xml"  http://10.8.4.46:20550/hbase_yarnlog/regions
    hbase_yarnlog,,1519360842078.cb06e1f05268947e9598702137918f0e. [
    id=1519360842078
    startKey=''
    endKey=''
    location='108443.server.bigdata.com.cn:60020'
    ]

    获取单个行的所有列,编码格式是 Base-64 encoded,需要再解码

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/table/row

    eg:

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/application_1516606659120_0211
    * About to connect() to 10.8.4.46 port 20550 (#0)
    * Trying 10.8.4.46... connected
    * Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
    > GET /hbase_yarnlog/application_1516606659120_0211 HTTP/1.1
    > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
    > Host: 10.8.4.46:20550
    > Accept: text/xml
    >
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < Content-Type: text/xml
    Content-Type: text/xml
    < Content-Length: 4645
    Content-Length: 4645

    <
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzpkdXJUaW1l" timestamp="1519717201909">NTMwMDA=</Cell><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell><Cell column="eWFybmxvZzppZG1hcA==" timestamp="1519717194545">YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEyIA==</Cell><Cell column="eWFybmxvZzptYXhUaW1l" timestamp="1519717201909">MjAxOC0wMi0wOSAwOTo1Njo0Mw==</Cell><Cell column="eWFybmxvZzptaW5UaW1l" timestamp="1519717201909">MjAxOC0wMi0wOSAwOTo1NTo1MA==</Cell><Cell column="eWFybmxvZzpvb3ppZWFjdGlvbmlk" timestamp="1519717191278">MDAwMDAwOS0xODAyMDgxMjU0MjYyMjEtb296aWUtb296aS1XQHNwYXJr</Cell><Cell column="eWFybmxvZzpvb3ppZWpvYmlk" timestamp="1519717191278">MDAwMDAwOS0xODAyMDgxMjU0MjYyMjEtb296aWUtb296aS1X</Cell><Cell column="eWFybmxvZzpzcGFya3lhcm50YWdz" timestamp="1519717191278">b296aWUtY2Q4ZWE3MmE5YTdmNGFhOGVjMjhjMTRkMzRiNTdhYzA=</Cell><Cell column="eWFybmxvZzp0cmFkZWxvZw==" timestamp="1519717177817">SU5GTzogbG9nIHN0YXJ0OiBJTkZPOiDlvIDlp4vkuqTmmJMgIG9wSGJhc2U6b3BIYmFzZSBJTkZPOiBTdGVwMSBvcEhiYXNlIElORk86IFN0ZXAxX05vZGUxIOW8gOWniyBJTkZPOiBTdGVwMV9Ob2RlMyBTcGFya+WIneWni+WMliBUUkFDRTog5YWl5Y+CMD1fX1JFUV9fIERFQlVHOiDlvIDlp4vov57mjqVzcGFya+mbhue+pC4uLiAgREVCVUc6IEFwcE5hbWUgPSBudWxsIERFQlVHOiBzcGFya+mbhue+pOW3sui/nuaOpeWujOaIkCEgIElORk86IOmAu+i+kei/lOWbnuWAvD0xIFRSQUNFOiDlh7rlj4IwPW9yZy5hcGFjaGUuc3BhcmsuYXBpLmphdmEuSmF2YVNwYXJrQ29udGV4dEA3Y2E3OTU1MCBUUkFDRTog5Ye65Y+CMT1vcmcuYXBhY2hlLnNwYXJrLnNxbC5TcGFya1Nlc3Npb25AMjlmNGMzYzYgSU5GTzogU3RlcDFfTm9kZTQgaW5pdEhiYXNlIFRSQUNFOiDlhaXlj4IwPSIxMDg0NDcuc2VydmVyLmJpZ2RhdGEuY29tLmNuLDEwODQxOS5zZXJ2ZXIuYmlnZGF0YS5jb20uY24sMTA4NDE4LnNlcnZlci5iaWdkYXRhLmNvbS5jbiwxMDg0NDguc2VydmVyLmJpZ2RhdGEuY29tLmNuLDEwODQ3Ny5zZXJ2ZXIuYmlnZGF0YS5jb20uY24iIFRSQUNFOiDlhaXlj4IxPSIyMTgxIiBJTkZPOiDpgLvovpHov5Tlm57lgLw9MSBUUkFDRTog5Ye65Y+CMD1Db25maWd1cmF0aW9uOiBjb3JlLWRlZmF1bHQueG1sLCBjb3JlLXNpdGUueG1sLCB5YXJuLWRlZmF1bHQueG1sLCB5YXJuLXNpdGUueG1sLCBtYXByZWQtZGVmYXVsdC54bWwsIG1hcHJlZC1zaXRlLnhtbCwgaGRmcy1kZWZhdWx0LnhtbCwgaGRmcy1zaXRlLnhtbCwgaGJhc2UtZGVmYXVsdC54bWwsIGhiYXNlLXNpdGUueG1sIElORk86IFN0ZXAxX05vZGU1IHJlYWRIYmFzZSBUUkFDRTog5YWl5Y+CMD1vcmcuYXBhY2hlLnNwYXJrLmFwaS5qYXZhLkphdmFTcGFya0NvbnRleHRAN2NhNzk1NTAgVFJBQ0U6IOWFpeWPgjE9Q29uZmlndXJhdGlvbjogY29yZS1kZWZhdWx0LnhtbCwgY29yZS1zaXRlLnhtbCwgeWFybi1kZWZhdWx0LnhtbCwgeWFybi1zaXRlLnhtbCwgbWFwcmVkLWRlZmF1bHQueG1sLCBtYXByZWQtc2l0ZS54bWwsIGhkZnMtZGVmYXVsdC54bWwsIGhkZnMtc2l0ZS54bWwsIGhiYXNlLWRlZmF1bHQueG1sLCBoYmFzZS1zaXRlLnhtbCBUUkFDRTog5YWl5Y+CMj0iaGJhc2VfdGVzdCIgREVCVUc6IGhiYXNlIHRhYmxlIHJlY29yZHMgbnVtID0gNSBJTkZPOiDpgLvovpHov5Tlm57lgLw9MSBUUkFDRTog5Ye65Y+CMD1NYXBQYXJ0aXRpb25zUkREWzJdIGF0IG1hcCBhdCBQX1NwYXJrLmphdmE6NTc1IElORk86IFN0ZXAxX05vZGU3IGhmaWxlRm9ybWF0IElORk86IOmAu+i+kei/lOWbnuWAvD0xIFRSQUNFOiDlh7rlj4IwPXRjLnRlc3Qub3BIYmFzZS5vcEhiYXNlLkFfb3BIYmFzZSQxQDNjMTRjOGE4IElORk86IFN0ZXAxX05vZGU2IOeUn+aIkEhGaWxlIFRSQUNFOiDlhaXlj4IwPU1hcFBhcnRpdGlvbnNSRERbMl0gYXQgbWFwIGF0IFBfU3BhcmsuamF2YTo1NzUgVFJBQ0U6IOWFpeWPgjE9Q29uZmlndXJhdGlvbjogY29yZS1kZWZhdWx0LnhtbCwgY29yZS1zaXRlLnhtbCwgeWFybi1kZWZhdWx0LnhtbCwgeWFybi1zaXRlLnhtbCwgbWFwcmVkLWRlZmF1bHQueG1sLCBtYXByZWQtc2l0ZS54bWwsIGhkZnMtZGVmYXVsdC54bWwsIGhkZnMtc2l0ZS54bWwsIGhiYXNlLWRlZmF1bHQueG1sLCBoYmFzZS1zaXRlLnhtbCBUUkFDRTog5YWl5Y+CMj0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IzPXRjLnRlc3Qub3BIYmFzZS5vcEhiYXNlLkFfb3BIYmFzZSQxQDNjMTRjOGE4IElORk86IOmAu+i+kei/lOWbnuWAvD0xIDxFUlJPUj5JTkZPOiBTdGVwMV9Ob2RlOCBoRmlsZVRvSGJhc2UgVFJBQ0U6IOWFpeWPgjA9ImhkZnM6Ly8xMC44LjQuNzQ6ODAyMC* Connection #0 to host 10.8.4.46 left intact
    * Closing connection #0
    91c2VyL2x5eS9kYXRhL2hmaWxlIiBUUkFDRTog5YWl5Y+CMT1Db25maWd1cmF0aW9uOiBjb3JlLWRlZmF1bHQueG1sLCBjb3JlLXNpdGUueG1sLCB5YXJuLWRlZmF1bHQueG1sLCB5YXJuLXNpdGUueG1sLCBtYXByZWQtZGVmYXVsdC54bWwsIG1hcHJlZC1zaXRlLnhtbCwgaGRmcy1kZWZhdWx0LnhtbCwgaGRmcy1zaXRlLnhtbCwgaGJhc2UtZGVmYXVsdC54bWwsIGhiYXNlLXNpdGUueG1sIFRSQUNFOiDlhaXlj4IyPSJoYmFzZV90ZXN0IiBJTkZPOiDpgLvovpHov5Tlm57lgLw9MSBJTkZPOiBTdGVwMV9Ob2RlMiDmraPluLjnu5PmnZ8gSU5GTzog57uT5p2f5Lqk5piTIDwvRVJST1I+b3BIYmFzZSBJTkZPOiDohJrmnKzmiafooYzml7bpl7TvvJoxMDQ3NOavq+enkiBJTkZPOiBsb2cgZW5kOgo=</Cell></Row></CellSet>

    获取单个列某个时间戳下的值。 值为Base-64编码。

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg/1519717201909
    * About to connect() to 10.8.4.46 port 20550 (#0)
    * Trying 10.8.4.46... connected
    * Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
    > GET /hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg/1519717201909 HTTP/1.1
    > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
    > Host: 10.8.4.46:20550
    > Accept: text/xml
    >
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < Content-Type: text/xml
    Content-Type: text/xml
    < Content-Length: 745
    Content-Length: 745

    <
    * Connection #0 to host 10.8.4.46 left intact
    * Closing connection #0
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell></Row></CellSet>

    获取单个列的值。 值为Base-64编码。

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg
    * About to connect() to 10.8.4.46 port 20550 (#0)
    * Trying 10.8.4.46... connected
    * Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
    > GET /hbase_yarnlog/application_1516606659120_0211/yarnlog:errmsg HTTP/1.1
    > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
    > Host: 10.8.4.46:20550
    > Accept: text/xml
    >
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < Content-Type: text/xml
    Content-Type: text/xml
    < Content-Length: 745
    Content-Length: 745

    <
    * Connection #0 to host 10.8.4.46 left intact
    * Closing connection #0
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell></Row></CellSet>

    创建scanner 扫描对象,batch="100"即每批次扫描100行,值为Base-64编码

    curl -vi -X PUT -H "Accept: text/xml" -H "Content-Type: text/xml" -d '<Scanner batch="100"/>' http://10.8.4.46:20550/hbase_yarnlog/scanner/
    * About to connect() to 10.8.4.46 port 20550 (#0)
    * Trying 10.8.4.46... connected
    * Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
    > PUT /hbase_yarnlog/scanner/ HTTP/1.1
    > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
    > Host: 10.8.4.46:20550
    > Accept: text/xml
    > Content-Type: text/xml
    > Content-Length: 22
    >
    < HTTP/1.1 201 Created
    HTTP/1.1 201 Created
    < Location: http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12
    Location: http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12
    < Content-Length: 0
    Content-Length: 0

    <
    * Connection #0 to host 10.8.4.46 left intact
    * Closing connection #0

    curl -vi -X GET -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12
    * About to connect() to 10.8.4.46 port 20550 (#0)
    * Trying 10.8.4.46... connected
    * Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
    > GET /hbase_yarnlog/scanner/1520413092046101ffa12 HTTP/1.1
    > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
    > Host: 10.8.4.46:20550
    > Accept: text/xml
    >
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < Cache-Control: no-cache
    Cache-Control: no-cache
    < Content-Type: text/xml
    Content-Type: text/xml
    < Content-Length: 17834
    Content-Length: 17834

    <
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><CellSet><Row key="YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEx"><Cell column="eWFybmxvZzpkdXJUaW1l" timestamp="1519717201909">NTMwMDA=</Cell><Cell column="eWFybmxvZzplcnJtc2c=" timestamp="1519717184359">PEVSUk9SPklORk86IFN0ZXAxX05vZGU4IGhGaWxlVG9IYmFzZSBUUkFDRTog5YWl5Y+CMD0iaGRmczovLzEwLjguNC43NDo4MDIwL3VzZXIvbHl5L2RhdGEvaGZpbGUiIFRSQUNFOiDlhaXlj4IxPUNvbmZpZ3VyYXRpb246IGNvcmUtZGVmYXVsdC54bWwsIGNvcmUtc2l0ZS54bWwsIHlhcm4tZGVmYXVsdC54bWwsIHlhcm4tc2l0ZS54bWwsIG1hcHJlZC1kZWZhdWx0LnhtbCwgbWFwcmVkLXNpdGUueG1sLCBoZGZzLWRlZmF1bHQueG1sLCBoZGZzLXNpdGUueG1sLCBoYmFzZS1kZWZhdWx0LnhtbCwgaGJhc2Utc2l0ZS54bWwgVFJBQ0U6IOWFpeWPgjI9ImhiYXNlX3Rlc3QiIElORk86IOmAu+i+kei/lOWbnuWAvD0xIElORk86IFN0ZXAxX05vZGUyIOato+W4uOe7k+adnyBJTkZPOiDnu5PmnZ/kuqTmmJMgPC9FUlJPUj4K</Cell><Cell column="eWFybmxvZzppZG1hcA==" timestamp="1519717194545">YXBwbGljYXRpb25fMTUxNjYwNjY1OTEyMF8wMjEyIA==

    删除scanner 扫描对象,释放资源

    curl -vi -X DELETE -H "Accept: text/xml" http://10.8.4.46:20550/hbase_yarnlog/scanner/1520413092046101ffa12

    * About to connect() to 10.8.4.46 port 20550 (#0)
    * Trying 10.8.4.46... connected
    * Connected to 10.8.4.46 (10.8.4.46) port 20550 (#0)
    > DELETE /hbase_yarnlog/scanner/1520413092046101ffa12 HTTP/1.1
    > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.3.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
    > Host: 10.8.4.46:20550
    > Accept: text/xml
    >
    < HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    < Content-Length: 0
    Content-Length: 0

    <
    * Connection #0 to host 10.8.4.46 left intact
    * Closing connection #0

  • 相关阅读:
    129 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 02 懒汉式的代码实现
    128 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 03 饿汉模式 VS 懒汉模式 01 饿汉式的代码实现
    127 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 02 单例模式概述 01 单例模式的定义和作用
    126 01 Android 零基础入门 02 Java面向对象 06 Java单例模式 01 设计模式概述 01 设计模式简介
    125 01 Android 零基础入门 02 Java面向对象 05 Java继承(下)05 Java继承(下)总结 01 Java继承(下)知识点总结
    leetcode-----121. 买卖股票的最佳时机
    leetcode-----104. 二叉树的最大深度
    Json串的字段如果和类中字段不一致,如何映射、转换?
    Mybatis-Plus的Service方法使用 之 泛型方法default <V> List<V> listObjs(Function<? super Object, V> mapper)
    模糊查询
  • 原文地址:https://www.cnblogs.com/lyy-blog/p/8523001.html
Copyright © 2011-2022 走看看