This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new ec218d4 Batch insert return id (#10651)
ec218d4 is described below
commit ec218d434ba236fe6ff58d947c618c7e7a6f6f81
Author: zhaojinchao <[email protected]>
AuthorDate: Fri Jul 2 09:25:59 2021 +0800
Batch insert return id (#10651)
* load auto generate
* remove import
* modify test
* modify ut
* remove pasword
* reset password
* close statement
* add Statement.RETURN_GENERATED_KEYS add ut
Co-authored-by: zhaojinchao <[email protected]>
---
.../schema/builder/loader/ColumnMetaDataLoader.java | 12 +++++-------
.../jdbc/core/statement/EncryptPreparedStatementTest.java | 14 +++++++++++++-
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
index 9d961c8..3055fa7 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/metadata/schema/builder/loader/ColumnMetaDataLoader.java
@@ -49,7 +49,7 @@ public final class ColumnMetaDataLoader {
/**
* Load column meta data list.
- *
+ *
* @param connection connection
* @param tableNamePattern table name pattern
* @param databaseType database type
@@ -77,14 +77,12 @@ public final class ColumnMetaDataLoader {
}
}
try (Statement statement = connection.createStatement(); ResultSet
resultSet = statement.executeQuery(generateEmptyResultSQL(tableNamePattern,
databaseType))) {
- for (String each : columnNames) {
-
isCaseSensitives.add(resultSet.getMetaData().isCaseSensitive(resultSet.findColumn(each)));
+ for (int i = 0; i < columnNames.size(); i++) {
+
isCaseSensitives.add(resultSet.getMetaData().isCaseSensitive(resultSet.findColumn(columnNames.get(i))));
+ result.add(new ColumnMetaData(columnNames.get(i),
columnTypes.get(i), isPrimaryKeys.get(i),
+ resultSet.getMetaData().isAutoIncrement(i + 1),
isCaseSensitives.get(i)));
}
}
- for (int i = 0; i < columnNames.size(); i++) {
- // TODO load auto generated from database meta data
- result.add(new ColumnMetaData(columnNames.get(i),
columnTypes.get(i), isPrimaryKeys.get(i), false, isCaseSensitives.get(i)));
- }
return result;
}
diff --git
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
index af3de74..34ec176 100644
---
a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
+++
b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/statement/EncryptPreparedStatementTest.java
@@ -95,6 +95,18 @@ public final class EncryptPreparedStatementTest extends
AbstractShardingSphereDa
}
@Test
+ public void assertInsertWithBatchExecuteWithGeneratedKeys() throws
SQLException {
+ try (PreparedStatement statement =
getEncryptConnection().prepareStatement(INSERT_GENERATED_KEY_SQL,
Statement.RETURN_GENERATED_KEYS)) {
+ statement.setObject(1, 'b');
+ statement.addBatch();
+ statement.setObject(1, 'c');
+ statement.addBatch();
+ statement.executeBatch();
+ }
+ assertResultSet(3, 2, "encryptValue", "assistedEncryptValue");
+ }
+
+ @Test
public void assertDeleteWithExecute() throws SQLException {
try (PreparedStatement statement =
getEncryptConnection().prepareStatement(DELETE_SQL)) {
statement.setObject(1, 'a');
@@ -219,7 +231,7 @@ public final class EncryptPreparedStatementTest extends
AbstractShardingSphereDa
assertThat(metaData.getColumnCount(), is(3));
for (int i = 0; i < metaData.getColumnCount(); i++) {
assertThat(metaData.getColumnLabel(1), is("id"));
- assertThat(metaData.getColumnLabel(2), is("plain_pwd"));
+ assertThat(metaData.getColumnLabel(2), is("plain_pwd"));
assertThat(metaData.getColumnLabel(3), is("plain_pwd2"));
}
}