jdbc优化
This commit is contained in:
@@ -2150,15 +2150,17 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
|||||||
try {
|
try {
|
||||||
String prepareSQL = info.getFindQuestionPrepareSQL(ids[0]);
|
String prepareSQL = info.getFindQuestionPrepareSQL(ids[0]);
|
||||||
PreparedStatement ps = conn.prepareStatement(prepareSQL);
|
PreparedStatement ps = conn.prepareStatement(prepareSQL);
|
||||||
|
DataJdbcResultSet rr = new DataJdbcResultSet(info);
|
||||||
for (Serializable pk : ids) {
|
for (Serializable pk : ids) {
|
||||||
ps.setObject(1, pk);
|
ps.setObject(1, pk);
|
||||||
}
|
|
||||||
ResultSet set = ps.executeQuery();
|
ResultSet set = ps.executeQuery();
|
||||||
final DataResultSet rr = createDataResultSet(info, set);
|
rr.resultSet(set);
|
||||||
while (set.next()) {
|
if (set.next()) {
|
||||||
list.add(getEntityValue(info, null, rr));
|
list.add(getEntityValue(info, null, rr));
|
||||||
|
} else {
|
||||||
|
list.add(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
set.close();
|
|
||||||
ps.close();
|
ps.close();
|
||||||
slowLog(s, prepareSQL);
|
slowLog(s, prepareSQL);
|
||||||
return list;
|
return list;
|
||||||
@@ -2553,10 +2555,24 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static DataResultSet createDataResultSet(EntityInfo info, ResultSet set) {
|
public static DataResultSet createDataResultSet(EntityInfo info, ResultSet set) {
|
||||||
|
return new DataJdbcResultSet(info).resultSet(set);
|
||||||
|
}
|
||||||
|
|
||||||
final ResultSet rr = set;
|
protected static class DataJdbcResultSet implements DataResultSet {
|
||||||
|
|
||||||
return new DataResultSet() {
|
EntityInfo info;
|
||||||
|
|
||||||
|
ResultSet rr;
|
||||||
|
|
||||||
|
public DataJdbcResultSet(EntityInfo info) {
|
||||||
|
this.info = info;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataJdbcResultSet resultSet(ResultSet set) {
|
||||||
|
this.rr = set;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> Serializable getObject(Attribute<T, Serializable> attr, int index, String column) {
|
public <T> Serializable getObject(Attribute<T, Serializable> attr, int index, String column) {
|
||||||
@@ -2666,8 +2682,6 @@ public class DataJdbcSource extends AbstractDataSqlSource {
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected class ConnectionPool implements AutoCloseable {
|
protected class ConnectionPool implements AutoCloseable {
|
||||||
|
|||||||
Reference in New Issue
Block a user