All pages
Powered by GitBook
1 of 1

Loading...

Connector/J 3.1.0 Release Notes

Download | Release Notes | Changelog |

Release date: 15 Nov 2022

MariaDB Connector/J 3.1.0 is a Stable (GA) release.

Performance

Other than features, connector permit significant performance improvements, reaching the same level of performance than c connector

Most significant change are :

  • improve performance reading big result-set

  • avoid creating array when receiving server packet

  • pipelining sent (PREPARE+EXECUTE) are now sent into a single buffer, permitting in some case to have only one TCP-IP packet for 2 mysql packet.

Benchmark using JMH one a single 4 core ubuntu 22.04 server (AWS c5.xlarge) shows :

simple resultset command : "Select 1"

Client side prepared statement parsing : "DO 1000 parameters"

resultset with lots of columns : ""select 1 row from a 100 int columns"

UUID Object support

Since MariaDB server 10.7, a new UUID data format is supported. getter and setter can now pass java.util.UUID parameter (i.e. PrepareStatement setObject(index, ) / Resultset getObject(index, UUID.class) )

Resultset.getObject without class or type precision will now return UUID object for UUID fields by default

UUID metadata

Metadata for UUID fields will now return ResultSetMetaData.getColumnTypeName(index) => "uuid" ResultSetMetaData.getColumnClassName(index) => "java.util.UUID" ResultSetMetaData.getColumnType(index) => Types.OTHER

replacing :

ResultSetMetaData.getColumnTypeName(index) => "CHAR" ResultSetMetaData.getColumnClassName(index) => "java.lang.String" ResultSetMetaData.getColumnType(index) => Types.CHAR

For compatibility, a new option uuidAsString permit to consider UUID as String like previously.

Other changes

  • load balance hosts are now chosen using ROUND ROBIN in place of RANDOM

  • default value for socket option useReadAheadInput change to false.

Changelog

For a complete list of changes made in MariaDB Connector/J 3.1.0, with links to detailed information on each push, see the .

CONJ-1009
CONJ-1014
CONJ-1015
CONJ-992
CONJ-1008
changelog
select1
do1000params
select100intcols
@Benchmark
  public int run(MyState state) throws Throwable {
    try (Statement st = state.connectionText.createStatement()) {
      ResultSet rs = st.executeQuery("select 1");
      rs.next();
      return rs.getInt(1);
    }
  }
private static final String sql;

  static {
    StringBuilder sb = new StringBuilder("do ?");
    for (int i = 1; i < 1000; i++) {
      sb.append(",?");
    }
    sql = sb.toString();
  }

  @Benchmark
  public int text(MyState state) throws Throwable {
    try (PreparedStatement st = state.connectionText.prepareStatement(sql)) {
      for (int i = 1; i <= 1000; i++) {
        st.setInt(i, i);
      }
      return st.executeUpdate();
    }
  }
@Benchmark
  public int[] text(MyState state) throws Throwable {
    try (PreparedStatement prep = state.connectionText.prepareStatement("select * FROM test100")) {
      ResultSet rs = prep.executeQuery();
      rs.next();
      int[] objs = new int[100];
      for (int i = 0; i < 100; i++) {
        objs[i] = rs.getInt(i + 1);
      }
      return objs;
    }
  }

For an overview of MariaDB Connector/J see the page

The most recent release of is:

Connector/J 3.5.6 Download Now

About MariaDB Connector/J
About MariaDB Connector/J
MariaDB Connector/J

This page is: Copyright © 2025 MariaDB. All rights reserved.