All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.epi155.emsql.pojo.dml.DelegateWriteMethod Maven / Gradle / Ivy

Go to download

Generate DAO classes with JDBC code and DTO interfaces from YAML configuration files

The newest version!
package io.github.epi155.emsql.pojo.dml;

import io.github.epi155.emsql.api.PrintModel;
import io.github.epi155.emsql.commons.JdbcStatement;
import io.github.epi155.emsql.commons.SqlParam;
import io.github.epi155.emsql.commons.Tools;
import io.github.epi155.emsql.commons.dml.ApiWriteMethod;

import java.util.Map;

public class DelegateWriteMethod {
    private final ApiWriteMethod api;

    public DelegateWriteMethod(ApiWriteMethod api) {
        this.api = api;
    }

    public void proceed(PrintModel ipw, String name, JdbcStatement jdbc, String kPrg) {
        String cName = Tools.capitalize(name);
        api.docBegin(ipw);
        api.docInput(ipw, jdbc);
        api.docEnd(ipw);

        ipw.printf("public static ");
        api.declareGenerics(ipw, cName, jdbc.getTKeys());
        ipw.putf("int %s(%n", name);

        ipw.printf("        final Connection c");
        api.declareInput(ipw, jdbc);
        ipw.closeParenthesisLn();
        ipw.printf("        throws SQLException {%n");
        ipw.more();
        Map notScalar = api.notScalar(jdbc.getIMap());
        if (notScalar.isEmpty()) {
            ipw.printf("try (PreparedStatement ps = c.prepareStatement(Q_%s)) {%n", kPrg);
        } else {
            api.expandIn(ipw, notScalar, kPrg);
            ipw.printf("try (PreparedStatement ps = c.prepareStatement(query)) {%n");
        }
        ipw.more();
        api.setInput(ipw, jdbc);
        api.setQueryHints(ipw);
        api.debugAction(ipw, kPrg, jdbc);
        ipw.printf("return ps.executeUpdate();%n");
        ipw.ends();
        ipw.ends();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy