Skip to content

Latest commit

 

History

History
79 lines (53 loc) · 1.67 KB

README.md

File metadata and controls

79 lines (53 loc) · 1.67 KB

SQL Analyzer

Maven Central Java CI License: MIT

A library for SQL.

Required

  • Java 1.8+
<dependency>
  <groupId>io.github.tamurashingo.sqlanalyzer</groupId>
  <artifactId>sql-analyzer</artifactId>
  <version>0.0.1</version>
</dependency>

Usage

Write SQL with named parameter.

String sql = "SELECT COUNT(*) FROM tbl WHERE id = :id AND CREATED_AT > :yesterday"

Put parameters to Map<String, Object>.

Map<String,Object> params = new HashMap<String, Object>(){{
    put("yesterday", "2021-11-25");
    put("id", 3);
}};

Convert SQL with SQLAnalyzer.

SQLAnalyzer analyzer = new SQLAnalyzer();
String convertSQL = analyzer.analyzeSQL(sql);
// converted SQL
// "SELECT COUNT(*) FROM tbl WHRE id = ? AND CREATED_AT > ?"

Convert parameters.

Object[] convertParams = analyzer.analyzeParams(params);
// converted parameters
// Object[] { 3, "2021-11-25" }

Execute query.

PreparedStatement stmt = conn.prepareStatement(convertSQL);
int ix = 0;
for (Object param: convertParams) {
    ix++;
    stmt.setObject(ix, param);
}
stmt.executeQuery();

LICENSE

Copyright &copy 2021 tamura shingo Licensed under the MIT License.