 Mybatis 3.3.0 中文用户指南Configuration 的实 例构建出 SqlSessionFactory 的实例。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流 (InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的 工具类,它包含一些实用方法,可使从 per.xml"/> 当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。要注意 XML 头部的声明,用来验证 XML 文档正 确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的 XML 文件包含了 SQL 代码和映射定义信息)。 的规定以防哪天你改变了主意。出 于长远考虑,使用命名空间,并将它置于合适的 Java 包命名空间之下,你将拥有一份更加整洁的代码并提高了 MyBatis 的可用性。 命名解析: 命名解析:为了减少输入量,MyBatis 对所有的命名配置元素(包括语句,结果映射,缓存等)使用了如下的命名解析规则。 完全限定名(比如“com.mypackage.MyMapper.selectAllThings”)将被直接查找并且找到即用。0 码力 | 98 页 | 2.03 MB | 1 年前3 Mybatis 3.3.0 中文用户指南Configuration 的实 例构建出 SqlSessionFactory 的实例。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流 (InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的 工具类,它包含一些实用方法,可使从 per.xml"/> 当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。要注意 XML 头部的声明,用来验证 XML 文档正 确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的 XML 文件包含了 SQL 代码和映射定义信息)。 的规定以防哪天你改变了主意。出 于长远考虑,使用命名空间,并将它置于合适的 Java 包命名空间之下,你将拥有一份更加整洁的代码并提高了 MyBatis 的可用性。 命名解析: 命名解析:为了减少输入量,MyBatis 对所有的命名配置元素(包括语句,结果映射,缓存等)使用了如下的命名解析规则。 完全限定名(比如“com.mypackage.MyMapper.selectAllThings”)将被直接查找并且找到即用。0 码力 | 98 页 | 2.03 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.0.0-alpha. . 111 测试环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 测试结果验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.10.5 性能测试 (sysbench) 下一个数据结果集即可。 排序归并 由于在 SQL 中存在 ORDER BY 语句,因此每个数据结果集自身是有序的,因此只需要将数据结果集当前 游标指向的数据值进行排序即可。这相当于对多个有序的数组进行排序,归并排序是最适合此场景的排 序算法。 ShardingSphere 在对排序的查询进行归并时,将每个结果集的当前数据值进行比较(通过实现 Java 的 Comparable 接口完成 Apache ShardingSphere 数据加密模块的主要设计目标。 3.6.4 核心概念 TODO 3.6.5 实现原理 处理流程详解 Apache ShardingSphere 通过对用户输入的 SQL 进行解析,并依据用户提供的加密规则对 SQL 进行改 写,从而实现对原文数据进行加密,并将原文数据(可选)及密文数据同时存储到底层数据库。在用户查 询数据时,它仅从数据库中取出密文数0 码力 | 301 页 | 3.44 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0-alpha. . 111 测试环境搭建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 测试结果验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 3.10.5 性能测试 (sysbench) 下一个数据结果集即可。 排序归并 由于在 SQL 中存在 ORDER BY 语句,因此每个数据结果集自身是有序的,因此只需要将数据结果集当前 游标指向的数据值进行排序即可。这相当于对多个有序的数组进行排序,归并排序是最适合此场景的排 序算法。 ShardingSphere 在对排序的查询进行归并时,将每个结果集的当前数据值进行比较(通过实现 Java 的 Comparable 接口完成 Apache ShardingSphere 数据加密模块的主要设计目标。 3.6.4 核心概念 TODO 3.6.5 实现原理 处理流程详解 Apache ShardingSphere 通过对用户输入的 SQL 进行解析,并依据用户提供的加密规则对 SQL 进行改 写,从而实现对原文数据进行加密,并将原文数据(可选)及密文数据同时存储到底层数据库。在用户查 询数据时,它仅从数据库中取出密文数0 码力 | 301 页 | 3.44 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.0.0配置本实例需要的其他参数,例 如 ZooKeeper 的连接参数等 ZooKeeper 属性配置 名称 数据类型 说明 默认值 digest (?) String 连接注册中心的权限令牌 无需验证 operation TimeoutMilliseconds (?) int 操作超时的毫秒数 500 毫秒 maxRetries (?) int 连接失败后的最大重试次数 3 次 retryI props: xxx: xxx # 属性名称以及对应的值 更多详细配置请参见具体的规则配置部分。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 数据分片 配置项说明 dataSources: # 省略数据源配置,请参考使用手册 rules: - !SHARDING tables: # 数据分片规则配置 default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔0 码力 | 385 页 | 4.26 MB | 1 年前3 Apache ShardingSphere 中文文档 5.0.0配置本实例需要的其他参数,例 如 ZooKeeper 的连接参数等 ZooKeeper 属性配置 名称 数据类型 说明 默认值 digest (?) String 连接注册中心的权限令牌 无需验证 operation TimeoutMilliseconds (?) int 操作超时的毫秒数 500 毫秒 maxRetries (?) int 连接失败后的最大重试次数 3 次 retryI props: xxx: xxx # 属性名称以及对应的值 更多详细配置请参见具体的规则配置部分。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 数据分片 配置项说明 dataSources: # 省略数据源配置,请参考使用手册 rules: - !SHARDING tables: # 数据分片规则配置 default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔0 码力 | 385 页 | 4.26 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.1有序的,因此 ShardingSphere 每次比较仅获取各个分片的当前结果集记录,驻留在内存中的记录仅为当前路由到的分片的结果集的当 前游标指向而已。按归并思想合并 m 个长度为 n 的已排序数组,时间复杂度为 O(mn(log m)),一般分 片数量 m 都较小,可以认为时间复杂度为 O(n),性能损耗很小。 其次,ShardingSphere 对仅落至单分片的查询进行进一步优化。落至单分片查询的请求并不需要改写 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 配置项说明 mode (?): # 不配置则默认内存模式 type: # 运行模式类型。可选配置:Memory、Standalone、Cluster repository default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔0 码力 | 409 页 | 4.47 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.1有序的,因此 ShardingSphere 每次比较仅获取各个分片的当前结果集记录,驻留在内存中的记录仅为当前路由到的分片的结果集的当 前游标指向而已。按归并思想合并 m 个长度为 n 的已排序数组,时间复杂度为 O(mn(log m)),一般分 片数量 m 都较小,可以认为时间复杂度为 O(n),性能损耗很小。 其次,ShardingSphere 对仅落至单分片的查询进行进一步优化。落至单分片查询的请求并不需要改写 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 配置项说明 mode (?): # 不配置则默认内存模式 type: # 运行模式类型。可选配置:Memory、Standalone、Cluster repository default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔0 码力 | 409 页 | 4.47 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.2有序的,因此 ShardingSphere 每次比较仅获取各个分片的当前结果集记录,驻留在内存中的记录仅为当前路由到的分片的结果集的当 前游标指向而已。按归并思想合并 m 个长度为 n 的已排序数组,时间复杂度为 O(mn(log m)),一般分 片数量 m 都较小,可以认为时间复杂度为 O(n),性能损耗很小。 其次,ShardingSphere 对仅落至单分片的查询进行进一步优化。落至单分片查询的请求并不需要改写 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 配置项说明 mode (?): # 不配置则默认内存模式 type: # 运行模式类型。可选配置:Memory、Standalone、Cluster repository default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔0 码力 | 446 页 | 4.67 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.2有序的,因此 ShardingSphere 每次比较仅获取各个分片的当前结果集记录,驻留在内存中的记录仅为当前路由到的分片的结果集的当 前游标指向而已。按归并思想合并 m 个长度为 n 的已排序数组,时间复杂度为 O(mn(log m)),一般分 片数量 m 都较小,可以认为时间复杂度为 O(n),性能损耗很小。 其次,ShardingSphere 对仅落至单分片的查询进行进一步优化。落至单分片查询的请求并不需要改写 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 配置项说明 mode (?): # 不配置则默认内存模式 type: # 运行模式类型。可选配置:Memory、Standalone、Cluster repository default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔0 码力 | 446 页 | 4.67 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.4.1catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 7.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository commit,rollback 分类 9.1.7 GraalVM Native Image 背景信息 ShardingSphere JDBC 已在 GraalVM Native Image 下完成可用性验证。 构建包含 org.apache.shardingsphere:shardingsphere-jdbc-core:${shardingsphere. version} 的 Maven 依赖的 GraalVM0 码力 | 530 页 | 4.49 MB | 1 年前3 Apache ShardingSphere 中文文档 5.4.1catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 7.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository commit,rollback 分类 9.1.7 GraalVM Native Image 背景信息 ShardingSphere JDBC 已在 GraalVM Native Image 下完成可用性验证。 构建包含 org.apache.shardingsphere:shardingsphere-jdbc-core:${shardingsphere. version} 的 Maven 依赖的 GraalVM0 码力 | 530 页 | 4.49 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.1.0createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 配置项说明 mode (?): # 不配置则默认内存模式 type: # 运行模式类型。可选配置:Memory、Standalone、Cluster repository default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔 下一个数据结果集即可。 排序归并 由于在 SQL 中存在 ORDER BY 语句,因此每个数据结果集自身是有序的,因此只需要将数据结果集当前 游标指向的数据值进行排序即可。这相当于对多个有序的数组进行排序,归并排序是最适合此场景的排 序算法。 ShardingSphere 在对排序的查询进行归并时,将每个结果集的当前数据值进行比较(通过实现 Java 的 Comparable 接口完成0 码力 | 406 页 | 4.40 MB | 1 年前3 Apache ShardingSphere 中文文档 5.1.0createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 配置项说明 mode (?): # 不配置则默认内存模式 type: # 运行模式类型。可选配置:Memory、Standalone、Cluster repository default-database-strategy.standard.sharding- algorithm-name=default-database-strategy-inline # 绑定表规则,多组绑定规则使用数组形式配置 spring.shardingsphere.rules.sharding.binding-tables[0]=t_user,t_user_detail # 绑定表 名称,多个表之间以逗号分隔 下一个数据结果集即可。 排序归并 由于在 SQL 中存在 ORDER BY 语句,因此每个数据结果集自身是有序的,因此只需要将数据结果集当前 游标指向的数据值进行排序即可。这相当于对多个有序的数组进行排序,归并排序是最适合此场景的排 序算法。 ShardingSphere 在对排序的查询进行归并时,将每个结果集的当前数据值进行比较(通过实现 Java 的 Comparable 接口完成0 码力 | 406 页 | 4.40 MB | 1 年前3
 Apache ShardingSphere v5.5.0 中文文档catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 7.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository commit,rollback 分类 9.1.7 GraalVM Native Image 背景信息 ShardingSphere JDBC 已在 GraalVM Native Image 下完成可用性验证。 构 建 包 含 org.apache.shardingsphere:shardingsphere-jdbc:${shardingsphere. version} 的 Maven 依赖的 GraalVM0 码力 | 557 页 | 4.61 MB | 1 年前3 Apache ShardingSphere v5.5.0 中文文档catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 7.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository commit,rollback 分类 9.1.7 GraalVM Native Image 背景信息 ShardingSphere JDBC 已在 GraalVM Native Image 下完成可用性验证。 构 建 包 含 org.apache.shardingsphere:shardingsphere-jdbc:${shardingsphere. version} 的 Maven 依赖的 GraalVM0 码力 | 557 页 | 4.61 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.2.0catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 2.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository ShardingSphere‐Proxy,ShardingSphere‐JDBC 暂不提供。 原理介绍 与标准 SQL 一样,DistSQL 由 ShardingSphere 的解析引擎进行识别,将输入语句转换为抽象语法树,进 而生成各个语法对应的 Statement,最后由合适的 Handler 进行业务处理。整体流程如下图所示: 4.2. ShardingSphere-Proxy 1830 码力 | 449 页 | 5.85 MB | 1 年前3 Apache ShardingSphere 中文文档 5.2.0catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 2.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository ShardingSphere‐Proxy,ShardingSphere‐JDBC 暂不提供。 原理介绍 与标准 SQL 一样,DistSQL 由 ShardingSphere 的解析引擎进行识别,将输入语句转换为抽象语法树,进 而生成各个语法对应的 Statement,最后由合适的 Handler 进行业务处理。整体流程如下图所示: 4.2. ShardingSphere-Proxy 1830 码力 | 449 页 | 5.85 MB | 1 年前3
 Apache ShardingSphere 中文文档 5.3.2catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 7.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository ShardingSphere 的解析引擎进行识别,将输入语句转换为抽象语法树,进 而生成各个语法对应的 Statement,最后由合适的 Handler 进行业务处理。整体流程如下图所示: 相关参考 用户手册:DistSQL 语法 本章节将对 DistSQL 的语法进行详细说明,并以实际的列子介绍 DistSQL 的使用。 语法规则 在 DistSQL 语句中,除关键字外,其余元素的输入格式应符合以下规则。 90 码力 | 508 页 | 4.44 MB | 1 年前3 Apache ShardingSphere 中文文档 5.3.2catalog)支持有限,通过部分图形化 数据库客户端连接 Proxy 时,可能客户端或 Proxy 会有错误提示。可以使用命令行客户端(mysql、psql、 gsql 等)连接 Proxy 验证功能。 7.2.3 前提条件 使用 Docker 启动 ShardingSphere‐Proxy 无须额外依赖。使用二进制分发包启动 Proxy,需要环境具备 Java JRE 8 或更高版本。 createDataSource(yamlFile); 使用数据源 使用方式同 Java API。 语法说明 !! 表示实例化该类 ! 表示自定义别名 - 表示可以包含一个或多个 [] 表示数组,可以与减号相互替换使用 模式配置 参数解释 mode (?): # 不配置则默认单机模式 type: # 运行模式类型。可选配置:Standalone、Cluster repository ShardingSphere 的解析引擎进行识别,将输入语句转换为抽象语法树,进 而生成各个语法对应的 Statement,最后由合适的 Handler 进行业务处理。整体流程如下图所示: 相关参考 用户手册:DistSQL 语法 本章节将对 DistSQL 的语法进行详细说明,并以实际的列子介绍 DistSQL 的使用。 语法规则 在 DistSQL 语句中,除关键字外,其余元素的输入格式应符合以下规则。 90 码力 | 508 页 | 4.44 MB | 1 年前3
共 14 条
- 1
- 2













