Skip to content

Commit

Permalink
Merge pull request #8 from yuu-nkjm/develop
Browse files Browse the repository at this point in the history
Fix bug and add tests
  • Loading branch information
yuu-nkjm authored Mar 3, 2021
2 parents 1022a45 + 2959a33 commit ef01c62
Show file tree
Hide file tree
Showing 32 changed files with 616 additions and 492 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ You can get the binary using Maven from [Central Repository](http://mvnrepositor
<dependency>
<groupId>org.nkjmlab</groupId>
<artifactId>sorm4j</artifactId>
<version>0.9.6</version>
<version>0.9.7</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.nkjmlab</groupId>
<artifactId>sorm4j</artifactId>
<version>0.9.6</version>
<version>0.9.7</version>
<name>sorm4j</name>
<description>Simple micro Object-Relation Mapper for Java</description>
<url>https://github.com/yuu-nkjm/sorm4j</url>
Expand Down
25 changes: 17 additions & 8 deletions src/main/java/org/nkjmlab/sorm4j/LazyResultSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import org.nkjmlab.sorm4j.mapping.AbstractOrmMapper;
import org.nkjmlab.sorm4j.util.Try;

/**
* Represents a result set from database.
Expand Down Expand Up @@ -41,7 +43,7 @@ public LazyResultSet(AbstractOrmMapper ormMapper, Class<T> objectClass, Prepared
* @return
*/
public T one() {
T ret = ormMapper.loadOne(objectClass, resultSet);
T ret = Try.getOrThrow(() -> ormMapper.loadOne(objectClass, resultSet), OrmException::new);
close();
return ret;
}
Expand All @@ -52,7 +54,7 @@ public T one() {
* @return
*/
public T first() {
T ret = ormMapper.loadFirst(objectClass, resultSet);
T ret = Try.getOrThrow(() -> ormMapper.loadFirst(objectClass, resultSet), OrmException::new);
close();
return ret;
}
Expand All @@ -63,13 +65,15 @@ public T first() {
* @return
*/
public List<T> toList() {
List<T> ret = ormMapper.loadPojoList(objectClass, resultSet);
List<T> ret =
Try.getOrThrow(() -> ormMapper.loadPojoList(objectClass, resultSet), OrmException::new);
close();
return ret;
}

public Map<String, Object> oneMap() {
Map<String, Object> ret = ormMapper.loadOneMap(resultSet);
Map<String, Object> ret =
Try.getOrThrow(() -> ormMapper.loadOneMap(resultSet), OrmException::new);
close();
return ret;
}
Expand All @@ -80,7 +84,8 @@ public Map<String, Object> oneMap() {
* @return
*/
public Map<String, Object> firstMap() {
Map<String, Object> ret = ormMapper.loadFirstMap(resultSet);
Map<String, Object> ret =
Try.getOrThrow(() -> ormMapper.loadFirstMap(resultSet), OrmException::new);
close();
return ret;
}
Expand All @@ -92,7 +97,8 @@ public Map<String, Object> firstMap() {
* @return
*/
public List<Map<String, Object>> toMapList() {
List<Map<String, Object>> ret = ormMapper.loadMapList(resultSet);
List<Map<String, Object>> ret =
Try.getOrThrow(() -> ormMapper.loadMapList(resultSet), OrmException::new);
close();
return ret;
}
Expand Down Expand Up @@ -137,8 +143,11 @@ private final class LazyResultSetIterator<S> implements Iterator<S> {
@SuppressWarnings("unchecked")
public LazyResultSetIterator(AbstractOrmMapper orMapper, Class<S> objectClass,
PreparedStatement stmt, ResultSet resultSet) {
this.getFunction = objectClass.equals(Map.class) ? () -> (S) orMapper.toSingleMap(resultSet)
: () -> orMapper.toSingleObject(objectClass, resultSet);
this.getFunction = objectClass.equals(LinkedHashMap.class)
? Try.createSupplierWithThrow(() -> (S) orMapper.toSingleMap(resultSet),
OrmException::new)
: Try.createSupplierWithThrow(() -> orMapper.toSingleObject(objectClass, resultSet),
OrmException::new);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.Optional;
Expand Down Expand Up @@ -37,11 +38,12 @@ public interface ColumnFieldMapper extends OrmConfig {
*/
List<Column> getColumnNameCandidates(List<FieldName> fieldNames);

List<Column> getAutoGeneratedColumns(DatabaseMetaData metaData, String tableName);
List<Column> getAutoGeneratedColumns(DatabaseMetaData metaData, String tableName)
throws SQLException;

List<Column> getColumns(DatabaseMetaData metaData, String tableName);
List<Column> getColumns(DatabaseMetaData metaData, String tableName) throws SQLException;

List<String> getPrimaryKeys(DatabaseMetaData metaData, String tableName);
List<String> getPrimaryKeys(DatabaseMetaData metaData, String tableName) throws SQLException;



Expand Down
9 changes: 5 additions & 4 deletions src/main/java/org/nkjmlab/sorm4j/config/TableNameMapper.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.nkjmlab.sorm4j.config;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import org.nkjmlab.sorm4j.mapping.TableName;

public interface TableNameMapper extends OrmConfig {
Expand All @@ -9,11 +10,11 @@ public interface TableNameMapper extends OrmConfig {
* Get table name corresponding with the object class.
*
* @param objectClass object class mapping to table
* @param connection
* @param metaData
* @return table name exists in database.
*/
TableName getTableName(Class<?> objectClass, Connection connection);
TableName getTableName(Class<?> objectClass, DatabaseMetaData metaData) throws SQLException;

TableName toValidTableName(String tableName, Connection connection);
TableName toValidTableName(String tableName, DatabaseMetaData metaData) throws SQLException;

}
Loading

0 comments on commit ef01c62

Please sign in to comment.