当前位置:首页>Excel>轻量高效实现Excel至Java对象映射,支持各种复杂Excel

轻量高效实现Excel至Java对象映射,支持各种复杂Excel

  • 2026-03-31 17:18:52
轻量高效实现Excel至Java对象映射,支持各种复杂Excel
Spring Boot 3实战案例锦集PDF电子书已更新至130篇!
🎉🎉《Spring Boot实战案例合集》目前已更新206个案例,我们将持续不断的更新。文末有电子书目录。→ 现在就订阅合集

环境:Spring Boot 3.5.0


1. 简介

Poiji是一个小巧且线程安全的Java库,它提供了一种将Excel表格数据单向映射到Java类的方式。从某种意义上说,它允许我们将指定Excel数据中的每一行转换为Java对象。Poiji在底层使用Apache Poi(用于处理微软文档的Java API)来完成这一映射过程。

在本篇文章中,我们将深入且详尽地介绍如何运用Poiji库来实现Excel数据到Java对象的映射操作。

2.实战案例
2.1 准备环境
<dependency>  <groupId>com.github.ozlerhakan</groupId>  <artifactId>poiji</artifactId>  <version>5.2.0</version>  <scope>compile</scope></dependency>
最新版本可以通过如下地址查看:

https://mvnrepository.com/artifact/com.github.ozlerhakan/poiji

2.2 核心接口
com.poiji.bind.Poiji.fromExcel 结构
Poiji#fromExcel(FileClass<T>)Poiji#fromExcel(FileClass<T>, Consumer<? super T>)Poiji#fromExcel(FileClass<T>, PoijiOptions)Poiji#fromExcel(FileClass<T>, PoijiOptionsConsumer<? super T>)Poiji#fromExcel(InputStreamPoijiExcelTypeClass<T>)Poiji#fromExcel(InputStreamPoijiExcelTypeClass<T>, Consumer<? super T>)Poiji#fromExcel(InputStreamPoijiExcelTypeClass<T>, PoijiOptions)Poiji#fromExcel(InputStreamPoijiExcelTypeClass<T>, PoijiOptionsConsumer<? super T>)Poiji#fromExcel(SheetClass<T>)Poiji#fromExcel(SheetClass<T>, PoijiOptions)Poiji#fromExcel(SheetClass<T>, PoijiOptionsConsumer<? super T>)Poiji#fromExcelProperties(FileClass<T>)Poiji#fromExcelProperties(FileClass<T>, PoijiOptions)Poiji#fromExcelProperties(InputStreamPoijiExcelTypeClass<T>)Poiji#fromExcelProperties(InputStreamPoijiExcelTypeClass<T>, PoijiOptions)

com.poiji.option.PoijiOptions.PoijiOptionsBuilder 结构

PoijiOptionsBuilder    .settings()    .build()    .dateLenient(boolean)    .dateRegex(String)    .timeRegex(String)    .dateTimeRegex(String)    .datePattern(String)    .dateFormatter(DateTimeFormatter)    .timeFormatter(DateTimeFormatter)    .dateTimeFormatter(DateTimeFormatter)    .ignoreHiddenSheets(boolean)    .password(String)    .preferNullOverDefault(boolean)    .settings(int)    .sheetIndex(int)    .sheetName(String)    .skip(int)    .limit(int)    .trimCellValue(boolean)    .headerStart(int)    .headerCount(int)    .withCasting(Casting)    .withFormatting(Formatting)    .caseInsensitive(boolean)    .ignoreWhitespaces(boolean)    .poijiNumberFormat(PoijiNumberFormat)    .poijiLogCellFormat(PoijiLogCellFormat)    .disableXLSXNumberCellFormat()    .addListDelimiter(String)    .setLocale(java.util.Locale)    .rawData(boolean)    .setIgnoreFileExtension(boolean)
2.3 读取Excel到对象
准备如下Excel数据(employees.xlsx)
定义Java对象
public class Employee {  // 可选地,我们可通过ExcelRow注解访问每行项的索引。注解变量应为int、double、float或long类型  @ExcelRow  private int rowIndex;  // 字段必须使用@ExcelCell注解并指定其属性,才能从目标Excel工作表的正确坐标获取值。  // 注解字段可以是受保护、私有或公有的修饰符。该字段可以是布尔型、整型、长整型、浮点型、双精度型,或其包装类。  // 你还可以添加 java.util.Date、java.time.LocalDate、java.time.LocalTime、java.time.LocalDateTime 以及 String 类型的字段。  @ExcelCell(0)  private long employeeId;  @ExcelCell(1)  private String name;  @ExcelCell(2)  private String surname;  @ExcelCell(3)  private int age;  @ExcelCell(4)  private boolean single;  // 如果某列包含多个值,可通过列表字段获取它们。列表字段可存储以下类型的项目:BigDecimal、Long、Double、Float、Integer、Boolean 和 String。  @ExcelCellName("emails")  List<String> emails;  @ExcelCell(5)  List<BigDecimal> bills;  // 无需使用getter/setter方法将Excel单元格映射到字段}
使用Poiji读取Excel数据
File file = new File("C:\\Users\\Administrator\\Desktop\\employees.xlsx");PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings().addListDelimiter(";").build();List<Employee> employees = Poiji.fromExcel(file, Employee.class, options);System.err.println(employees) ;// 或者InputStream stream = new FileInputStream(file);employees = Poiji.fromExcel(stream, PoijiExcelType.XLSX, Employee.class, options);System.out.println(employees) ;
输出结果

默认情况下,Poiji 会忽略 Excel 数据的标题行。若需忽略数据的第一行,需使用 PoijiOptions 进行设置,如下示例:

PoijiOptions options = PoijiOptions.PoijiOptionsBuilder    // 跳过的行数    .settings(1)    // 设置分隔符    .addListDelimiter(";")    .build();
2.3 高级用法
设置读取工作簿名称
@ExcelSheet("Sheet2")public classEmployee{}
通过 @ExcelSheet 可以设置具体你要读取的哪个工作簿。

受保护的Excel文件

假设你的Excel文件设置了密码保护,可通过PoijiOptionsBuilder定义密码以读取行数据:

PoijiOptions options = PoijiOptionsBuilder.settings()    .addListDelimiter(";")    .password("123123")    .build();
设置单元格名称

使用 @ExcelCellName,我们可以直接通过列名读取数值。

public classEmployee{  @ExcelCellName("姓名")  private String name;}

默认情况下,@ExcelCellName 区分大小写,且 Excel 文件不应包含重复的列名。不过,你可以通过 PoijiOptionsBuilder#caseInsensitive(boolean) 方法调整此特性,并使用 PoijiOptionsBuilder#ignoreWhitespaces(boolean) 忽略空格。

使用继承

我们定义的数据模型还可以使用继承关系,如下示例:

public abstract class BaseEntity {  @ExcelCell(1)  protected String name;  @ExcelCell(3)  protected int age;}// 子类public class Employee extends BaseEntity {  @ExcelRow  private int rowIndex;  @ExcelCell(0)  private long employeeId;  @ExcelCell(2)  private String surname;  @ExcelCell(4)  private boolean single;  @ExcelCellName("emails")  List<String> emails;  @ExcelCell(5)  List<BigDecimal> bills;}

测试示例

File file = new File("C:\\Users\\Administrator\\Desktop\\employees.xlsx");PoijiOptions options = PoijiOptionsBuilder.settings()    .addListDelimiter(";")    .password("123123")    .build();List<Employee> employees = Poiji.fromExcel(file, Employee.class, options);System.err.println(employees.get(0));

输出结果

Employee [  rowIndex=1  employeeId=10001  surname=王,   single=true  emails=null  bills=[123.33445.3],   name=王强,   age=23]

复杂Excel读取

准备如下Excel内容
准备模型数据
@ExcelSheet("Sheet2")public class PersonCreditInfo {  @ExcelCellName("编号")  private Integer no;  @ExcelCellRange  private PersonInfo personInfo;  @ExcelCellRange  private CardInfo cardInfo;  public static class PersonInfo {    @ExcelCellName("姓名")    private String name;    @ExcelCellName("年龄")    private Integer age;    @ExcelCellName("城市")    private String city;    @ExcelCellName("国家")    private String state;    @ExcelCellName("邮编")    private String zipCode;  }  public static class CardInfo {    @ExcelCellName("类型")    private String type;    @ExcelCellName("末尾号码")    private String last4Digits;    @ExcelCellName("有效期")    private String expirationDate;  }}
测试程序
File file = new File("C:\\Users\\Administrator\\Desktop\\employees.xlsx");PoijiOptions options = PoijiOptions.PoijiOptionsBuilder    .settings()    .headerCount(2)    .build();List<PersonCreditInfo> persons = Poiji.fromExcel(file, PersonCreditInfo.class, options);System.err.println(persons);
输出结果
自定义消费接口
我们可以将读取到的每一条数据进行处理。这在如下场景下非常有用:
  • 处理超大Excel文件(无需全部加载内存)

  • 运行时数据处理/过滤

  • 数据库批量插入

Poiji.fromExcel(file, Employee.class, options, employee -> {  System.err.println(employee) ;});  

输出结果

自定义类型转换

可以通过Casting接口创建自己的转换实现,而无需依赖默认的Poiji转换配置。

public class ModifiedBooleanCasting extends DefaultCasting {  @Override  protected Boolean booleanValue(String value, String sheetName, int row, int col, PoijiOptions options) {    if (!value.equals("TRUE") && !value.equals("FLASE")) {      return onError(value, sheetName, row, col, new RuntimeException("数据类型错误"), options.preferNullOverDefault() ? null : false);    } else {      return value.equals("y");    }  }}

使用

PoijiOptions options = PoijiOptions.PoijiOptionsBuilder.settings()    .withCasting(new ModifiedBooleanCasting())    .password("123123")    .build();
更多内容,请查看下面链接

https://github.com/ozlerhakan/poiji

以上是本篇文章的全部内容,如对你有帮助帮忙点赞+转发+收藏
UUID已死!全新分布式ID组件TSID在Spring Boot下的实战,支持N种

请不要自己写!Google开源一个注解自动生成重复模板代码

性能优化!Spring Boot 一个注解轻松搞定百万数据 Excel 导出,低内存

太强了!一个注解搞定 Controller 动态参数预处理

高级开发!自定义@RequestMapping深度整合熔断降级功能

太强了!Java开源Diff库,一行代码分析千行差异

官方建议!Spring Boot多数据源正确实现方式

别再用 !=null 了!7种优雅替代方式

性能调优实战:Spring Boot 通过多线程处理SQL IN语句大量值的优化方案

技术专家!Spring AOP + Nacos + Prometheus 实现动态限流及实时监控

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-05 13:28:09 HTTP/2.0 GET : https://h.sjds.net/a/468913.html
  2. 运行时间 : 0.085932s [ 吞吐率:11.64req/s ] 内存消耗:4,421.95kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=890402a796734f6669ad6944e6aa6569
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000684s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000886s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000395s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000241s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000470s ]
  6. SELECT * FROM `set` [ RunTime:0.000216s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000539s ]
  8. SELECT * FROM `article` WHERE `id` = 468913 LIMIT 1 [ RunTime:0.001326s ]
  9. UPDATE `article` SET `lasttime` = 1775366889 WHERE `id` = 468913 [ RunTime:0.004698s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000246s ]
  11. SELECT * FROM `article` WHERE `id` < 468913 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000478s ]
  12. SELECT * FROM `article` WHERE `id` > 468913 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001410s ]
  13. SELECT * FROM `article` WHERE `id` < 468913 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000625s ]
  14. SELECT * FROM `article` WHERE `id` < 468913 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005556s ]
  15. SELECT * FROM `article` WHERE `id` < 468913 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001952s ]
0.087532s