splate(エス・プレート)は、 2Way-SQL 機能のみを S2JDBC から分離し、使いやすくしたライブラリです。
このライブラリは、SpringFrameworkに依存しています。理由は以下の通りです。
- SpringFrameworkに依存している理由として、普段、Javaで開発するときには、多くがSpringBootを利用しいる状況にあるためです。
- そのため、無理にSpringFrameworkに依存しないように作ってもコード量が増えるだけで、あまりメリットがないと考えられます。
- SpringFrameworkに依存しないで2Way-SQLを利用するならば、他の多くのライブラリ( Doma2 / DBFlute / Mirage-SQL / uroboroSQL )が既に存在するので、そちらを利用することを検討した方がよいかもしれません。
Apache2 License
- Java 11+
- SpringFramework 5.0+
- Slf4j 1.7+
Add dependency. ex) pom.xml
<dependency>
<groupId>com.github.mygreen</groupId>
<artifactId>splate</artifactId>
<version>0.3</version>
</dependency>
- Define SQL file.
select * from employee
/*BEGIN*/
where
/*IF salaryMin != null*/
salary >= /*salaryMin*/1000
/*END*/
/*IF salaryMax != null*/
and salary <= /*salaryMax*/2000
/*END*/
/*END*/
- Create instance the
SqlTemplateEngine
and parse SQL template file.
SqlTemplateEngine templateEngine = new SqlTemplateEngine();
SqlTemplate template = templateEngine.getTemplate("classpath:/sql/employee_select.sql");
- 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);
- 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();
- Project information and manual.
- JavaDoc