# squirrel **Repository Path**: Timetry/squirrel ## Basic Information - **Project Name**: squirrel - **Description**: 不使用sql处理数据库工具 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-03-29 - **Last Updated**: 2025-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # squirrel #### 介绍 对sql语句进行简单封装,用于数据库处理。 #### 软件架构 软件架构说明 基于spring jdbcTemple、druid。目前支持oracle和postgresql #### 安装教程 mvn install:install-file -Dfile=D:\ompJar\squirrel-0.0.1-SNAPSHOT.jar -DgroupId=com.oasis -DartifactId=squirrel -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar 1. 下载源码,使用maven命令:mvn clean install '-Dmaven.test.skip=true' 打包 2. 在自己的项目中引入 ########################################## com.oasis squirrel 0.0.1-SNAPSHOT ########################################## 3. #### 使用说明 1. 在代码中注入SelectFactory和SqlHandler ########################################## @Autowired private SqlBuildFactory sqlBuildFactory; @Autowired private SqlHandler sqlHandler; ########################################## 2. 最简单查询 Select select = sqlBuildFactory.create(Select.class); select.fields("字段1","字段2") //去重 .distinct() .from("表名称") List query = sqlHandler.query(select); for (DataMedium dataMedium : query) { String fileName = (String) dataMedium.get("字段1"); System.out.println("字段1:" + fileName); } 3. 根据时间区间进行查询 Select select = sqlBuildFactory.create(Select.class); select.fields("字段1","字段2") .from("表名称") //添加时间区间查询条件(一周前当前时间-当前时间) .where("createtime", QueryCondition.SQL_GREATER_EQUAL, LocalDateTime.now().minusWeeks(1)) .and("createtime", QueryCondition.SQL_LESS_EQUAL, LocalDateTime.now()); List query = sqlHandler.query(select); for (DataMedium dataMedium : query) { String fileName = (String) dataMedium.get("字段1"); System.out.println("字段1:" + fileName); } 4. 获取数据库字段为TIMESTAMP时间类型,使用下面方法 LocalDateTime fileReceptionInfo = dataMedium.getTIMESTAMP("字段名称"); 5. 更新数据 Update update = sqlBuildFactory.create(Update.class); update.setDataMedium(dataMedia); update.where("字段名称", QueryCondition.SQL_EQUAL,"字段值")); sqlHandler.update(update); 6. 添加where条件中In操作方式 //需要创建一个Object的类型的List List inList = new ArrayList<>(); //将需要in的内容添加 inList.add("告警"); inList.add("告警恢复"); Select select = sqlBuildFactory.create(Select.class); select.fields("FileName", "alarmLogo") .from("表名称") .where("字段名称1", QueryCondition.SQL_EQUAL, fileName) //条件选择SQL_OP_IN,然后传入inList .and("字段名称2", QueryCondition.SQL_IN, inList) .and("字段名称3", QueryCondition.SQL_GREATER_EQUAL, receptionTime) .and("字段名称4", QueryCondition.SQL_LESS_EQUAL, LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 00))); return sqlHandler.queryOne(select); 7. 8. #### 参与贡献 1. [Timetry](https://gitee.com/Timetry)、[福尔摩亮](https://gitee.com/semicon) 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request