Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions core/src/main/java/org/sql2o/Connection.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
package org.sql2o;

import org.sql2o.connectionsources.ConnectionSource;
import org.sql2o.converters.Converter;
import org.sql2o.converters.ConverterException;
import org.sql2o.logging.LocalLoggerFactory;
import org.sql2o.logging.Logger;
import org.sql2o.quirks.Quirks;

import java.io.Closeable;
import java.sql.ResultSet;
import java.sql.SQLException;
Expand All @@ -15,6 +8,12 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.sql2o.connectionsources.ConnectionSource;
import org.sql2o.converters.Converter;
import org.sql2o.converters.ConverterException;
import org.sql2o.logging.LocalLoggerFactory;
import org.sql2o.logging.Logger;
import org.sql2o.quirks.Quirks;

import static org.sql2o.converters.Convert.throwIfNull;

Expand Down Expand Up @@ -263,6 +262,7 @@ void removeStatement(Statement statement){
statements.remove(statement);
}

@Override
public void close() {
boolean connectionIsClosed;
try {
Expand Down
17 changes: 13 additions & 4 deletions core/src/main/java/org/sql2o/DefaultResultSetHandlerFactory.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package org.sql2o;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import org.sql2o.converters.Converter;
import org.sql2o.converters.ConverterException;
import org.sql2o.quirks.Quirks;
Expand All @@ -9,10 +12,6 @@
import org.sql2o.reflection.Setter;
import org.sql2o.tools.AbstractCache;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;


public class DefaultResultSetHandlerFactory<T> implements ResultSetHandlerFactory<T> {
private final PojoMetadata metadata;
Expand All @@ -35,6 +34,7 @@ private static Getter getGetter(final Quirks quirks, final String propertyPath,
// getter without converter
if (converter == null) return getter;
return new Getter() {
@Override
public Object getProperty(Object obj) {
try {
return converter.convert(getter.getProperty(obj));
Expand All @@ -43,6 +43,7 @@ public Object getProperty(Object obj) {
}
}

@Override
public Class getType() {
return getter.getType();
}
Expand All @@ -52,11 +53,13 @@ public Class getType() {
// i'm too lazy now to rewrite this case so I just call old unoptimized code...
// TODO: rewrite, get rid of POJO class
return new Getter() {
@Override
public Object getProperty(Object obj) {
Pojo pojo = new Pojo(metadata, metadata.isCaseSensitive(), obj);
return pojo.getProperty(propertyPath, quirks);
}

@Override
public Class getType() {
// doesn't used anyway
return Object.class;
Expand All @@ -79,6 +82,7 @@ private static Setter getSetter(
// setter without converter
if (converter == null) return setter;
return new Setter() {
@Override
public void setProperty(Object obj, Object value) {
try {
setter.setProperty(obj, converter.convert(value));
Expand All @@ -87,6 +91,7 @@ public void setProperty(Object obj, Object value) {
}
}

@Override
public Class getType() {
return setter.getType();
}
Expand All @@ -96,11 +101,13 @@ public Class getType() {
// i'm too lazy now to rewrite this case so I just call old unoptimized code...
// TODO: rewrite, get rid of POJO class
return new Setter() {
@Override
public void setProperty(Object obj, Object value) {
Pojo pojo = new Pojo(metadata, metadata.isCaseSensitive(), obj);
pojo.setProperty(propertyPath, value, quirks);
}

@Override
public Class getType() {
// doesn't used anyway
return Object.class;
Expand Down Expand Up @@ -164,6 +171,7 @@ protected ResultSetHandler evaluate(Key key, ResultSetMetaData param) {
}
};

@Override
@SuppressWarnings("unchecked")
public ResultSetHandler<T> newResultSetHandler(final ResultSetMetaData meta) throws SQLException {
StringBuilder stringBuilder = new StringBuilder();
Expand Down Expand Up @@ -218,6 +226,7 @@ private ResultSetHandler<T> newResultSetHandler0(final ResultSetMetaData meta) t
*/
useExecuteScalar = converter != null && columnCount == 1 && setters[1] == null;
return new ResultSetHandler<T>() {
@Override
@SuppressWarnings("unchecked")
public T handle(ResultSet resultSet) throws SQLException {
if (useExecuteScalar) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
package org.sql2o;

import java.util.Map;
import org.sql2o.quirks.Quirks;
import org.sql2o.reflection.PojoMetadata;

import java.util.Map;

public class DefaultResultSetHandlerFactoryBuilder implements ResultSetHandlerFactoryBuilder {
private boolean caseSensitive;
private boolean autoDeriveColumnNames;
private boolean throwOnMappingError;
private Map<String, String> columnMappings;
private Quirks quirks;

@Override
public boolean isCaseSensitive() {
return caseSensitive;
}

@Override
public void setCaseSensitive(boolean caseSensitive) {
this.caseSensitive = caseSensitive;
}

@Override
public boolean isAutoDeriveColumnNames() {
return autoDeriveColumnNames;
}

@Override
public void setAutoDeriveColumnNames(boolean autoDeriveColumnNames) {
this.autoDeriveColumnNames = autoDeriveColumnNames;
}
Expand All @@ -38,24 +41,29 @@ public void throwOnMappingError(boolean throwOnMappingError) {
this.throwOnMappingError = throwOnMappingError;
}

@Override
public Map<String, String> getColumnMappings() {
return columnMappings;
}

@Override
public void setColumnMappings(Map<String, String> columnMappings) {
this.columnMappings = columnMappings;
}

@Override
public Quirks getQuirks() {
return quirks;
}

@Override
public void setQuirks(Quirks quirks) {
this.quirks = quirks;
}



@Override
@SuppressWarnings("unchecked")
public <T> ResultSetHandlerFactory<T> newFactory(Class<T> clazz) {
PojoMetadata pojoMetadata = new PojoMetadata(clazz, caseSensitive, autoDeriveColumnNames, columnMappings, throwOnMappingError);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ public DelegatingResultSetHandler(ResultSetHandlerFactory<E> factory) {
this.factory = factory;
}

@Override
public E handle(ResultSet resultSet) throws SQLException {
if(inner==null) inner = factory.newResultSetHandler(resultSet.getMetaData());
return inner.handle(resultSet);
Expand Down
11 changes: 10 additions & 1 deletion core/src/main/java/org/sql2o/GenericDatasource.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package org.sql2o;

import javax.sql.DataSource;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.Properties;
import javax.sql.DataSource;

/**
* Used internally by sql2o, if the {@link Sql2o#Sql2o(String, String, String)} constructor overload.
Expand Down Expand Up @@ -58,40 +58,49 @@ public String getPassword() {
return properties.getProperty("password");
}

@Override
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(this.getUrl(), properties);
}

@Override
public Connection getConnection(String username, String password) throws SQLException {
Properties info = new Properties(this.properties);
set(info,username,password);
return DriverManager.getConnection(this.getUrl(), info);
}

@Override
public PrintWriter getLogWriter() throws SQLException {
return DriverManager.getLogWriter();
}

@Override
public void setLogWriter(PrintWriter printWriter) throws SQLException {
DriverManager.setLogWriter(printWriter);
}

@Override
public void setLoginTimeout(int i) throws SQLException {
DriverManager.setLoginTimeout(i);
}

@Override
public int getLoginTimeout() throws SQLException {
return DriverManager.getLoginTimeout();
}

@Override
public java.util.logging.Logger getParentLogger() throws SQLFeatureNotSupportedException {
throw new SQLFeatureNotSupportedException();
}

@Override
public <T> T unwrap(Class<T> tClass) throws SQLException {
throw new SQLFeatureNotSupportedException();
}

@Override
public boolean isWrapperFor(Class<?> aClass) throws SQLException {
return false;
}
Expand Down
Loading