com.mysql.cj.xdevapi

## Class ClientFactory

- java.lang.Object
- - com.mysql.cj.xdevapi.ClientFactory

    public class ClientFactory
    extends Object

ClientFactory is used for creation of `Client` instances. `Client` objects provide the means of creating `Session`s that use an internally managed connection pool.

     ClientFactory xClientFactory = new ClientFactory();

     Client client1 = xClientFactory.getClient("mysqlx://[user1[:pwd1]@]host1[:port1]/db", poolingProps);
     Client client2 = xClientFactory.getClient("mysqlx://host2[:port2]/db?user=user2&password=pwd2", poolingProps);

### Constructor Summary

Constructors
`ClientFactory()`

### Method Summary

All Methods Instance Methods Concrete Methods
`Client` `getClient(String url, Properties clientProps)` Creates a `Client` object that provides a Session pooling functionality.
`Client` `getClient(String url, String clientPropsJson)` Creates a `Client` object which provides a Session pooling functionality.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ClientFactory

    public ClientFactory()

### Method Detail

#### getClient

    public Client getClient(String url,
                            String clientPropsJson)

Creates a `Client` object which provides a Session pooling functionality.

Parameters:
  `url` - the session URL.
  `clientPropsJson` - JSON string representing a document that defines connection properties in a special format. For pooling configuration, it should contain an embedded document after the "pooling" key:

       pooling : {
           enabled: true|false,
           maxSize: integer > 0,
           maxIdleTime: integer ≥ 0,
           queueTimeout: integer ≥ 0
       }

Returns:
  a `Client` instance

#### getClient

    public Client getClient(String url,
                            Properties clientProps)

Creates a `Client` object that provides a Session pooling functionality.

Parameters:
  `url` - the session URL.
  `clientProps` - the `Properties` instance that contains the connection properties. The keys in this `Properties` match with the path of each value in the JSON document from `getClient(String, String)` (for example, `pooling.enabled` or `pooling.maxSize`).
Returns:
  a `Client` instance.

Copyright © 2016, 2026, Oracle and/or its affiliates.