/splate

splate is Java Library for 2Way-SQL template

Primary LanguageJavaApache License 2.0Apache-2.0

Maven Central Javadocs build SonarQube

splate

logo

splate(エス・プレート)は、 2Way-SQL 機能のみを S2JDBC から分離し、使いやすくしたライブラリです。

このライブラリは、SpringFrameworkに依存しています。理由は以下の通りです。

  • SpringFrameworkに依存している理由として、普段、Javaで開発するときには、多くがSpringBootを利用しいる状況にあるためです。
  • そのため、無理にSpringFrameworkに依存しないように作ってもコード量が増えるだけで、あまりメリットがないと考えられます。
  • SpringFrameworkに依存しないで2Way-SQLを利用するならば、他の多くのライブラリ( Doma2 / DBFlute / Mirage-SQL / uroboroSQL )が既に存在するので、そちらを利用することを検討した方がよいかもしれません。

Licensee

Apache2 License

Dependency

  • Java 11+
  • SpringFramework 5.0+
  • Slf4j 1.7+

Setup

Add dependency. ex) pom.xml

<dependency>
	<groupId>com.github.mygreen</groupId>
	<artifactId>splate</artifactId>
	<version>0.3</version>
</dependency>

How to use

  1. Define SQL file.
select * from employee
/*BEGIN*/
where
/*IF salaryMin != null*/
salary >= /*salaryMin*/1000
/*END*/
/*IF salaryMax != null*/
and salary <= /*salaryMax*/2000
/*END*/
/*END*/
  1. Create instance the SqlTemplateEngine and parse SQL template file.
SqlTemplateEngine templateEngine = new SqlTemplateEngine();
SqlTemplate template = templateEngine.getTemplate("classpath:/sql/employee_select.sql");
  1. Create template parameter with SqlTemplateContext.
public class SelectParam {
    public BigDecimal salaryMin;
    public BigDecimal salaryMax;
}
// create parameter with JavaBean.
SelectParam param = new SelectParam();
param.salaryMin = new BigDecimal(1200);
param.salaryMax = new BigDecimal(1800);

// create instance of SqlTemplateContext.
SqlTemplateContext templateContext = new BeanPropertySqlTemplateContext(param);
  1. Evaluating SQL template.
ProcessResult result = template.process(templateContext);

// sql : select * from employee salary >= ? and salary <= ?
String sql = result.getSql();

// bind parameters
List<Object> params = result.getParameters();

Documentation