Skip to content

Releases: mybatis/mybatis-3

Mybatis 3.6.0

Choose a tag to compare

@hazendaz hazendaz released this 23 Oct 04:15
Immutable release. Only release title and notes can be modified.
mybatis-3.6.0
73a0c5d

What's Changed

  • Release 3.5.18 by @hazendaz in #3369
  • Raise to 3.6.0 snapshot and require java 11 by @hazendaz in #3370
  • [ci] Update copyright to 2025. by @hazendaz in #3371
  • chore(deps): update dependency org.assertj:assertj-core to v3.27.1 by @renovate[bot] in #3374
  • 101: Add support for immutable collection constructor creation by @epochcoder in #3108
  • Revert #3349 by @epochcoder in #3375
  • chore(deps): update mockito monorepo to v5.15.2 by @renovate[bot] in #3376
  • Drop java8 fallback by @harawata in #3372
  • Update the Chinese language documentation for affectData configuration by @luozongle01 in #3373
  • Improve Cursor Closeable behavior by @hutteman in #1494
  • Shared ambiguity instance by @nieqiurong in #3146
  • TypeParameterResolver : refactoring, improvements by @harawata in #3380
  • Replace deprecated isAccessible() with canAccess() by @harawata in #3383
  • Pass docker image name to constructors by @harawata in #3384
  • chore(deps): update dependency org.assertj:assertj-core to v3.27.2 by @renovate[bot] in #3382
  • Avoid java.sql.Date vs. java.util.Date mixup by @harawata in #3385
  • oracle implicit cursor workaround by @harawata in #3387
  • chore(deps): update dependency ch.qos.logback:logback-classic to v1.5.16 by @renovate[bot] in #3389
  • Update configuration setting to change case and Chinese Translation by @luozongle01 in #3386
  • chore(deps): update dependency ognl:ognl to v3.4.5 by @renovate[bot] in #3390
  • resultMap.hasResultMapsUsingConstructorCollection should stay false if type handler is specified by @harawata in #3391
  • [git] Ignore profiler directory and define how to use in extension by @hazendaz in #3392
  • feat: ensure code is formatted and imports are sorted before commit by @epochcoder in #3381
  • typo: fix some typo by @tanpenggood in #2941
  • chore(deps): update dependency org.postgresql:postgresql to v42.7.5 by @renovate[bot] in #3394
  • docs: Move formatting section to CONTRIBUTING.md, add Sonar build badge by @epochcoder in #3395
  • chore(deps): update dependency org.assertj:assertj-core to v3.27.3 by @renovate[bot] in #3397
  • chore(deps): update byte-buddy.version to v1.16.1 by @renovate[bot] in #3398
  • chore(deps): update dependency com.mysql:mysql-connector-j to v9.2.0 by @renovate[bot] in #3399
  • When javaType has not (or partially) been specified, determine the best matching constructor by @epochcoder in #3378
  • Support nested cursor by @harawata in #3388
  • Handle <bind> correctly inside <foreach> by @harawata in #2760
  • chore(deps): update byte-buddy.version to v1.17.0 by @renovate[bot] in #3403
  • chore(deps): update dependency com.oracle.database.jdbc:ojdbc11 to v23.7.0.25.01 by @renovate[bot] in #3405
  • chore(deps): update dependency commons-logging:commons-logging to v1.3.5 by @renovate[bot] in #3406
  • chore(deps): update byte-buddy.version to v1.17.1 by @renovate[bot] in #3409
  • chore(deps): update testcontainers-java monorepo to v1.20.5 by @renovate[bot] in #3413
  • chore(deps): update junit5 monorepo to v5.12.0 by @renovate[bot] in #3416
  • chore(deps): update dependency ognl:ognl to v3.4.6 by @renovate[bot] in #3417
  • Update MapperMethodInvoker to public by @brucelwl in #3415
  • chore(deps): update dependency ch.qos.logback:logback-classic to v1.5.17 by @renovate[bot] in #3420
  • chore(deps): update dependency org.slf4j:slf4j-api to v2.0.17 by @renovate[bot] in #3421
  • chore(deps): update byte-buddy.version to v1.17.2 by @renovate[bot] in #3423
  • chore(deps): update mockito monorepo to v5.16.0 by @renovate[bot] in #3424
  • chore(deps): update testcontainers-java monorepo to v1.20.6 by @renovate[bot] in #3425
  • Reuse SqlNode instance created for virtually empty text node by @nieqiurong in #3418
  • chore(deps): update junit5 monorepo to v5.12.1 by @renovate[bot] in #3432
  • Resolve type handler based on java.lang.reflect.Type instead of Class and respect runtime JDBC type by @harawata in #3379
  • chore(deps): update mockito monorepo to v5.16.1 by @renovate[bot] in #3433
  • fix(deps): update dependency com.microsoft.sqlserver:mssql-jdbc to v12.10.0.jre11 by @renovate[bot] in #3434
  • chore(deps): update dependency ch.qos.logback:logback-classic to v1.5.18 by @renovate[bot] in #3435
  • Update dynamic-sql.xml (Japanese translation) by @luxun1910 in #3439
  • chore(deps): update byte-buddy.version to v1.17.3 by @renovate[bot] in #3440
  • chore(deps): update byte-buddy.version to v1.17.4 by @renovate[bot] in #3441
  • chore(deps): update dependency ognl:ognl to v3.4.7 by @renovate[bot] in #3443
  • chore(deps): update byte-buddy.version to v1.17.5 by @renovate[bot] in #3444
  • chore(deps): update mockito monorepo to v5.17.0 by @renovate[bot] in #3446
  • chore(deps): update dependency com.github.hazendaz.catch-exception:catch-exception to v2.3.4 by @renovate[bot] in #3450
  • chore(deps): update junit5 monorepo to v5.12.2 - autoclosed by @renovate[bot] in #3449
  • Unknown element inside <choose> should throw exception by @harawata in #3456
  • chore(deps): update testcontainers-java monorepo to v1.21.0 by @renovate[bot] in #3458
  • [gha] Update all actions by @hazendaz in #3465
  • chore(deps): update dependency com.mysql:mysql-connector-j to v9.3.0 by @renovate[bot] in #3464
  • [gha] Update codeql by @hazendaz in #3466
  • fix(deps): update dependency org.mybatis:mybatis-parent to v49 by @renovate[bot] in #3467
  • [mvn] Update settings to central by @hazendaz in #3468
  • chore(deps): update dependency com.oracle.database.jdbc:ojdbc11 to v23.8.0.25.04 by @renovate[bot] in #3469
  • chore(deps): update mockito monorepo to v5.18.0 by @renovate[bot] in #3473
  • [ci] Formatting by @hazendaz in #3474
  • Add tests to ensure fetchSize is applied to Statement by @quaff in #3454
  • TrimSqlNode should add an extra space when concatenating its contents like MixedSqlNode does by @harawata in #3422
  • Modernize move to NIO by @hazendaz in #3475
  • chore(deps): update dependency org.postgresql:postgresql to v42.7.6 by @renovate[bot] in #3476
  • chore(deps): update testcontainers-java monorepo to v1.21.1 by @renovate[bot] in #3477
  • fix(deps): update dependency org.mybatis:mybatis-parent to v50 by @renovate[bot] in #3481
  • chore(deps): update junit5 monorepo to v5.13.0 by @renovate[bot] in #3478
  • chore(deps): update junit5 monorepo to v5.13.1 by @renovate[bot] in #3483
  • chore(deps): update dependency maven to v3.9.10 by @renovate[bot] in #3482
  • chore(deps): update dependency org.postgresql:postgresql to v42.7.7 [security] by @renovate[bot] in #3486
  • Bump org.postgresql:postgresql from 42.7.6 to 42.7.7 by @dependabot[bot] in #3485
  • fix some typos by @yanxutao89 in https://github.com/mybatis/mybatis-3/pull...
Read more

Mybatis 3.5.19

Choose a tag to compare

@hazendaz hazendaz released this 02 Jan 20:39

Revert Regression introduced by #3349.

Mybatis 3.5.18

Choose a tag to compare

@hazendaz hazendaz released this 01 Jan 03:46

Regressions

  • Fixed issue in 3.5.17 #3334

New

  • Ignore empty xnode per #3349
  • Share expression validator #3339
  • Throw helpful error instead of IndexOutOfBoundsException (automapping) #3327
  • Optimize mapper builder #3252

Tests

  • Add TransactionFactory, Transaction test cases #3277

Build

  • Reworked pom to match current java 17 build usage
  • Moved all tests to newer java standards
  • Cleaned up github actions
  • Run 'site' branch only on release commits

Support Notice: This is expected last java 8 release, A new branch support-java8 will be created from this point in case older support needs a fix. After this, master will move to java 11 for one release in order to start bringing code support up to java 11. After that, a support-java11 will be created then master will move to java 17 or better only. This will change the plans slightly as doing this means java 11 will be 3.6.0 and temporary in nature whereas anything discussed for 3.6.0 will move to 3.7.0. Once at java 17, same java application will occur. After that point, anything previously discussed for the original 3.6.0 can start coming in.

mybatis-3.5.17

Choose a tag to compare

@harawata harawata released this 26 Nov 16:55

Bugs:

  • VendorDatabaseIdProvider#getDatabaseId() should return product name when properties is empty #3297
  • Update NClobTypeHandler to use methods for national character set #3298

Enhancements:

  • Allow DefaultSqlSessionFactory to provide a custom SqlSession #3128

There also are many pull requests for document updates and code improvements!
Please see the full changelog: mybatis-3.5.16...mybatis-3.5.17

mybatis-3.5.16

Choose a tag to compare

@harawata harawata released this 04 Apr 10:26

Security:

  • Prevent Invocation from being used by vulnerable applications. #3115

Bugs:

  • When database ID resolution is failed, invalid bound statement is used. #3040

Enhancements:

  • It is now possible to write a custom map wrapper to customize how to map column name with dots or brackets. #13 #3062

Performance:

  • Improved compatibility with Virtual Threads introduced by Loom.
  • Reduced memory footprint when performing the default (i.e. order based) constructor auto-mapping. #3113

Build:

  • Include the shaded libraries (OGNL and Javassist) in the sources.jar.

Please see the 3.5.16 milestone page or commit log for the complete list of changes.

Mybatis 3.5.15

Choose a tag to compare

@hazendaz hazendaz released this 14 Dec 06:41

Changes

  • XNode#toString() should output all child nodes. See #3001 and associated tickets on this issue
  • Fix performance of mappedColumnNames.contains by using 'set' rather than 'list'. See #3023
  • Fix osgi issue with javassist. See #3031
  • Updated shaded OGNL to 3.4.2. See #3035
  • Add support method for generating dynamic sql on SQL class. See #2887
  • General library updates
  • General document updates

Build

  • We now show builds from java 11, 17, 21, and 22 on Github Actions. Code is still java 8 compatible at this time.
  • Update vulnerable hsqldb to 2.7.2 fixing our tests that now work due to newer support. Note, users were never affected by this but at least one user pull request was attempted opened in addition to both renovate and dependabot and various reporting on it.
  • Now using more properties to define versions in pom to lower the frequency of pull requests from renovate

Site

  • We have moved to maven site 4.0.0 using site xsd 2.0.0. This resulted in us needing to turn off the PDF documentation of our site. Please just use our site pages for now.
  • Due to site changes, if anyone finds any issues, please be sure to report them as the upgrade path with maven has been disappointing at best. We believe we got all setup correctly but will fix anything as quickly as discovered problematic. We apologize in advance of this situation as we work through maven 4 site changes.

mybatis-3.5.14

Choose a tag to compare

@harawata harawata released this 03 Nov 06:27

Bug fixes:

  • Registered type handler is not used for anonymous enums #2956
  • Discriminator does not work in constructor mapping #2913

There is no known backward incompatible change since 3.5.13.

Please see the 3.5.14 milestone page for the complete list of changes.

mybatis-3.5.13

Choose a tag to compare

@harawata harawata released this 11 Mar 12:15

This is a maintenance release to address the regression bug found in 3.5.12.

Bug fix:

  • Unable to resolve result type when the target property has a getter with different return type #2834

Mybatis 3.5.12 Release

Choose a tag to compare

@hazendaz hazendaz released this 01 Mar 04:17

"The Great Cleanup"

User impactful changes

  • #2703 Referencing collection parameter by name fails fixing #2693

  • #2709 Fix a race condition caused by other threads calling mapper methods while mapped tables are being constructed

  • #2727 Enable ability to provide custom configuration to XMLConfigBuilder

  • #2731 Adding mapper could fail under JPMS

  • #2741 Add 'affectedData' attribute to @select, @SelectProvider, and <select />

  • #2767 Resolve resultType by namespace and id when not provided resultType and resultMap

  • #2804 Search readable property when resolving constructor arg type by name

  • Minor correction: 'boolean' can never be null (primative)

  • General library updates

  • Uses parameters option for compiler now (needed by spring boot 3) (for reflection needs)

Code cleanup

  • #2816 Use open rewrite to partially cleanup java code
  • #2817 Add private constructors per open rewrite
  • #2819 Add final where appropriate per open rewrite
  • #2825 Cleanup if statement breaks / return logic
  • #2826 Eclipse based cleanup

Build

  • #2820 Remove test ci group profile in favor of more direct usage on GH-Actions and update deprecated surefire along in overview in README.md
  • Adjustments to build so shaded ognl and javassist no longer throw warnings
  • Build with jdk 21-ea as well now
  • Various test cleanup, updates, and additions
  • Turn on auto formatting of all java code including note to contributors on readme to skip formatting when necessary in code blocks
  • Tests may use jdk 11 now while retaining jdk 8 runtime
  • Pom cleanup / better clarification on parameters

Documentation

  • Various documentation updates

For Contributors:

  • Mybatis is now using auto formatting of the code base. If contribution needs special formatting such as annotations or specific javadocs that conflict with formatting rules, use // @formatter:off and // @formatter:on around block of code to be ignored on formatting. If within a javadoc, since its a comment type, the entire thing is affected so just wrap this around the entire javadoc. Try to ensure code inside the non formatting block is appropriately formatted otherwise to ease readability.

What's Changed

Read more

mybatis-3.5.11

Choose a tag to compare

@harawata harawata released this 18 Sep 21:22

Bug fixes:

  • OGNL could throw IllegalArgumentException when invoking inherited method. #2609
  • returnInstanceForEmptyRow is not applied to constructor auto-mapping. #2665

There is no known backward incompatible change since 3.5.10.

Please see the 3.5.11 milestone page for the complete list of changes.