DataSourceClient.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.nylc.touyan.datasource;
  2. import java.io.Closeable;
  3. import java.util.List;
  4. import java.util.Map;
  5. /**
  6. * 统一的数据源客户端抽象。
  7. * 业务层只依赖该接口,不关心底层是 SQLite / MySQL / 其他。
  8. *
  9. * 设计原则:
  10. * 1. 入参/出参使用基础类型(String SQL + Object... params + List<Map>),保持通用;
  11. * 2. 各实现自行保证线程安全与连接管理;
  12. * 3. 新增数据源只需实现本接口并在 {@link DataSourceFactory} 注册。
  13. */
  14. public interface DataSourceClient extends Closeable {
  15. /** 当前数据源类型标识,用于日志/诊断。 */
  16. String type();
  17. /** 健康检查:连接可用返回 true。 */
  18. boolean ping();
  19. /** 查询列表;无结果返回空集合(不返回 null)。 */
  20. List<Map<String, Object>> queryForList(String sql, Object... params);
  21. /** 查询单条;无结果返回 null。 */
  22. Map<String, Object> queryForMap(String sql, Object... params);
  23. /** 单标量查询(例如 SELECT COUNT(*) / SELECT NOW()),无结果返回 null。 */
  24. Object queryForObject(String sql, Object... params);
  25. /** 执行 INSERT/UPDATE/DELETE,返回受影响行数。 */
  26. int update(String sql, Object... params);
  27. /** 批量执行同结构 SQL,返回每条受影响行数。 */
  28. int[] batchUpdate(String sql, List<Object[]> paramsBatch);
  29. /** 执行任意 SQL(DDL 等),无返回结果。 */
  30. void execute(String sql);
  31. }