
org.simpleflatmapper.jdbc.spring.JdbcTemplateCrudDSL Maven / Gradle / Ivy
package org.simpleflatmapper.jdbc.spring;
import org.simpleflatmapper.jdbc.Crud;
import org.simpleflatmapper.jdbc.JdbcMapperFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ConnectionCallback;
import org.springframework.jdbc.core.JdbcTemplate;
import java.lang.reflect.Type;
import java.sql.Connection;
import java.sql.SQLException;
public class JdbcTemplateCrudDSL {
private final Type keyTarget;
private final Type target;
private final JdbcTemplateMapperFactory jdbcTemplateMapperFactory;
public JdbcTemplateCrudDSL(JdbcTemplateMapperFactory jdbcTemplateMapperFactory, Type target, Type keyTarget) {
this.jdbcTemplateMapperFactory = jdbcTemplateMapperFactory;
this.target = target;
this.keyTarget = keyTarget;
}
public JdbcTemplateCrud to(JdbcTemplate jdbcTemplate, final String table) {
final JdbcMapperFactory factory = JdbcMapperFactory.newInstance(jdbcTemplateMapperFactory);
Crud crud =
jdbcTemplate.execute(new ConnectionCallback>() {
@Override
public Crud doInConnection(Connection connection) throws SQLException, DataAccessException {
return factory.crud(target, keyTarget).table(connection, table);
}
});
return new JdbcTemplateCrud(jdbcTemplate, crud);
}
public JdbcTemplateCrud to(JdbcTemplate jdbcTemplate) {
final JdbcMapperFactory factory = JdbcMapperFactory.newInstance(jdbcTemplateMapperFactory);
Crud crud =
jdbcTemplate.execute(new ConnectionCallback>() {
@Override
public Crud doInConnection(Connection connection) throws SQLException, DataAccessException {
return factory.crud(target, keyTarget).to(connection);
}
});
return new JdbcTemplateCrud(jdbcTemplate, crud);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy