Sam Brannen
122372c580
Spring cleaning: update copyright headers
2024-02-23 12:21:22 +01:00
Sam Brannen
eb8492d597
Spring cleaning: avoid use of Iterator for Iterable
2024-02-23 12:21:12 +01:00
Sam Brannen
c98bebd6d3
Spring cleaning: add missing @Override annotations
2024-02-23 12:20:11 +01:00
Juergen Hoeller
229214a9b0
Merge branch '6.1.x'
...
# Conflicts:
# spring-jdbc/src/main/java/org/springframework/jdbc/JdbcUpdateAffectedIncorrectNumberOfRowsException.java
2024-02-22 17:01:04 +01:00
Juergen Hoeller
4dc3eac864
Polishing
2024-02-22 16:56:22 +01:00
cboy
00edba07ff
Polishing Javadoc ( #32313 )
2024-02-22 15:21:33 +01:00
Patrick Strawderman
e1a32d4ba9
Avoid resizing of fixed-size HashSet/LinkedHashSet variants
...
Add helpers to CollectionUtils for building HashSets and LinkedHashSets
that can hold an expected number of elements without needing to
resize/rehash.
Closes gh-32291
2024-02-21 16:19:53 +01:00
Stéphane Nicoll
6383a0d7ca
Merge branch '6.1.x'
2024-02-21 15:55:55 +01:00
Stéphane Nicoll
5d6501c75e
Revisit stored procedure detection
...
This commit revisits the improved detection algorithm for stored
procedure as, unfortunately, certain JDBC drivers do not support
the documented pattern for schema and procedure name.
To work around this limitation, this commit applies the escaping of
wildcard characters to the case where multiple procedures have been
found for a given search.
Closes gh-32295
2024-02-21 15:54:34 +01:00
Sam Brannen
d86af57e0f
Polishing
2024-02-17 16:00:58 +01:00
Juergen Hoeller
7ee8e66c7f
Avoid internal lifecycle synchronization in favor of lifecycle lock
...
Closes gh-32284
2024-02-16 12:42:39 +01:00
Sam Brannen
b6df5a677e
Polishing
2024-02-16 11:41:22 +01:00
Juergen Hoeller
7ad197e8e1
Deprecate LobHandler and SqlXmlHandler abstractions
...
Including SqlLobValue and related support classes.
Closes gh-32179
2024-02-15 17:26:49 +01:00
Stéphane Nicoll
2fc8b13dd5
Add support for MySQL backticks
...
This commit makes sure that content within backticks are skipped
when parsing a SQL statement using NamedParameterUtils. This harmonizes
the current behavior of ignoring special characters that are wrapped
in backticks.
Closes gh-31944
2024-02-15 14:41:30 +01:00
Stéphane Nicoll
18ea43c905
Allow customizations of embedded database connections
...
This commit allows EmbeddedDatabaseConfigurer instances to be further
customized if necessary. EmbeddedDatabaseBuilder has a way now to set
a DatabaseConfigurer rather than just a type to provide full control,
or customize an existing supported database type using the new
EmbeddedDatabaseConfigurers#customizeConfigurer callback.
Closes gh-21160
2024-02-15 13:46:49 +01:00
Juergen Hoeller
341ac76209
Rely on HashSet for uniqueness of mapped names
...
See gh-32199
2024-02-06 08:20:15 +01:00
Juergen Hoeller
8ff102115a
Let BeanPropertyRowMapper subclasses customize mapped names
...
Closes gh-32199
2024-02-05 18:24:38 +01:00
Juergen Hoeller
00577ed80a
Polishing
2024-01-31 17:12:20 +01:00
Juergen Hoeller
d586513d66
Introduce SqlBinaryValue/SqlCharacterValue as alternative to SqlLobValue
...
Includes direct byte array support via setBytes in StatementCreatorUtils.
Closes gh-32161
2024-01-31 17:12:05 +01:00
Stéphane Nicoll
ef2cae36ac
Polish contribution
...
See gh-32164
2024-01-31 08:57:11 +01:00
Yanming Zhou
efaf41862c
Polish StatementCreatorUtilsTests
...
See gh-32164
2024-01-31 08:56:59 +01:00
Juergen Hoeller
a44341ece3
Consistent method declaration order in Call/TableMetaDataProvider
2024-01-29 15:25:55 +01:00
Juergen Hoeller
2e9d6a1d4e
Polishing
2024-01-29 13:04:42 +01:00
Stéphane Nicoll
ad7c090f4c
Use catalog name in SimpleJdbcInsert
...
This commit harmonizes SimpleJdbcCall and SimpleJdbcInsert to
consistently use a catalog name if one is set. Previously,
SimpleJdbcInsert only used the catalog name to retrieve database
metadata.
Closes gh-32124
2024-01-26 17:58:41 +01:00
Stéphane Nicoll
f5b0d9509d
Polish
2024-01-17 18:41:15 +01:00
Juergen Hoeller
4d11307b84
Polishing
2024-01-09 11:55:04 +01:00
Stéphane Nicoll
1f2d29ee08
Polish
2024-01-08 17:12:33 +01:00
Stéphane Nicoll
2d3b02a89d
Polish
2024-01-08 11:48:08 +01:00
Stéphane Nicoll
87b35e7d8e
Polish
2024-01-06 09:21:16 +01:00
Stéphane Nicoll
534d3229fe
Polish
2024-01-05 10:46:00 +01:00
Stéphane Nicoll
3c5d46166e
Polish "Replace if with switch where feasible"
...
See gh-31916
2023-12-28 13:33:32 +01:00
Yanming Zhou
cfa3aa001f
Replace if with switch where feasible
...
See gh-31916
2023-12-28 13:29:50 +01:00
Stéphane Nicoll
7e5afc8bbb
Update copyright year of changed files
...
See gh-31913
2023-12-28 11:47:17 +01:00
Yanming Zhou
7474af4f09
Cleanup kotlin sources
...
1. remove unused import
2. remove redundant semicolon
3. remove redundant empty constructor and SAM-constructor
4. remove unnecessary type argument
5. adjust indent
See gh-31913
2023-12-28 11:46:47 +01:00
Juergen Hoeller
a428955438
Avoid unnecessary DatabasePopulator init/destroy processing
...
Closes gh-23405
2023-12-23 13:40:12 +01:00
Juergen Hoeller
a23375c49d
Document JDBC driver requirement for KeyHolder-based update methods
...
Closes gh-31486
2023-12-19 17:53:32 +01:00
Sam Brannen
c0683cd30b
Update copyright headers
2023-12-12 14:51:03 +01:00
Sam Brannen
b6364e3665
Polish Javadoc
2023-12-10 18:25:01 +01:00
Juergen Hoeller
77b0382a6c
Bypass getParameterType by default for PostgreSQL and SQL Server drivers
...
Closes gh-25679
2023-12-09 20:03:51 +01:00
Juergen Hoeller
69bc4e2828
Delegation support for JDBC 4.3 ConnectionBuilder and ShardingKeyBuilder
...
Also moves ShardingKeyProvider to datasource package and declares getSuperShardingKey as default method.
Closes gh-31795
See gh-31506
2023-12-08 23:52:22 +01:00
Mohammed Bekraoui
e4e2224449
Support direct shard database operation routing in Spring JDBC ( #31506 )
...
Introduce ShardingKeyDataSourceAdapter to get shard connections.
This commit introduces a DataSource proxy, that changes the behavior of the getConnection method to use the `createConnectionBuilder()` api to acquire direct shard connections. The shard connection is acquired by specifying a `ShardingKey` that is correspondent to the wanted shard.
2023-12-08 23:09:39 +01:00
Juergen Hoeller
afc1f37616
Support for SQL Server named parameter binding (aligned with Sybase)
...
Closes gh-26072
See gh-30231
2023-12-08 16:38:43 +01:00
Giuseppe Milicia
748dd94dab
Fix Sybase SimpleJdbcCall named parameter binding
2023-12-08 16:15:51 +01:00
Henning Poettker
b3a3b79b44
Adds `MySQLIdentityColumnMaxValueIncrementer`
...
The new `DataFieldMaxValueIncrementer` can be used with identity columns in MySQL 8.0 or later.
2023-12-08 16:12:29 +01:00
Juergen Hoeller
3b4c7a8906
Revise LazyConnectionDataSourceProxy for late connection properties check
...
Includes special support for a read-only DataSource in addition to the regular target DataSource, avoiding the overhead of switching the Connection's read-only flag at the beginning and end of every transaction.
Closes gh-29931
Closes gh-31785
Closes gh-19688
Closes gh-21415
2023-12-07 23:14:17 +01:00
Sam Brannen
302cdeeee6
Clean up warnings in JdbcTransactionManagerTests
2023-12-06 21:35:02 +01:00
Yanming Zhou
afcd03bddc
Replace assertThat(x.isEmpty()).isTrue() with assertThat(x).isEmpty()
...
Search for : assertThat\((.+).isEmpty\(\)\).isTrue\(\)
Replace with : assertThat($1).isEmpty()
Search for : assertThat\((.+).isEmpty\(\)\).isFalse\(\)
Replace with : assertThat($1).isNotEmpty()
Closes gh-31758
2023-12-06 10:04:56 +01:00
Yanming Zhou
e2852e7355
Replace assertThat(x.contains(y)).isTrue() with assertThat(x).contains(y)
...
Search for : assertThat\((.+)\.contains\((.+)\)\)\.isTrue\(\)
Replace with : assertThat($1).contains($2)
Search for : assertThat\((.+)\.contains\((.+)\)\)\.isFalse\(\)
Replace with : assertThat($1).doesNotContain($2)
Closes gh-31762
2023-12-06 09:48:49 +01:00
Yanming Zhou
59815cefce
Replace assertThat(x.get(i)). with assertThat(x).element(i).
...
Search for : assertThat\((.+)\.get\((\d+)\)\)\.
Replace with : assertThat($1).element($2).
Closes gh-31759
2023-12-06 09:43:59 +01:00
Sam Brannen
ceba4162bb
Replace assertThat(!x).isTrue() with assertThat(x).isFalse()
...
Search for : assertThat\(!(.+)\).isTrue\(\)
Replace with : assertThat(\1).isFalse()
2023-12-05 11:41:57 +01:00
Juergen Hoeller
47fe61ef79
Introduce lazyTransactionalConnections flag on TransactionAwareDataSourceProxy
...
Includes revision of JDBC transaction tests.
Closes gh-29423
2023-12-04 18:24:30 +01:00
Sam Brannen
cb60f74556
Stop referring to JDO PersistenceManager in comments
2023-12-04 16:50:53 +01:00
Sam Brannen
d71853f105
Polish contribution
...
See gh-31531
2023-12-04 16:47:25 +01:00
Yanming Zhou
490b5c77fc
Use switch expression where feasible
2023-12-04 15:42:55 +01:00
Sam Brannen
6ea9fdbf77
Polishing
2023-11-30 19:04:59 +01:00
Juergen Hoeller
edfe179291
Polishing
2023-11-30 16:36:45 +01:00
Juergen Hoeller
5f9702b2a4
Introduce rollbackBeforeClose property and AutoCloseable implementation
...
Closes gh-27249
2023-11-30 16:36:32 +01:00
Juergen Hoeller
6ff75f157b
Detect current schema as indicated by JDBC Connection
...
Closes gh-28723
2023-11-24 23:24:20 +01:00
Stéphane Nicoll
34031ebea9
Escape schema and function name patterns if necessary
...
The JDBC API that retrieves a proedure or a function allows to specify
patterns for the schema and the procedure name. So far, we've called
this API with the value as is, which does not work if either contains
a wildcard characters that need to be escaped.
This commit updates GenericCallMetadataProvider to escape, if necessary,
the schema or procedure name using the search string escape from the
database metadata.
Closes gh-22725
2023-11-24 15:49:41 +01:00
Juergen Hoeller
c60926476a
Polishing
2023-11-22 12:23:24 +01:00
Juergen Hoeller
0e6bf098cb
Merge branch '6.0.x'
...
# Conflicts:
# build.gradle
# framework-platform/framework-platform.gradle
# spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/NamedParameterJdbcTemplate.java
2023-11-15 13:36:03 +01:00
Juergen Hoeller
c373f496f3
Consistent ordering of overloaded operations
2023-11-15 13:29:35 +01:00
Juergen Hoeller
01fc1ee3bb
Introduce update variant with KeyHolder and explicit key column names
...
Closes gh-31607
2023-11-15 12:20:22 +01:00
Juergen Hoeller
2b7a9209b3
Merge branch '6.0.x'
2023-11-14 12:52:25 +01:00
Juergen Hoeller
99327b7db1
Preserve nested square brackets within parameter name
...
Closes gh-31596
2023-11-14 12:51:19 +01:00
Stéphane Nicoll
f5453cc445
Polish
2023-11-10 16:42:43 +01:00
Juergen Hoeller
6c00e6162b
Merge branch '6.0.x'
...
# Conflicts:
# framework-platform/framework-platform.gradle
# spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericCallMetaDataProvider.java
2023-11-09 11:50:55 +01:00
Juergen Hoeller
9957bb6918
Check for procedure vs function constants in CallMetaDataContext
...
Closes gh-31550
2023-11-09 10:52:51 +01:00
Sam Brannen
9759bf5964
Merge branch '6.0.x'
2023-11-07 17:13:46 +01:00
Sam Brannen
c5bcfc7682
Polish contribution
...
See gh-31554
2023-11-07 17:08:44 +01:00
Sam Brannen
5752e03d97
Polishing
2023-11-07 16:58:21 +01:00
Stéphane Nicoll
c30b3796f2
Merge branch '6.0.x'
2023-11-07 10:37:22 +01:00
Stéphane Nicoll
50e55d5219
Polish "Add SAP HANA duplicate key exception error code"
...
See gh-31554
2023-11-07 10:33:14 +01:00
Fabrizio De Felice
fcd4ba2f1f
Add SAP HANA duplicate key exception error code
...
See gh-31554
2023-11-07 10:27:51 +01:00
Sam Brannen
54839a7126
Test quoted identifiers in schema in SimpleJdbcInsert
...
This commit introduces additional tests for "quoted identifier" support
in SimpleJdbcInsert when the schema itself is defined using quoted
identifiers -- for example, to use keywords as column names.
See gh-31208
2023-10-24 14:36:10 +02:00
Sam Brannen
71330ddb0f
Revise support for quoted identifiers in SimpleJdbcInsert
...
Closes gh-31208
2023-10-24 11:52:51 +02:00
Sam Brannen
a803206d5f
Polishing
2023-10-24 11:52:51 +02:00
Sam Brannen
2d792f000a
Polish "Apply SingleSpaceSeparator Checkstyle module"
...
See gh-31469
2023-10-22 14:18:18 +02:00
Johnny Lim
64e9fcad53
Apply SingleSpaceSeparator Checkstyle module
...
This commit also fixes its violations.
Closes gh-31469
2023-10-22 14:09:57 +02:00
Johnny Lim
919faa2ce2
Order modifiers to align with JLS
...
This commit also applies Checkstyle ModifierOrder to enforce it.
See gh-31368
2023-10-17 16:13:56 +02:00
Juergen Hoeller
c0d98fcc7a
Consistent Object result declarations for ResultQuerySpec
...
Closes gh-31403
2023-10-10 22:58:13 +02:00
Juergen Hoeller
de6692e7d8
Merge branch '6.0.x'
...
# Conflicts:
# spring-core/src/main/java/org/springframework/core/annotation/AnnotationTypeMapping.java
2023-10-10 21:58:31 +02:00
Juergen Hoeller
8b5d993e61
Throw IllegalArgumentException for null SQL String
...
Closes gh-31391
2023-10-10 21:55:12 +02:00
Stéphane Nicoll
61f27dafee
Polish "Use schema-based config in sql-error-codes.xml"
...
See gh-31354
2023-10-04 13:12:56 +02:00
ralph.riedel
c52645905a
Use schema-based config in sql-error-codes.xml
...
This commit replaces the reference to the beans DTD in
sql-error-codes.xml with the preferred schema-based configuration
approach.
See gh-31354
2023-10-04 13:10:40 +02:00
Sam Brannen
c45bf3c061
Merge branch '6.0.x'
2023-10-02 17:30:29 +02:00
Sam Brannen
147abc91a5
Polish BeanPropertyRowMapper Javadoc
2023-10-02 17:29:26 +02:00
Stéphane Nicoll
699947c496
Merge branch '6.0.x'
2023-10-02 15:09:12 +02:00
Stéphane Nicoll
e12eb9436d
Fix description of default behavior in BeanPropertyRowMapper
...
Closes gh-29285
2023-10-02 15:07:09 +02:00
Juergen Hoeller
38a0e17ede
Prefer query(Class) method in javadoc example
...
See gh-26594
2023-09-28 14:33:20 +02:00
Sam Brannen
d50ec68ad7
Polish contribution
...
See gh-31248
2023-09-26 13:49:03 +02:00
Lee Jaeheon
6d2d8a36c2
Introduce initialize() in AbstractRouting[DataSource|ConnectionFactory]
...
This commit introduces initialize() methods in
AbstractRoutingDataSource and AbstractRoutingConnectionFactory as an
alternative to invoking afterPropertiesSet().
Closes gh-31248
2023-09-26 13:20:11 +02:00
Sam Brannen
64b4a3cf0d
Update KeyHolder in JdbcClient when using positional parameters
...
Prior to this commit, DefaultJdbcClient updated the supplied KeyHolder
when using named parameters but not for positional parameters.
This commit refactors the creation of the
PreparedStatementCreatorFactory so that the PreparedStatementCreator
properly creates a PreparedStatement which returns generated keys.
Closes gh-31297
2023-09-22 17:21:21 +02:00
Sam Brannen
4841e52205
Rename constants in JdbcClientIndexedParameterTests
2023-09-22 16:49:46 +02:00
Stéphane Nicoll
c21a9b94c5
Polish "Allow batch update to take a KeyHolder"
...
See gh-28132
2023-09-15 16:46:21 +02:00
Chirag Tailor
78db5dd516
Allow batch update to take a KeyHolder
...
See gh-28132
2023-09-15 16:38:17 +02:00
Juergen Hoeller
550f05c9dc
Merge branch '6.0.x'
...
# Conflicts:
# spring-context/src/main/java/org/springframework/scheduling/annotation/ScheduledAnnotationBeanPostProcessor.java
2023-09-13 17:28:54 +02:00
Juergen Hoeller
659500bc1f
Polishing
2023-09-13 17:27:32 +02:00
Juergen Hoeller
ae8a353041
Reject iterable/collection value for positional parameter
...
Closes gh-31215
2023-09-13 16:50:01 +02:00
Juergen Hoeller
3099710087
Merge branch '6.0.x'
...
# Conflicts:
# spring-r2dbc/src/main/java/org/springframework/r2dbc/connection/R2dbcTransactionManager.java
# spring-r2dbc/src/test/java/org/springframework/r2dbc/connection/R2dbcTransactionManagerUnitTests.java
2023-09-11 17:40:11 +02:00