use of com.fathomdb.jdbc.JdbcConnection in project platformlayer by platformlayer.
the class JdbcServiceAuthorizationRepository method createAuthorization.
@Override
@JdbcTransaction
public ServiceAuthorization createAuthorization(ProjectId project, ServiceAuthorization authorization) throws RepositoryException {
try {
ServiceType serviceType = new ServiceType(authorization.serviceType);
JdbcConnection connection = connectionProvider.get();
int serviceId = JdbcRepositoryHelpers.getServiceKey(connection, serviceType);
int projectId = JdbcRepositoryHelpers.getProjectKey(connection, project);
final String sql = "INSERT INTO service_authorizations (service, project, data) VALUES (?, ?, ?)";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = null;
try {
ps.setInt(1, serviceId);
ps.setInt(2, projectId);
ps.setString(3, authorization.data);
int updateCount = ps.executeUpdate();
if (updateCount != 1) {
throw new IllegalStateException("Unexpected number of rows inserted");
}
} finally {
JdbcUtils.safeClose(rs);
JdbcUtils.safeClose(ps);
}
return authorization;
} catch (SQLException e) {
throw new RepositoryException("Error running query", e);
}
}
use of com.fathomdb.jdbc.JdbcConnection in project platformlayer by platformlayer.
the class JdbcServiceAuthorizationRepository method findServiceAuthorization.
@Override
@JdbcTransaction
public ServiceAuthorization findServiceAuthorization(ServiceType serviceType, ProjectId project) throws RepositoryException {
try {
JdbcConnection connection = connectionProvider.get();
int serviceId = JdbcRepositoryHelpers.getServiceKey(connection, serviceType);
int projectId = JdbcRepositoryHelpers.getProjectKey(connection, project);
String sql = "SELECT data FROM service_authorizations WHERE service=? and project=?";
List<ServiceAuthorization> items = Lists.newArrayList();
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = null;
try {
ps.setInt(1, serviceId);
ps.setInt(2, projectId);
rs = ps.executeQuery();
while (rs.next()) {
items.add(mapRow(serviceType, rs));
}
} finally {
JdbcUtils.safeClose(rs);
JdbcUtils.safeClose(ps);
}
if (items.size() == 0) {
return null;
}
if (items.size() != 1) {
throw new IllegalStateException("Found duplicate results for primary key: " + serviceType + ":" + project);
}
return items.get(0);
} catch (SQLException e) {
throw new RepositoryException("Error running query", e);
}
}
Aggregations