Beta Draft: 2016-06-21
The name of the class that implements
java.sql.Driver
in MySQL Connector/J is
com.mysql.cj.jdbc.Driver
.
JDBC URL Format
The general format for a JDBC URL for connecting to a MySQL server is as follows, with items in square brackets ([ ]) being optional:
jdbc:mysql://[host1
][:port1
][,[host2
][:port2
]]...[/[database
]] » [?propertyName1
=propertyValue1
[&propertyName2
=propertyValue2
]...]
Here is a simple example for a connection URL:
jdbc:mysql://localhost:3306/sakila?profileSQL=true
Supply multiple hosts for a server failover setup (see Chapter 9, Multi-Host Connections for details):
# Connection URL for a server failover setup: jdbc:mysql//primaryhost,secondaryhost1,secondaryhost2/test
There are specialized URL schemes for configuring Connector/J's multi-host functions like load balancing and replication; here are some examples (see Chapter 9, Multi-Host Connections for details):
# Connection URL for load balancing: jdbc:mysql:loadbalance://localhost:3306,localhost:3310/sakila # Connection URL for server replication: jdbc:mysql:replication://master,slave1,slave2,slave3/test
Host and Port
If no hosts are not specified, the host name defaults to
<IP_ADDRESS>
. If the port for a host is not
specified, it defaults to 3306
, the default
port number for MySQL servers.
Initial Database for Connection
If the database is not specified, the connection is made with no
default database. In this case, either call the
setCatalog()
method on the Connection
instance, or fully specify table names using the database name
(that is, SELECT
) in your SQL. Opening a
connection without specifying the database to use is generally
only useful when building tools that work with multiple
databases, such as GUI database managers.
dbname
.tablename
.colname
FROM dbname.tablename...
Always use the Connection.setCatalog()
method to specify the desired database in JDBC applications,
rather than the USE
statement.
database
Alternate Format for JDBC URLs
The following is an alternate format for JDBC URLs connecting to a MySQL server, which is mandatory for IPv6 connections, but can also be used with IPv4 (items in square brackets ([ ]) are optional):
jdbc:mysql://address=(key1
=value
)[(key2
=value
)]...[,address=(key3=value)[(key4=value)]...]...[/[database
]]» [?propertyName1
=propertyValue1
[&propertyName2
=propertyValue2
]...]
Supported key-value pairs include:
(protocol=tcp)
, or(protocol=pipe)
for named pipes on Windows.(path=
for path of named pipes. Default value for the path ispath_to_pipe
)\\.\pipe\MySQL
. Use the key-value pair to specify a custom named pipe.(host=
for TCP connections.hostname
)(port=
for TCP connections.port_number
)
For example:
jdbc:mysql://address=(protocol=tcp)(host=localhost)(port=3306)/db
Notice that the alternate format greatly simplifies the URL for
a named pipe connection on Windows. For example, to use the
default named pipe of
“\\.\pipe\MySQL
,” just
specifies:
jdbc:mysql://address=(protocol=pipe)/test
To use the custom named pipe of
“\\.\pipe\MySQL57
” :
jdbc:mysql://address=(protocol=pipe)(path=\\.\pipe\MySQL57)/test
Keys other than protocol
,
path
, host
, and
port
are treated as host-specific
configuration properties, which allow per-host overrides of
configuration properties set for multi-host connections (that
is, when using failover, load balancing, or replication). For
example:
# Connection URL in the alternate format for a server failover setup: jdbc:mysql://address=(protocol=tcp)(host=primaryhost)(port=3306),» address=(protocol=tcp)(host=secondaryhost1)(port=3310)(user=test2)/test # Connection URL in the alternate format for a load balancing setup: jdbc:mysql:loadbalance://address=(protocol=tcp)(host=localhost)(port=3306)(user=test1),» address=(protocol=tcp)(host=localhost)(port=3310)(user=test2)/sakila # Connection URL in the alternate format for a server replication setup: jdbc:mysql:replication://address=(protocol=tcp)(host=master)(port=3306)(user=test1),» address=(protocol=tcp)(host=slave1)(port=3310)(user=test2)/test
Limit the overrides to user, password, network timeouts, and statement and metadata cache sizes; the effects of other per-host overrides are not defined.
The ways to set other configuration properties for the connection are the same for the general and the alternate URL formats; see Setting Configuration Properties.
Setting Configuration Properties
Configuration properties define how Connector/J will make a
connection to a MySQL server. Unless otherwise noted, properties
can be set for a DataSource
object or for a
Connection
object.
Configuration properties can be set in one of the following ways:
-
Using the
set*()
methods on MySQL implementations ofjava.sql.DataSource
(which is the preferred method when using implementations ofjava.sql.DataSource
):com.mysql.cj.jdbc.jdbc2.optional.MysqlDataSource
com.mysql.cj.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
As a key/value pair in the
java.util.Properties
instance passed toDriverManager.getConnection()
orDriver.connect()
-
As a JDBC URL parameter in the URL given to
java.sql.DriverManager.getConnection()
,java.sql.Driver.connect()
or the MySQL implementations of thejavax.sql.DataSource
setURL()
method. If you specify a configuration property in the URL without providing a value for it, nothing will be set; for example, addinguseServerPrepStmts
alone to the URL does not make Connector/J use server-side prepared statements; you need to adduseServerPrepStmts=true
.NoteIf the mechanism you use to configure a JDBC URL is XML-based, use the XML character literal
&
to separate configuration parameters, as the ampersand is a reserved character for XML.
The properties are listed in the following tables.
Authentication.
| Properties and Descriptions |
|---|
|
user The user to connect as Since version: all versions |
|
password The password to use when connecting Since version: all versions |
Connection.
| Properties and Descriptions |
|---|
|
connectionAttributes A comma-delimited list of user-defined key:value pairs (in addition to standard MySQL-defined key:value pairs) to be passed to MySQL Server for display as connection attributes in the PERFORMANCE_SCHEMA.SESSION_CONNECT_ATTRS table. Example usage: connectionAttributes=key1:value1,key2:value2 This functionality is available for use with MySQL Server version 5.6 or later only. Earlier versions of MySQL Server do not support connection attributes, causing this configuration option to be ignored. Setting connectionAttributes=none will cause connection attribute processing to be bypassed, for situations where Connection creation/initialization speed is critical. Since version: 5.1.25 |
|
connectionLifecycleInterceptors A comma-delimited list of classes that implement "com.mysql.cj.api.jdbc.interceptors.ConnectionLifecycleInterceptor" that should notified of connection lifecycle events (creation, destruction, commit, rollback, setCatalog and setAutoCommit) and potentially alter the execution of these commands. ConnectionLifecycleInterceptors are "stackable", more than one interceptor may be specified via the configuration property as a comma-delimited list, with the interceptors executed in order from left to right. Since version: 5.1.4 |
|
useConfigs Load the comma-delimited list of configuration properties before parsing the URL or applying user-specified properties. These configurations are explained in the 'Configurations' of the documentation. Since version: 3.1.5 |
|
authenticationPlugins Comma-delimited list of classes that implement com.mysql.cj.api.mysqla.authentication.AuthenticationPlugin and which will be used for authentication unless disabled by "disabledAuthenticationPlugins" property. Since version: 5.1.19 |
|
createDatabaseIfNotExist Creates the database given in the URL if it doesn't yet exist. Assumes the configured user has permissions to create databases. Default: false Since version: 3.1.9 |
|
defaultAuthenticationPlugin Name of a class implementing com.mysql.cj.api.mysqla.authentication.AuthenticationPlugin which will be used as the default authentication plugin (see below). It is an error to use a class which is not listed in "authenticationPlugins" nor it is one of the built-in plugins. It is an error to set as default a plugin which was disabled with "disabledAuthenticationPlugins" property. It is an error to set this value to null or the empty string (i.e. there must be at least a valid default authentication plugin specified for the connection, meeting all constraints listed above). Default: com.mysql.cj.mysqla.authentication.MysqlNativePasswordPlugin Since version: 5.1.19 |
|
detectCustomCollations Should the driver detect custom charsets/collations installed on server (true/false, defaults to 'false'). If this option set to 'true' driver gets actual charsets/collations from server each time connection establishes. This could slow down connection initialization significantly. Default: false Since version: 5.1.29 |
|
disabledAuthenticationPlugins Comma-delimited list of classes implementing com.mysql.cj.api.mysqla.authentication.AuthenticationPlugin or mechanisms, i.e. "mysql_native_password". The authentication plugins or mechanisms listed will not be used for authentication which will fail if it requires one of them. It is an error to disable the default authentication plugin (either the one named by "defaultAuthenticationPlugin" property or the hard-coded one if "defaultAuthenticationPlugin" property is not set). Since version: 5.1.19 |
|
disconnectOnExpiredPasswords If "disconnectOnExpiredPasswords" is set to "false" and password is expired then server enters "sandbox" mode and sends ERR(08001, ER_MUST_CHANGE_PASSWORD) for all commands that are not needed to set a new password until a new password is set. Default: true Since version: 5.1.23 |
|
interactiveClient Set the CLIENT_INTERACTIVE flag, which tells MySQL to timeout connections based on INTERACTIVE_TIMEOUT instead of WAIT_TIMEOUT Default: false Since version: 3.1.0 |
|
passwordCharacterEncoding What character encoding is used for passwords? Leaving this set to the default value (null), uses the value set in "characterEncoding" if there is one, otherwise uses UTF-8 as default encoding. If the password contains non-ASCII characters, the password encoding must match what server encoding was set to when the password was created. For passwords in other character encodings, the encoding will have to be specified with this property (or with "characterEncoding"), as it's not possible for the driver to auto-detect this. Since version: 5.1.7 |
|
propertiesTransform An implementation of com.mysql.cj.api.conf.ConnectionPropertiesTransform that the driver will use to modify URL properties passed to the driver before attempting a connection Since version: 3.1.4 |
|
rollbackOnPooledClose Should the driver issue a rollback() when the logical connection in a pool is closed? Default: true Since version: 3.0.15 |
|
useAffectedRows Don't set the CLIENT_FOUND_ROWS flag when connecting to the server (not JDBC-compliant, will break most applications that rely on "found" rows vs. "affected rows" for DML statements), but does cause "correct" update counts from "INSERT ... ON DUPLICATE KEY UPDATE" statements to be returned by the server. Default: false Since version: 5.1.7 |
Session.
| Properties and Descriptions |
|---|
|
characterEncoding What character encoding should the driver use when dealing with strings? (defaults is to 'autodetect') Since version: 1.1g |
|
characterSetResults Character set to tell the server to return results as. Since version: 3.0.13 |
|
connectionCollation If set, tells the server to use this collation via 'set collation_connection' Since version: 3.0.13 |
|
sessionVariables A comma-separated list of name/value pairs to be sent as SET SESSION ... to the server when the driver connects. Since version: 3.1.8 |
|
useOldUTF8Behavior Use the UTF-8 behavior the driver did when communicating with 4.0 and older servers Default: false Since version: 3.1.6 |
Networking.
| Properties and Descriptions |
|---|
|
socksProxyHost Name or IP address of SOCKS host to connect through. Since version: 5.1.34 |
|
socksProxyPort Port of SOCKS server. Default: 1080 Since version: 5.1.34 |
|
socketFactory The name of the class that the driver should use for creating socket connections to the server. This class must implement the interface 'com.mysql.cj.api.io.SocketFactory' and have public no-args constructor. Default: com.mysql.cj.core.io.StandardSocketFactory Since version: 3.0.3 |
|
connectTimeout Timeout for socket connect (in milliseconds), with 0 being no timeout. Only works on JDK-1.4 or newer. Defaults to '0'. Default: 0 Since version: 3.0.1 |
|
socketTimeout Timeout on network socket operations (0, the default means no timeout). Default: 0 Since version: 3.0.1 |
|
localSocketAddress Hostname or IP address given to explicitly configure the interface that the driver will bind the client side of the TCP/IP connection to when connecting. Since version: 5.0.5 |
|
maxAllowedPacket Maximum allowed packet size to send to server. If not set, the value of system variable 'max_allowed_packet' will be used to initialize this upon connecting. This value will not take effect if set larger than the value of 'max_allowed_packet'. Also, due to an internal dependency with the property "blobSendChunkSize", this setting has a minimum value of "8203" if "useServerPrepStmts" is set to "true". Default: 65535 Since version: 5.1.8 |
|
tcpKeepAlive If connecting using TCP/IP, should the driver set SO_KEEPALIVE? Default: true Since version: 5.0.7 |
|
tcpNoDelay If connecting using TCP/IP, should the driver set SO_TCP_NODELAY (disabling the Nagle Algorithm)? Default: true Since version: 5.0.7 |
|
tcpRcvBuf If connecting using TCP/IP, should the driver set SO_RCV_BUF to the given value? The default value of '0', means use the platform default value for this property) Default: 0 Since version: 5.0.7 |
|
tcpSndBuf If connecting using TCP/IP, should the driver set SO_SND_BUF to the given value? The default value of '0', means use the platform default value for this property) Default: 0 Since version: 5.0.7 |
|
tcpTrafficClass If connecting using TCP/IP, should the driver set traffic class or type-of-service fields ?See the documentation for java.net.Socket.setTrafficClass() for more information. Default: 0 Since version: 5.0.7 |
|
useCompression Use zlib compression when communicating with the server (true/false)? Defaults to 'false'. Default: false Since version: 3.0.17 |
|
useUnbufferedInput Don't use BufferedInputStream for reading data from the server Default: true Since version: 3.0.11 |
Security.
| Properties and Descriptions |
|---|
|
allowMultiQueries Allow the use of ';' to delimit multiple queries during one statement (true/false), defaults to 'false', and does not affect the addBatch() and executeBatch() methods, which instead rely on rewriteBatchStatements. Default: false Since version: 3.1.1 |
|
useSSL Use SSL when communicating with the server (true/false), default is 'true' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+, otherwise default is 'false' Default: false Since version: 3.0.2 |
|
requireSSL Require server support of SSL connection if useSSL=true? (defaults to 'false'). Default: false Since version: 3.1.0 |
|
verifyServerCertificate If "useSSL" is set to "true", should the driver verify the server's certificate? When using this feature, the keystore parameters should be specified by the "clientCertificateKeyStore*" properties, rather than system properties. Default is 'false' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+ and "useSSL" was not explicitly set to "true". Otherwise default is 'true' Default: true Since version: 5.1.6 |
|
clientCertificateKeyStoreUrl URL to the client certificate KeyStore (if not specified, use defaults) Since version: 5.1.0 |
|
clientCertificateKeyStoreType KeyStore type for client certificates (NULL or empty means use the default, which is "JKS". Standard keystore types supported by the JVM are "JKS" and "PKCS12", your environment may have more available depending on what security products are installed and available to the JVM. Default: JKS Since version: 5.1.0 |
|
clientCertificateKeyStorePassword Password for the client certificates KeyStore Since version: 5.1.0 |
|
trustCertificateKeyStoreUrl URL to the trusted root certificate KeyStore (if not specified, use defaults) Since version: 5.1.0 |
|
trustCertificateKeyStoreType KeyStore type for trusted root certificates (NULL or empty means use the default, which is "JKS". Standard keystore types supported by the JVM are "JKS" and "PKCS12", your environment may have more available depending on what security products are installed and available to the JVM. Default: JKS Since version: 5.1.0 |
|
trustCertificateKeyStorePassword Password for the trusted root certificates KeyStore Since version: 5.1.0 |
|
enabledSSLCipherSuites If "useSSL" is set to "true", overrides the cipher suites enabled for use on the underlying SSL sockets. This may be required when using external JSSE providers or to specify cipher suites compatible with both MySQL server and used JVM. Since version: 5.1.35 |
|
allowLoadLocalInfile Should the driver allow use of 'LOAD DATA LOCAL INFILE...' (defaults to 'true'). Default: true Since version: 3.0.3 |
|
allowUrlInLocalInfile Should the driver allow URLs in 'LOAD DATA LOCAL INFILE' statements? Default: false Since version: 3.1.4 |
|
allowPublicKeyRetrieval Allows special handshake roundtrip to get server RSA public key directly from server. Default: false Since version: 5.1.31 |
|
paranoid Take measures to prevent exposure sensitive information in error messages and clear data structures holding sensitive data when possible? (defaults to 'false') Default: false Since version: 3.0.1 |
|
serverRSAPublicKeyFile File path to the server RSA public key file for sha256_password authentication. If not specified, the public key will be retrieved from the server. Since version: 5.1.31 |
Statements.
| Properties and Descriptions |
|---|
|
continueBatchOnError Should the driver continue processing batch commands if one statement fails. The JDBC spec allows either way (defaults to 'true'). Default: true Since version: 3.0.3 |
|
dontTrackOpenResources The JDBC specification requires the driver to automatically track and close resources, however if your application doesn't do a good job of explicitly calling close() on statements or result sets, this can cause memory leakage. Setting this property to true relaxes this constraint, and can be more memory efficient for some applications. Also the automatic closing of the Statement and current ResultSet in Statement.closeOnCompletion() and Statement.getMoreResults ([Statement.CLOSE_CURRENT_RESULT | Statement.CLOSE_ALL_RESULTS]), respectively, ceases to happen. This property automatically sets holdResultsOpenOverStatementClose=true. Default: false Since version: 3.1.7 |
|
queryTimeoutKillsConnection If the timeout given in Statement.setQueryTimeout() expires, should the driver forcibly abort the Connection instead of attempting to abort the query? Default: false Since version: 5.1.9 |
|
statementInterceptors A comma-delimited list of classes that implement "com.mysql.cj.api.jdbc.interceptors.StatementInterceptor" that should be placed "in between" query execution to influence the results. StatementInterceptors are "chainable", the results returned by the "current" interceptor will be passed on to the next in in the chain, from left-to-right order, as specified in this property. Since version: 5.1.1 |
Prepared Statements.
| Properties and Descriptions |
|---|
|
allowNanAndInf Should the driver allow NaN or +/- INF values in PreparedStatement.setDouble()? Default: false Since version: 3.1.5 |
|
autoClosePStmtStreams Should the driver automatically call .close() on streams/readers passed as arguments via set*() methods? Default: false Since version: 3.1.12 |
|
compensateOnDuplicateKeyUpdateCounts Should the driver compensate for the update counts of "ON DUPLICATE KEY" INSERT statements (2 = 1, 0 = 1) when using prepared statements? Default: false Since version: 5.1.7 |
|
emulateUnsupportedPstmts Should the driver detect prepared statements that are not supported by the server, and replace them with client-side emulated versions? Default: true Since version: 3.1.7 |
|
generateSimpleParameterMetadata Should the driver generate simplified parameter metadata for PreparedStatements when no metadata is available either because the server couldn't support preparing the statement, or server-side prepared statements are disabled? Default: false Since version: 5.0.5 |
|
processEscapeCodesForPrepStmts Should the driver process escape codes in queries that are prepared? Default escape processing behavior in non-prepared statements must be defined with the property 'enableEscapeProcessing'. Default: true Since version: 3.1.12 |
|
useServerPrepStmts Use server-side prepared statements if the server supports them? Default: false Since version: 3.1.0 |
|
useStreamLengthsInPrepStmts Honor stream length parameter in PreparedStatement/ResultSet.setXXXStream() method calls (true/false, defaults to 'true')? Default: true Since version: 3.0.2 |
Result Sets.
| Properties and Descriptions |
|---|
|
clobberStreamingResults This will cause a 'streaming' ResultSet to be automatically closed, and any outstanding data still streaming from the server to be discarded if another query is executed before all the data has been read from the server. Default: false Since version: 3.0.9 |
|
emptyStringsConvertToZero Should the driver allow conversions from empty string fields to numeric values of '0'? Default: true Since version: 3.1.8 |
|
holdResultsOpenOverStatementClose Should the driver close result sets on Statement.close() as required by the JDBC specification? Default: false Since version: 3.1.7 |
|
jdbcCompliantTruncation Should the driver throw java.sql.DataTruncation exceptions when data is truncated as is required by the JDBC specification when connected to a server that supports warnings (MySQL 4.1.0 and newer)? This property has no effect if the server sql-mode includes STRICT_TRANS_TABLES. Default: true Since version: 3.1.2 |
|
maxRows The maximum number of rows to return (0, the default means return all rows). Default: -1 Since version: all versions |
|
netTimeoutForStreamingResults What value should the driver automatically set the server setting 'net_write_timeout' to when the streaming result sets feature is in use? (value has unit of seconds, the value '0' means the driver will not try and adjust this value) Default: 600 Since version: 5.1.0 |
|
padCharsWithSpace If a result set column has the CHAR type and the value does not fill the amount of characters specified in the DDL for the column, should the driver pad the remaining characters with space (for ANSI compliance)? Default: false Since version: 5.0.6 |
|
populateInsertRowWithDefaultValues When using ResultSets that are CONCUR_UPDATABLE, should the driver pre-populate the "insert" row with default values from the DDL for the table used in the query so those values are immediately available for ResultSet accessors? This functionality requires a call to the database for metadata each time a result set of this type is created. If disabled (the default), the default values will be populated by the an internal call to refreshRow() which pulls back default values and/or values changed by triggers. Default: false Since version: 5.0.5 |
|
strictUpdates Should the driver do strict checking (all primary keys selected) of updatable result sets (true, false, defaults to 'true')? Default: true Since version: 3.0.4 |
|
tinyInt1isBit Should the driver treat the datatype TINYINT(1) as the BIT type (because the server silently converts BIT -> TINYINT(1) when creating tables)? Default: true Since version: 3.0.16 |
|
transformedBitIsBoolean If the driver converts TINYINT(1) to a different type, should it use BOOLEAN instead of BIT for future compatibility with MySQL-5.0, as MySQL-5.0 has a BIT type? Default: false Since version: 3.1.9 |
Metadata.
| Properties and Descriptions |
|---|
|
getProceduresReturnsFunctions Pre-JDBC4 DatabaseMetaData API has only the getProcedures() and getProcedureColumns() methods, so they return metadata info for both stored procedures and functions. JDBC4 was extended with the getFunctions() and getFunctionColumns() methods and the expected behaviours of previous methods are not well defined. For JDBC4 and higher, default 'true' value of the option means that calls of DatabaseMetaData.getProcedures() and DatabaseMetaData.getProcedureColumns() return metadata for both procedures and functions as before, keeping backward compatibility. Setting this property to 'false' decouples Connector/J from its pre-JDBC4 behaviours for DatabaseMetaData.getProcedures() and DatabaseMetaData.getProcedureColumns(), forcing them to return metadata for procedures only. Default: true Since version: 5.1.26 |
|
noAccessToProcedureBodies When determining procedure parameter types for CallableStatements, and the connected user can't access procedure bodies through "SHOW CREATE PROCEDURE" or select on mysql.proc should the driver instead create basic metadata (all parameters reported as INOUT VARCHARs) instead of throwing an exception? Default: false Since version: 5.0.3 |
|
nullCatalogMeansCurrent When DatabaseMetadataMethods ask for a 'catalog' parameter, does the value null mean use the current catalog? (this is not JDBC-compliant, but follows legacy behavior from earlier versions of the driver) Default: false Since version: 3.1.8 |
|
nullNamePatternMatchesAll Should DatabaseMetaData methods that accept *pattern parameters treat null the same as '%' (this is not JDBC-compliant, however older versions of the driver accepted this departure from the specification) Default: false Since version: 3.1.8 |
|
useHostsInPrivileges Add '@hostname' to users in DatabaseMetaData.getColumn/TablePrivileges() (true/false), defaults to 'true'. Default: true Since version: 3.0.2 |
|
useInformationSchema When connected to MySQL-5.0.7 or newer, should the driver use the INFORMATION_SCHEMA to derive information used by DatabaseMetaData? Default: false Since version: 5.0.0 |
BLOB/CLOB processing.
| Properties and Descriptions |
|---|
|
autoDeserialize Should the driver automatically detect and de-serialize objects stored in BLOB fields? Default: false Since version: 3.1.5 |
|
blobSendChunkSize Chunk size to use when sending BLOB/CLOBs via ServerPreparedStatements. Note that this value cannot exceed the value of "maxAllowedPacket" and, if that is the case, then this value will be corrected automatically. Default: 1048576 Since version: 3.1.9 |
|
blobsAreStrings Should the driver always treat BLOBs as Strings - specifically to work around dubious metadata returned by the server for GROUP BY clauses? Default: false Since version: 5.0.8 |
|
clobCharacterEncoding The character encoding to use for sending and retrieving TEXT, MEDIUMTEXT and LONGTEXT values instead of the configured connection characterEncoding Since version: 5.0.0 |
|
emulateLocators Should the driver emulate java.sql.Blobs with locators? With this feature enabled, the driver will delay loading the actual Blob data until the one of the retrieval methods (getInputStream(), getBytes(), and so forth) on the blob data stream has been accessed. For this to work, you must use a column alias with the value of the column to the actual name of the Blob. The feature also has the following restrictions: The SELECT that created the result set must reference only one table, the table must have a primary key; the SELECT must alias the original blob column name, specified as a string, to an alternate name; the SELECT must cover all columns that make up the primary key. Default: false Since version: 3.1.0 |
|
functionsNeverReturnBlobs Should the driver always treat data from functions returning BLOBs as Strings - specifically to work around dubious metadata returned by the server for GROUP BY clauses? Default: false Since version: 5.0.8 |
|
locatorFetchBufferSize If 'emulateLocators' is configured to 'true', what size buffer should be used when fetching BLOB data for getBinaryInputStream? Default: 1048576 Since version: 3.2.1 |
Datetime types processing.
| Properties and Descriptions |
|---|
|
noDatetimeStringSync Don't ensure that ResultSet.getDatetimeType().toString().equals(ResultSet.getString()) Default: false Since version: 3.1.7 |
|
sendFractionalSeconds Send fractional part from TIMESTAMP seconds. If set to false, the nanoseconds value of TIMESTAMP values will be truncated before sending any data to the server. This option applies only to prepared statements, callable statements or updatable result sets. Default: true Since version: 5.1.37 |
|
serverTimezone Override detection/mapping of time zone. Used when time zone from server doesn't map to Java time zone Since version: 3.0.2 |
|
treatUtilDateAsTimestamp Should the driver treat java.util.Date as a TIMESTAMP for the purposes of PreparedStatement.setObject()? Default: true Since version: 5.0.5 |
|
yearIsDateType Should the JDBC driver treat the MySQL type "YEAR" as a java.sql.Date, or as a SHORT? Default: true Since version: 3.1.9 |
|
zeroDateTimeBehavior What should happen when the driver encounters DATETIME values that are composed entirely of zeros (used by MySQL to represent invalid dates)? Valid values are "exception", "round" and "convertToNull". Default: exception Since version: 3.1.4 |
High Availability and Clustering.
| Properties and Descriptions |
|---|
|
autoReconnect Should the driver try to re-establish stale and/or dead connections? If enabled the driver will throw an exception for a queries issued on a stale or dead connection, which belong to the current transaction, but will attempt reconnect before the next query issued on the connection in a new transaction. The use of this feature is not recommended, because it has side effects related to session state and data consistency when applications don't handle SQLExceptions properly, and is only designed to be used when you are unable to configure your application to handle SQLExceptions resulting from dead and stale connections properly. Alternatively, as a last option, investigate setting the MySQL server variable "wait_timeout" to a high value, rather than the default of 8 hours. Default: false Since version: 1.1 |
|
autoReconnectForPools Use a reconnection strategy appropriate for connection pools (defaults to 'false') Default: false Since version: 3.1.3 |
|
failOverReadOnly When failing over in autoReconnect mode, should the connection be set to 'read-only'? Default: true Since version: 3.0.12 |
|
maxReconnects Maximum number of reconnects to attempt if autoReconnect is true, default is '3'. Default: 3 Since version: 1.1 |
|
reconnectAtTxEnd If autoReconnect is set to true, should the driver attempt reconnections at the end of every transaction? Default: false Since version: 3.0.10 |
|
retriesAllDown When using loadbalancing or failover, the number of times the driver should cycle through available hosts, attempting to connect. Between cycles, the driver will pause for 250ms if no servers are available. Default: 120 Since version: 5.1.6 |
|
initialTimeout If autoReconnect is enabled, the initial time to wait between re-connect attempts (in seconds, defaults to '2'). Default: 2 Since version: 1.1 |
|
roundRobinLoadBalance When autoReconnect is enabled, and failoverReadonly is false, should we pick hosts to connect to on a round-robin basis? Default: false Since version: 3.1.2 |
|
queriesBeforeRetryMaster Number of queries to issue before falling back to the primary host when failed over (when using multi-host failover). Whichever condition is met first, 'queriesBeforeRetryMaster' or 'secondsBeforeRetryMaster' will cause an attempt to be made to reconnect to the primary host. Setting both properties to 0 disables the automatic fall back to the primary host at transaction boundaries. Defaults to 50. Default: 50 Since version: 3.0.2 |
|
secondsBeforeRetryMaster How long should the driver wait, when failed over, before attempting to reconnect to the primary host? Whichever condition is met first, 'queriesBeforeRetryMaster' or 'secondsBeforeRetryMaster' will cause an attempt to be made to reconnect to the master. Setting both properties to 0 disables the automatic fall back to the primary host at transaction boundaries. Time in seconds, defaults to 30 Default: 30 Since version: 3.0.2 |
|
allowMasterDownConnections By default, a replication-aware connection will fail to connect when configured master hosts are all unavailable at initial connection. Setting this property to 'true' allows to establish the initial connection, by failing over to the slave servers, in read-only state. It won't prevent subsequent failures when switching back to the master hosts i.e. by setting the replication connection to read/write state. Default: false Since version: 5.1.27 |
|
allowSlaveDownConnections By default, a replication-aware connection will fail to connect when configured slave hosts are all unavailable at initial connection. Setting this property to 'true' allows to establish the initial connection. It won't prevent failures when switching to slaves i.e. by setting the replication connection to read-only state. The property 'readFromMasterWhenNoSlaves' should be used for this purpose. Default: false Since version: 5.1.38 |
|
ha.enableJMX Enables JMX-based management of load-balanced connection groups, including live addition/removal of hosts from load-balancing pool. Enables JMX-based management of replication connection groups, including live slave promotion, addition of new slaves and removal of master or slave hosts from load-balanced master and slave connection pools. Default: false Since version: 5.1.27 |
|
loadBalanceHostRemovalGracePeriod Sets the grace period to wait for a host being removed from a load-balanced connection, to be released when it is currently the active host. Default: 15000 Since version: 5.1.39 |
|
readFromMasterWhenNoSlaves Replication-aware connections distribute load by using the master hosts when in read/write state and by using the slave hosts when in read-only state. If, when setting the connection to read-only state, none of the slave hosts are available, an SQLExeception is thrown back. Setting this property to 'true' allows to fail over to the master hosts, while setting the connection state to read-only, when no slave hosts are available at switch instant. Default: false Since version: 5.1.38 |
|
selfDestructOnPingMaxOperations =If set to a non-zero value, the driver will report close the connection and report failure when Connection.ping() or Connection.isValid(int) is called if the connection's count of commands sent to the server exceeds this value. Default: 0 Since version: 5.1.6 |
|
selfDestructOnPingSecondsLifetime If set to a non-zero value, the driver will report close the connection and report failure when Connection.ping() or Connection.isValid(int) is called if the connection's lifetime exceeds this value. Default: 0 Since version: 5.1.6 |
|
ha.loadBalanceStrategy If using a load-balanced connection to connect to SQL nodes in a MySQL Cluster/NDB configuration (by using the URL prefix "jdbc:mysql:loadbalance://"), which load balancing algorithm should the driver use: (1) "random" - the driver will pick a random host for each request. This tends to work better than round-robin, as the randomness will somewhat account for spreading loads where requests vary in response time, while round-robin can sometimes lead to overloaded nodes if there are variations in response times across the workload. (2) "bestResponseTime" - the driver will route the request to the host that had the best response time for the previous transaction. Default: random Since version: 5.0.6 |
|
loadBalanceAutoCommitStatementRegex When load-balancing is enabled for auto-commit statements (via loadBalanceAutoCommitStatementThreshold), the statement counter will only increment when the SQL matches the regular expression. By default, every statement issued matches. Since version: 5.1.15 |
|
loadBalanceAutoCommitStatementThreshold When auto-commit is enabled, the number of statements which should be executed before triggering load-balancing to rebalance. Default value of 0 causes load-balanced connections to only rebalance when exceptions are encountered, or auto-commit is disabled and transactions are explicitly committed or rolled back. Default: 0 Since version: 5.1.15 |
|
loadBalanceBlacklistTimeout Time in milliseconds between checks of servers which are unavailable, by controlling how long a server lives in the global blacklist. Default: 0 Since version: 5.1.0 |
|
loadBalanceConnectionGroup Logical group of load-balanced connections within a classloader, used to manage different groups independently. If not specified, live management of load-balanced connections is disabled. Since version: 5.1.13 |
|
loadBalanceExceptionChecker Fully-qualified class name of custom exception checker. The class must implement com.mysql.cj.api.jdbc.ha.LoadBalanceExceptionChecker interface, and is used to inspect SQLExceptions and determine whether they should trigger fail-over to another host in a load-balanced deployment. Default: com.mysql.cj.jdbc.ha.StandardLoadBalanceExceptionChecker Since version: 5.1.13 |
|
loadBalancePingTimeout Time in milliseconds to wait for ping response from each of load-balanced physical connections when using load-balanced Connection. Default: 0 Since version: 5.1.13 |
|
loadBalanceSQLExceptionSubclassFailover Comma-delimited list of classes/interfaces used by default load-balanced exception checker to determine whether a given SQLException should trigger failover. The comparison is done using Class.isInstance(SQLException) using the thrown SQLException. Since version: 5.1.13 |
|
loadBalanceSQLStateFailover Comma-delimited list of SQLState codes used by default load-balanced exception checker to determine whether a given SQLException should trigger failover. The SQLState of a given SQLException is evaluated to determine whether it begins with any value in the comma-delimited list. Since version: 5.1.13 |
|
loadBalanceValidateConnectionOnSwapServer Should the load-balanced Connection explicitly check whether the connection is live when swapping to a new physical connection at commit/rollback? Default: false Since version: 5.1.13 |
|
pinGlobalTxToPhysicalConnection When using XAConnections, should the driver ensure that operations on a given XID are always routed to the same physical connection? This allows the XAConnection to support "XA START ... JOIN" after "XA END" has been called Default: false Since version: 5.0.1 |
|
resourceId A globally unique name that identifies the resource that this datasource or connection is connected to, used for XAResource.isSameRM() when the driver can't determine this value based on hostnames used in the URL Since version: 5.0.1 |
Performance Extensions.
| Properties and Descriptions |
|---|
|
callableStmtCacheSize If 'cacheCallableStmts' is enabled, how many callable statements should be cached? Default: 100 Since version: 3.1.2 |
|
metadataCacheSize The number of queries to cache ResultSetMetadata for if cacheResultSetMetaData is set to 'true' (default 50) Default: 50 Since version: 3.1.1 |
|
useLocalSessionState Should the driver refer to the internal values of autocommit and transaction isolation that are set by Connection.setAutoCommit() and Connection.setTransactionIsolation() and transaction state as maintained by the protocol, rather than querying the database or blindly sending commands to the database for commit() or rollback() method calls? Default: false Since version: 3.1.7 |
|
useLocalTransactionState Should the driver use the in-transaction state provided by the MySQL protocol to determine if a commit() or rollback() should actually be sent to the database? Default: false Since version: 5.1.7 |
|
prepStmtCacheSize If prepared statement caching is enabled, how many prepared statements should be cached? Default: 25 Since version: 3.0.10 |
|
prepStmtCacheSqlLimit If prepared statement caching is enabled, what's the largest SQL the driver will cache the parsing for? Default: 256 Since version: 3.0.10 |
|
parseInfoCacheFactory Name of a class implementing com.mysql.cj.api.CacheAdapterFactory, which will be used to create caches for the parsed representation of client-side prepared statements. Default: com.mysql.cj.jdbc.util.PerConnectionLRUFactory Since version: 5.1.1 |
|
serverConfigCacheFactory Name of a class implementing com.mysql.cj.api.CacheAdapterFactory<String, Map<String, String>>, which will be used to create caches for MySQL server configuration values Default: com.mysql.cj.core.util.PerVmServerConfigCacheFactory Since version: 5.1.1 |
|
alwaysSendSetIsolation Should the driver always communicate with the database when Connection.setTransactionIsolation() is called? If set to false, the driver will only communicate with the database when the requested transaction isolation is different than the whichever is newer, the last value that was set via Connection.setTransactionIsolation(), or the value that was read from the server when the connection was established. Note that useLocalSessionState=true will force the same behavior as alwaysSendSetIsolation=false, regardless of how alwaysSendSetIsolation is set. Default: true Since version: 3.1.7 |
|
maintainTimeStats Should the driver maintain various internal timers to enable idle time calculations as well as more verbose error messages when the connection to the server fails? Setting this property to false removes at least two calls to System.getCurrentTimeMillis() per query. Default: true Since version: 3.1.9 |
|
useCursorFetch If connected to MySQL > 5.0.2, and setFetchSize() > 0 on a statement, should that statement use cursor-based fetching to retrieve rows? Default: false Since version: 5.0.0 |
|
cacheCallableStmts Should the driver cache the parsing stage of CallableStatements Default: false Since version: 3.1.2 |
|
cachePrepStmts Should the driver cache the parsing stage of PreparedStatements of client-side prepared statements, the "check" for suitability of server-side prepared and server-side prepared statements themselves? Default: false Since version: 3.0.10 |
|
cacheResultSetMetadata Should the driver cache ResultSetMetaData for Statements and PreparedStatements? (Req. JDK-1.4+, true/false, default 'false') Default: false Since version: 3.1.1 |
|
cacheServerConfiguration Should the driver cache the results of 'SHOW VARIABLES' and 'SHOW COLLATION' on a per-URL basis? Default: false Since version: 3.1.5 |
|
defaultFetchSize The driver will call setFetchSize(n) with this value on all newly-created Statements Default: 0 Since version: 3.1.9 |
|
dontCheckOnDuplicateKeyUpdateInSQL Stops checking if every INSERT statement contains the "ON DUPLICATE KEY UPDATE" clause. As a side effect, obtaining the statement's generated keys information will return a list where normally it wouldn't. Also be aware that, in this case, the list of generated keys returned may not be accurate. The effect of this property is canceled if set simultaneously with 'rewriteBatchedStatements=true'. Default: false Since version: 5.1.32 |
|
elideSetAutoCommits If using MySQL-4.1 or newer, should the driver only issue 'set autocommit=n' queries when the server's state doesn't match the requested state by Connection.setAutoCommit(boolean)? Default: false Since version: 3.1.3 |
|
enableEscapeProcessing Sets the default escape processing behavior for Statement objects. The method Statement.setEscapeProcessing() can be used to specify the escape processing behavior for an individual Statement object. Default escape processing behavior in prepared statements must be defined with the property 'processEscapeCodesForPrepStmts'. Default: true Since version: 5.1.37 |
|
enableQueryTimeouts When enabled, query timeouts set via Statement.setQueryTimeout() use a shared java.util.Timer instance for scheduling. Even if the timeout doesn't expire before the query is processed, there will be memory used by the TimerTask for the given timeout which won't be reclaimed until the time the timeout would have expired if it hadn't been cancelled by the driver. High-load environments might want to consider disabling this functionality. Default: true Since version: 5.0.6 |
|
largeRowSizeThreshold What size result set row should the JDBC driver consider "large", and thus use a more memory-efficient way of representing the row internally? Default: 2048 Since version: 5.1.1 |
|
readOnlyPropagatesToServer Should the driver issue appropriate statements to implicitly set the transaction access mode on server side when Connection.setReadOnly() is called? Setting this property to 'true' enables InnoDB read-only potential optimizations but also requires an extra roundtrip to set the right transaction state. Even if this property is set to 'false', the driver will do its best effort to prevent the execution of database-state-changing queries. Requires minimum of MySQL 5.6. Default: true Since version: 5.1.35 |
|
rewriteBatchedStatements Should the driver use multiqueries (irregardless of the setting of "allowMultiQueries") as well as rewriting of prepared statements for INSERT into multi-value inserts when executeBatch() is called? Notice that this has the potential for SQL injection if using plain java.sql.Statements and your code doesn't sanitize input correctly. Notice that for prepared statements, server-side prepared statements can not currently take advantage of this rewrite option, and that if you don't specify stream lengths when using PreparedStatement.set*Stream(), the driver won't be able to determine the optimum number of parameters per batch and you might receive an error from the driver that the resultant packet is too large. Statement.getGeneratedKeys() for these rewritten statements only works when the entire batch includes INSERT statements. Please be aware using rewriteBatchedStatements=true with INSERT .. ON DUPLICATE KEY UPDATE that for rewritten statement server returns only one value as sum of all affected (or found) rows in batch and it isn't possible to map it correctly to initial statements; in this case driver returns 0 as a result of each batch statement if total count was 0, and the Statement.SUCCESS_NO_INFO as a result of each batch statement if total count was > 0. Default: false Since version: 3.1.13 |
|
useDirectRowUnpack Use newer result set row unpacking code that skips a copy from network buffers to a MySQL packet instance and instead reads directly into the result set row data buffers. Default: true Since version: 5.1.1 |
|
useReadAheadInput Use newer, optimized non-blocking, buffered input stream when reading from the server? Default: true Since version: 3.1.5 |
Debugging/Profiling.
| Properties and Descriptions |
|---|
|
logger The name of a class that implements "com.mysql.cj.api.log.Log" that will be used to log messages to. (default is "com.mysql.cj.core.log.StandardLogger", which logs to STDERR) Default: com.mysql.cj.core.log.StandardLogger Since version: 3.1.1 |
|
gatherPerfMetrics Should the driver gather performance metrics, and report them via the configured logger every 'reportMetricsIntervalMillis' milliseconds? Default: false Since version: 3.1.2 |
|
profileSQL Trace queries and their execution/fetch times to the configured logger (true/false) defaults to 'false' Default: false Since version: 3.1.0 |
|
reportMetricsIntervalMillis If 'gatherPerfMetrics' is enabled, how often should they be logged (in ms)? Default: 30000 Since version: 3.1.2 |
|
maxQuerySizeToLog Controls the maximum length/size of a query that will get logged when profiling or tracing Default: 2048 Since version: 3.1.3 |
|
packetDebugBufferSize The maximum number of packets to retain when 'enablePacketDebug' is true Default: 20 Since version: 3.1.3 |
|
slowQueryThresholdMillis If 'logSlowQueries' is enabled, how long should a query (in ms) before it is logged as 'slow'? Default: 2000 Since version: 3.1.2 |
|
slowQueryThresholdNanos If 'useNanosForElapsedTime' is set to true, and this property is set to a non-zero value, the driver will use this threshold (in nanosecond units) to determine if a query was slow. Default: 0 Since version: 5.0.7 |
|
useUsageAdvisor Should the driver issue 'usage' warnings advising proper and efficient usage of JDBC and MySQL Connector/J to the log (true/false, defaults to 'false')? Default: false Since version: 3.1.1 |
|
autoGenerateTestcaseScript Should the driver dump the SQL it is executing, including server-side prepared statements to STDERR? Default: false Since version: 3.1.9 |
|
autoSlowLog Instead of using slowQueryThreshold* to determine if a query is slow enough to be logged, maintain statistics that allow the driver to determine queries that are outside the 99th percentile? Default: true Since version: 5.1.4 |
|
clientInfoProvider The name of a class that implements the com.mysql.cj.api.jdbc.ClientInfoProvider interface in order to support JDBC-4.0's Connection.get/setClientInfo() methods Default: com.mysql.cj.jdbc.CommentClientInfoProvider Since version: 5.1.0 |
|
enablePacketDebug When enabled, a ring-buffer of 'packetDebugBufferSize' packets will be kept, and dumped when exceptions are thrown in key areas in the driver's code Default: false Since version: 3.1.3 |
|
explainSlowQueries If 'logSlowQueries' is enabled, should the driver automatically issue an 'EXPLAIN' on the server and send the results to the configured log at a WARN level? Default: false Since version: 3.1.2 |
|
logSlowQueries Should queries that take longer than 'slowQueryThresholdMillis' be logged? Default: false Since version: 3.1.2 |
|
logXaCommands Should the driver log XA commands sent by MysqlXaConnection to the server, at the DEBUG level of logging? Default: false Since version: 5.0.5 |
|
profilerEventHandler Name of a class that implements the interface com.mysql.cj.api.ProfilerEventHandler that will be used to handle profiling/tracing events. Default: com.mysql.cj.core.profiler.LoggingProfilerEventHandler Since version: 5.1.6 |
|
resultSetSizeThreshold If the usage advisor is enabled, how many rows should a result set contain before the driver warns that it is suspiciously large? Default: 100 Since version: 5.0.5 |
|
traceProtocol Should trace-level network protocol be logged? Default: false Since version: 3.1.2 |
|
useNanosForElapsedTime For profiling/debugging functionality that measures elapsed time, should the driver try to use nanoseconds resolution if available (JDK >= 1.5)? Default: false Since version: 5.0.7 |
|
useOnlyServerErrorMessages Don't prepend 'standard' SQLState error messages to error messages returned by the server. Default: true Since version: 3.0.15 |
Exceptions/Warnings.
| Properties and Descriptions |
|---|
|
dumpQueriesOnException Should the driver dump the contents of the query sent to the server in the message for SQLExceptions? Default: false Since version: 3.1.3 |
|
exceptionInterceptors Comma-delimited list of classes that implement com.mysql.cj.api.exceptions.ExceptionInterceptor. These classes will be instantiated one per Connection instance, and all SQLExceptions thrown by the driver will be allowed to be intercepted by these interceptors, in a chained fashion, with the first class listed as the head of the chain. Since version: 5.1.8 |
|
ignoreNonTxTables Ignore non-transactional table warning for rollback? (defaults to 'false'). Default: false Since version: 3.0.9 |
|
includeInnodbStatusInDeadlockExceptions Include the output of "SHOW ENGINE INNODB STATUS" in exception messages when deadlock exceptions are detected? Default: false Since version: 5.0.7 |
|
includeThreadDumpInDeadlockExceptions Include a current Java thread dump in exception messages when deadlock exceptions are detected? Default: false Since version: 5.1.15 |
|
includeThreadNamesAsStatementComment Include the name of the current thread as a comment visible in "SHOW PROCESSLIST", or in Innodb deadlock dumps, useful in correlation with "includeInnodbStatusInDeadlockExceptions=true" and "includeThreadDumpInDeadlockExceptions=true". Default: false Since version: 5.1.15 |
Tunes for integration with other products.
| Properties and Descriptions |
|---|
|
overrideSupportsIntegrityEnhancementFacility Should the driver return "true" for DatabaseMetaData.supportsIntegrityEnhancementFacility() even if the database doesn't support it to workaround applications that require this method to return "true" to signal support of foreign keys, even though the SQL specification states that this facility contains much more than just foreign key support (one such application being OpenOffice)? Default: false Since version: 3.1.12 |
|
ultraDevHack Create PreparedStatements for prepareCall() when required, because UltraDev is broken and issues a prepareCall() for _all_ statements? (true/false, defaults to 'false') Default: false Since version: 2.0.3 |
JDBC compliance.
| Properties and Descriptions |
|---|
|
useColumnNamesInFindColumn Prior to JDBC-4.0, the JDBC specification had a bug related to what could be given as a "column name" to ResultSet methods like findColumn(), or getters that took a String property. JDBC-4.0 clarified "column name" to mean the label, as given in an "AS" clause and returned by ResultSetMetaData.getColumnLabel(), and if no AS clause, the column name. Setting this property to "true" will give behavior that is congruent to JDBC-3.0 and earlier versions of the JDBC specification, but which because of the specification bug could give unexpected results. This property is preferred over "useOldAliasMetadataBehavior" unless you need the specific behavior that it provides with respect to ResultSetMetadata. Default: false Since version: 5.1.7 |
|
pedantic Follow the JDBC spec to the letter. Default: false Since version: 3.0.0 |
|
useOldAliasMetadataBehavior Should the driver use the legacy behavior for "AS" clauses on columns and tables, and only return aliases (if any) for ResultSetMetaData.getColumnName() or ResultSetMetaData.getTableName() rather than the original column/table name? In 5.0.x, the default value was true. Default: false Since version: 5.0.4 |
Fabric.
| Properties and Descriptions |
|---|
|
fabricPassword Fabric password Since version: 5.1.30 |
|
fabricProtocol Fabric protocol Default: http Since version: 5.1.30 |
|
fabricReportErrors Fabric report errors Default: false Since version: 5.1.30 |
|
fabricServerGroup Fabric server group Since version: 5.1.30 |
|
fabricShardKey Fabric shard key Since version: 5.1.30 |
|
fabricShardTable Fabric shard table Since version: 5.1.30 |
|
fabricUsername Fabric username Since version: 5.1.30 |
X Protocol and X DevAPI.
| Properties and Descriptions |
|---|
|
mysqlx.useAsyncProtocol Use asynchronous variant of X Protocol Default: true Since version: 6.0.0 |
Connector/J also supports access to MySQL using named pipes on
Windows platforms with the
NamedPipeSocketFactory
as a plugin-socket
factory. If you do not use a namedPipePath
property, the default of '\\.\pipe\MySQL'
is
used. If you use the NamedPipeSocketFactory
,
the host name and port number values in the JDBC URL are
ignored. To enable this feature, set the
socketFactory
property:
socketFactory=com.mysql.cj.jdbc.NamedPipeSocketFactory
Named pipes only work when connecting to a MySQL server on the same physical machine where the JDBC driver is running. In simple performance tests, named pipe access is between 30%-50% faster than the standard TCP/IP access. However, this varies per system, and named pipes are slower than TCP/IP in many Windows configurations.
To create your own socket factories, follow the example code in
com.mysql.cj.core.io.NamedPipeSocketFactory
,
or
com.mysql.cj.core.io.StandardSocketFactory
.


Infomaster TutorialLesson 8: Integration |
Without structured information, finding information on the World Wide Web can be time-consuming and error-prone. The user can search for relevant documents using a subject hierarchy (as in Yahoo) or by specifying one or more keywords to find in the body of the document (as in Google). In either case, the result is a potentially large list of sometimes relevant but sometimes irrelevant documents. The user must then peruse these documents himself in the hope of finding the desired information.
Furthermore, the interaction is almost invariably "pull" rather than "push". There is little support for notification of changes. The next day, the user must do his search again, to see whether anything has changed.
Finally, in such systems, there is no support for update. It is not possible for an authorized user to specify information and have it distributed to appropriate sources.
One important advantage of structured information is that it enables a solution to these shortcomings.
In Infomaster, the user can ask sophisticated questions and get answers instead of long and often incomplete lists of sometimes irrelevant documents. Information from multiple sources is automatically aggregated into a single document.
He can post a request to be notified if additional relevant information becomes available and be sure of receiving only relevant notifications and receiving them only once.
Infomaster also provides support for updates. In addition to local updates to individual information sources, it supports global updates -- it accepts new information from users and, provided the users are suitably authorized, ensures that that information is automatically disseminated to the appropriate information sources for automatic or manual update. Along the way, it is capable of sending notifications to users who have expressed interest in such changes.
Example of defining a "stub" for a remote agent, named yourserver. In this case, the agent is assumed to communicate in ACL. It runs on host kiosk.stanford.edu and listens for connections on port 3000. It stores table p.
Once this stub is created, it is possible for a user to access this agent through the local user interface. For example, one could ask to see all facts about p using the examine command sent to the local infomaster, as shown below.
One can create stubs for other types of agents in the same way. The example belows described another server, called theirserver. In this case, the agent is assumed to communicate in Soap. It also runs on host kiosk.stanford.edu and listens for connections on port 3000. It stores table q.
Importantly, a local facilitator or transformer can integrate information available from both yourserver and theirserver.
As an example, suppose one had the following rule defined in the Library.
Asking the local Integrator to show all tuples of the r relation would result in the
system retrieving p from yourserver and then getting the appropriate q tuples from
theirserver.


vetanda
about us
media
events
contact
about us
media
events
contact
menu
contact us
contact us
First Name
Last Name
Email
Message
Send Message


Vancouver International Marathon
Vancouver CAN
Web Site: www.bmovanmarathon.ca
Race Winners
(64 runnings)
2:42:16 2:43:40 2:37:17 2:46:24 2:37:54 06 May 2007
2:25:27
2:35:50
07 May 2006
2:18:28
2:37:06
01 May 2005
2:15:40
2:44:05
02 May 2004
2:18:26
2:44:43
04 May 2003
2:20:22
2:46:22
05 May 2002
2:17:01
2:45:46
06 May 2001
2:18:56
2:45:51
07 May 2000
2:18:53
2:45:32
02 May 1999
2:21:33
2:43:46
03 May 1998
2:22:48
2:43:20
04 May 1997
2:22:53
2:49:56
05 May 1996
2:17:47
2:52:38
07 May 1995
2:23:11
2:48:50
01 May 1994
2:17:24
2:46:24
02 May 1993
2:18:37
2:47:27
03 May 1992
2:23:24
2:43:16
05 May 1991
2:25:01
2:52:14
06 May 1990
2:23:47
2:55:14
07 May 1989
2:19:41
2:50:05
01 May 1988
2:19:20
2:50:33
03 May 1987
2:21:12
2:46:50
04 May 1986
2:21:14
2:45:37
05 May 1985
2:24:24
2:55:34
06 May 1984
2:16:34
2:52:03
01 May 1983
2:19:42+
2:45:23+
02 May 1982
2:16:56
2:45:25
03 May 1981
2:16:27
2:48:23
04 May 1980
2:13:14
2:45:27
06 May 1979
2:15:56
2:44:53
27 May 1978
2:20:49
2:55:33
28 May 1977
2:22:36
3:14:32
29 May 1976
2:20:30.0
2:47:34.8
24 May 1975
2:19:58.6
3:06:49.0
25 May 1974
2:14:33.8
3:03:15.8
26 May 1973
2:21:45.2
3:24:38.4
27 May 1972
2:24:08.0
3:39:22.8
05 May
2019
2:15:01
Yuki Kawauchi (JPN)
2:41:28
Yuko Mizuguchi (JPN)
06 May
2018
2:27:38
Rob Watson (VC/CAN)
2:43:51
Zheng Zhiling (CHN)
07 May
2017
2:19:09
Daniel
Kipkoech-2
2:39:38
Gladys
Chepkechei Tarus (KEN)
01 May
2016
2:21:04
Daniel Kipkoech
(AB/KEN)
2:39:52
Hirut Beyene
Guangul (ETH)
03 May
2015
2:18:37
Luka Kipkemboi
Chelimo (KEN)
2:37:37
Lyudmila
Korchagina (ON/CAN)
04 May
2014
2:21:08
Birhanu Mekonen
Tadesse (ETH)
2:37:00
Kimberly
Doerksen (BC/CAN)
05 May
2013
2:24:09
Thomas Omwenga-4
2:40:34
Lucy Njeri
Muhami (KEN)
06 May
2012
2:21:51
Gezahenge Eshetu Debele (ETH)
Eleanor Greenwood (SCO)
01 May
2011
2:19:59
Benard Arasa
Onsare-2
Keddi-Anne Sherbino (BC/CAN)
02 May
2010
2:16:55
Thomas Omwenga-3
Emma Muthoni Kiruki (KEN)
03 May
2009
2:28:26
Benard Arasa Onsare (KEN)
Mary Akor-3
04 May
2008
2:15:59
Thomas Omwenga-2
Mary Akor-2
Thomas Omwenga (KEN)
Claudia Mariela Camargo (ARG)
Kassahun Kabiso-2
Malgorzata Sobanska (POL)
Kassahun Kabiso (ETH)
Rimma Dubovik (UKR)
Ulrich Steidl-5
Mary Akor (CA/USA)
Ulrich Steidl-4
Angela Strange-2
Ulrich Steidl-3
Angela Strange (CAN)
Ulrich Steidl-2
Leteyesus Berehe (ETH)
Ulrich Steidl (GER)
Krystina Pieczulis-3
Atsunari Saito (JPN)
Krystina Pieczulis-2
Juan Gonzalez-3
Krystina Pieczulis (POL)
Juan Gonzalez-2
Eniko Feher-4
Juan Gonzalez (MEX)
Eniko Feher-3
Graciano Gonzalez (MEX)
Yoko Okuda (JPN)
Makoto Sasaki (JPN)
Eniko Feher-2
Hayashi Morozumi (JPN)
Eniko Feher (HUN)
Masato Kojima (JPN)
Yuka Terumuma (JPN)
Shigemi Tamori (JPN)
Misao Miyata (JPN)
Yoshikazu Tanese (JPN)
Reiko Hirosawa (JPN)
Shem-Tov Sabag (ISR)
Anne Mangal (CAN)
Mitsumasa Matsuyama (JPN)
Isabelle Dittberner (CAN)
Tetsuji Iwase (JPN)
Cathy Kroll (USA)
Hiromi Nishi (JPN)
Joi Belyk (CAN)
Adrian Wellington (AUS)
Kikue Tejima (JPN)
Ric Sayre (USA)
Carol Raven (NZL)
Paul Bannon (CAN)
Beverly Bush (CAN)
Steve Pomeroy (CAN)
Sue Krenn (CA/USA)
Brian Morgan (AUS) (nc)
Nancy McLaren (CAN) (nc)
Garry Henry (AUS) (nc)
Marilyn Belwood (USA) (nc)
William Scott (AUS)
Gail McKean-2
John Hill (CAN)
Gail McKean (CAN)
Chris Bolter (CAN)
Meg Gordon (CAN)
Ross Jackson (CAN)
Doris Brown (WA/USA)
Joe Skaja (USA)
Linda Winslow (AK/USA)
Tom Howard-3
Maria Brzezinska (CAN)
Tom Howard-2
Deborah Collins (CAN)
Tom Howard (NC/CAN)
(bc)
Patricia Loveland (OR/USA)
1971
---
n/a
19 Apr
1970
2:34:33.8
John Cliff (ON/CAN)
(bc)
15 Jun1969
2:40:27.2
Tom Rosenau (WA/USA)
(bc)
1968
2:24:30
Jack Burnett (CAN)
(bc)
13 May
1967
2:32:06.8
Garry Harrison-3
(bc)
1966
---
n/a
20 Jun 1965
---
n/a
15 Jun 1964
2:37:44
Garry Harrison-2
(bc)
1963
---
n/a
16 Jun 1962
2:36:34
Garry Harrison (BC/CAN)
(bc)
1961
---
n/a
01 Jul
1960
2:47:31
Al Sweeney (BC/CAN) (bc)
31 May
1959
2:25:39.4
Gordon Dickson (ON/CAN) (nc)
(bc)
1958
---
n/a
1957
---
n/a
01 Jul
1956
2:45:50
Adrien Vali (BC/CAN)
(bc)
Note: The 1983 race was run 531 meters long due to a course layout error. The 1972-75
races were known as the Lions Gate Road Runners International Marathon.
The 1956 thru 1971 races were known as the British Columbia Championship
Marathon. Race currently known as BMO Bank of Montreal Vancouver Marathon.
(nc) => national championship
1981 John Hill was the national champion (4th, 2:19:16)
1980 Brian Maxwell was the national champion (2nd place, 2:16:52)
1980 Jane Weishaupt was the national champion (2nd place, 2:53:01)
(bc) British Columbia championship
1969 Garry Harrison was the British Columbia champion (3rd place, 2:45:31)
Most Wins
Men
5
Uli Steidl (GER)
2000-04
Women
4
Eniko Feher (HUN)
1993-94,1995-96
Prize Money
(ADR qualified runners)
Year Men Women Total 2017 $5,645 $6,595 $12,240 2016 9,795 8,525 18,320 2015 9,780 9,865 19,645 2014 8,610 7,740 16,350 2013 7,180 7,625 14,805 2012 6,575 6,880 13,455 2011 6,140 6,355 12,495 2010 5,660 5,170 10,830 2009 4,440 3,960 8,400 2008 3,925 3,925 7,850 2007 4,000 6,500 10,500 2006 4,500 7,000 11,500 2005 4,500 4,500 9,000 2004 4,000 4,500 8,500 2003 4,500 4,000 8,500 2002 6,000 4,500 10,500 2001 4,500 4,500 9,000 2000 3,035 3,200 6,235 1999 1,695 2,030 3,725 1998 1,395 2,445 3,840 1997 2,590 2,590 5,180 1996 1,850 1,480 3,330 1995 1,540 2,695 4,235 1994 1,480 n/a 1,480 Sums $113,720 $116,580 $230,300
Note: Prize money has been awarded since 1984.
Race Time Bias (sec/km)
Year Men Women 1980 -1.2 n/c
Competitive Level (1990-date)
Year Men Women 2016 n/c 76 2015 168 n/c .... 2013 n/c 23 .... 2005 141 n/c
Quality Performances through 2019
Men <2:14 1 <2:15 2 <2:16 6 <2:17 11 <2:18 21 <2:19 35 <2:20 52 Women <2:36 1 <2:38 6 <2:40 9 <2:42 13 <2:44 22 <2:46 41 <2:48 55 <2:50 69
Last Updated on 06 May 2019 mp
Contributors: Marty Post, Wim vanHemert, Maurice Wilson (17), Juraj Gasparovic (1), Frank Stebner


menu
Log In
x
-
ft. grid
Log Out
settings
chat_bubble
library_books
Compendium
face
Characters
public
Campaigns
help
Help
Display Name:
Log In
Log In
Sign Up
Sign Up
pan_tool
cloud
category
square_foot
sticky_note_2
home
crop_16_9
panorama_fish_eye
play_circle
cancel
play_circle
Cannot connect to server. Most features will be non-functional.
delete
Delete
visibility_off
Disable Player Visibility
visibility
Enable Player Visibility
color_lens
Change Color
face
Place Character
create
Edit
insert_chart_outlined
Hide Statblock
insert_chart
Show Statblock
account_circle
Enable Background
person
Disable Background
attribution
Add NPC
casino
Roll Initiative
colorize
Attack
cancel
Remove from Initiative
Add NPC
search
Tiny
Small
Medium
Large
Huge
Gargantuan
HP
AC
Add


OpenBSD
Installing
X-Windows
File & Print Services
Mail Services
MySQL Server
FTP Server
DNS Server
Dynamic Web
Web Services
Server Scripts PHP
Horde PHPLib
webMail
Customizing IMP
Group Ware
Works In Progress
Firewalling
Restricted SuperUser
Secured Communications
Web Caching/Proxy
Please e-mail me at<EMAIL_ADDRESS>when
you find errors in the instructions on these pages. I prefer not to mislead
people unknowingly let alone being ignorant of the truth.
Note: Use of OpenBSD logos in this publication in no way implies that
the OpenBSD project or any member of the OpenBSD team sanctions nor approves
of such use. I like the graphic.
|


Strength of the Ocean
The ocean washes away even the biggest and heaviest weapons effortlessly.
${value}% Cold Resistance
20 28 36 44 52 60 68 76 84 92
-${value}% Strength Requirement for all Weapons
8 12 16 20 24 28 32 36 40 44
MaxLevel
6
UltimateLevel
10


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
F
G
H
I
K
L
M
O
P
R
S
T
U
V
W
I
ID
- Enum in
domain
isAlive()
- Method in class domain.
Laser
isAvailable()
- Method in class domain.
RemoteDBController
isBuild()
- Method in class domain.
BuildModeKeys
isCanAddBricks()
- Method in class UI.
Window
isChemical()
- Method in class domain.
Ball
isChemical()
- Method in class UI.
GUIBall
isCollected()
- Method in class domain.
ChemicalBallPU
isCollected()
- Method in class domain.
FireballPU
isCollected()
- Method in class domain.
GangOfBallsPU
isCollected()
- Method in class domain.
LaserPU
isCollected()
- Method in class domain.
MagnetPU
isCollected()
- Method in class domain.
TallerPaddlePU
isFire()
- Method in class domain.
Ball
isFire()
- Method in class UI.
GUIBall
isGameActive()
- Method in class domain.
GameController
isGameOver()
- Method in class domain.
GameController
isGameOver()
- Method in class UI.
UIController
isGang()
- Method in class domain.
Ball
isHit()
- Method in class domain.
Alien
isHit()
- Method in class domain.
Brick
isHitHalfMetal()
- Method in class domain.
Laser
isLaser()
- Method in class domain.
Paddle
isLaunched()
- Method in class domain.
Ball
EFFECTS: This method returns the current state of isLaunched field when called upon.
isLaunched()
- Method in class domain.
Laser
isMagnet()
- Method in class domain.
Paddle
isMagnet()
- Method in class UI.
GUIPaddle
isMove()
- Method in class domain.
BuildModeKeys
isRotateLeft()
- Method in class domain.
Paddle
isRotateRight()
- Method in class domain.
Paddle
isSelected()
- Method in class domain.
Brick
isTall()
- Method in class domain.
Paddle
A
B
C
D
F
G
H
I
K
L
M
O
P
R
S
T
U
V
W
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


Frequently Asked Questions (FAQ)
Can an id have more than one word?
Yes, your ids can have more than one word as long as there are no spaces. Separate each word with a dash instead.
Can visitors bookmark anchor links?
Yes, they can! And when they visit that link, the browser will jump down to the anchor as expected. Visitors can share the link with others, too, so all the more reason to choose meaningful anchor names.
My anchor link isn't working. What am I doing wrong?
The problem could be a few things. First, double-check that you added an id (without "#") to the element your link should point to. Also, be sure that the anchor in your link is preceded by "#" and that it matches the anchor id.
How do I link to a specific part of someone else's webpage?
Although you obviously can't add anchors to other people's pages, you can take advantage of the ones that they have already created. View the source code of their webpage to see if they've included an id on the part of the page you want to link to. (For help viewing source code, consult "The Inspiration of Others" in Chapter 2.) Then create a link that includes the anchor.


{% capture root_url %}{{ site.root | strip_slash }}{% endcapture %} {% include head.html %}
I code on github,
tweet on twitter,
listen on Lastfm,
post on madhukarah,
hack on projects,
friend on facebook,
connect on linkedin,
& email on gmail.


This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
(C) 2021 Shivam Pandey


Sneakers For Sale
Size: 10.5
The Off-White Jordan 1s were released on June 23, 2018 and retailed for $190. They now
go for $1,420.
Size: 10
The Yeezy Citrins were released on September 23, 2019 and retailed for $220. They now
go for $222.
Size: 9
The Yeezy Citrins were released on September 23, 2019 and retailed for $220. They now
go for $228.
Size: 6
The Off-White Air Force 1s were released on December 19, 2018 and retailed for $170. They now
go for $899.
Size: 6
The Off-White Air Max 90 Desert Ore was released on February 7, 2019 and retailed for $160. They now
go for $580.
Size: 9
The Off-White Air Max 90 Desert Ore was released on February 7, 2019 and retailed for $160. They now
go for $658.
Size: 9
The Off-White Air Max 90 (black) was released on February 7, 2019 and retailed for $160. They now
go for $640.
Size: 9
The Off-White Air Force 1s were released on December 19, 2018 and retailed for $170. They now
go for $1,035.
Size: 9.5
The Travis Air Force 1 Sail was released on August 10, 2018 and retailed for $150. They now
go for $1,159.
Size: 9.5
The Travis Jordan 1 Low was released on July 20, 2019 and retailed for $130. They now
go for $918.
Size: 9
The Travis Jordan 1 High was released on May 11, 2019 and retailed for $175. They now
go for $1,779.


The Best Milk in the State
Agricultural mean crops livestock and livestock products Agriculture was development.
Read MoreExclusive Black Friday ! Offer
Agriculture was the key development in the rise of sedentary human civilization, whereby farming domesticated species.
Agriculture was the key development in the rise of sedentary human civilization, whereby farming domesticated species.
Agriculture was the key development in the rise of sedentary human civilization, whereby farming domesticated species.
Agriculture was the key development rise of sedentary human species.
Agriculture was the key development rise of sedentary human species.
Agriculture was the key development rise of sedentary human species.
Agriculture was the key development rise of sedentary human species.
A foodbank is a non-profit tha charitable organization that distributes food those who have difficulty show consists of a person's written or spoken statement extolling the virtue enough.
A foodbank is a non-profit tha charitable organization that distributes food those who have difficulty show consists of a person's written or spoken statement extolling the virtue enough.
A foodbank is a non-profit tha charitable organization that distributes food those who have difficulty show consists of a person's written or spoken statement extolling the virtue enough.
Agricultural mean crops livestock and livestock products Agriculture was development.
Read MoreAgricultural mean crops livestock and livestock products Agriculture was development.
Read MoreAgricultural mean crops livestock and livestock products Agriculture was development..
Read More


E
Export options
F
Freeze drawings - main dialog
G
General information
L
Licensing
O
Options
S
Save frozen drawings on the disk
Selected views


Describes the status of a parameter of seat.
@added in SmartDeviceLink 7.1.0
- (nonnull instancetype)initWithSeatLocation:
(nonnull SDLSeatLocation *)seatLocation
conditionActive:(BOOL)conditionActive;
init(seatLocation: SDLSeatLocation, conditionActive: Bool)
- seatLocation
- @(conditionActive)
A SDLSeatStatus object
The location of the seat on the vehicle grid
@property (nonatomic, strong) SDLSeatLocation *_Nonnull seatLocation;
var seatLocation: SDLSeatLocation { get set }
If the seat condition is active (see the containing object parameter, such as ‘seatsOccupied’)
@property (nonatomic, strong) NSNumber<SDLBool> *_Nonnull conditionActive;
var conditionActive: NSNumber & SDLBool { get set }


Tupper-Sketch
Using this tiny web-app, you can sketch a bitmap image in the top 17x107 grid or just draw the formula and see it reflected in the bottom grid using Tupper's self-referential formula. For more information please go here.
Top Grid
Bottom Grid
Current $k$ value that is generated from the top-grid is the following:
0


snapclear
{{dyn-screenname}}
Profile
Sign Out
Add files
Select
Upload files
Upload
Cancel All
Share
Edit
Delete
Cancel
×
×
×
Share files...
Sharing to:


{{prop.label}}
Required
*{{prop.regExpErrorMsg?prop.regExpErrorMsg:"Value must match pattern: "+prop.regExp}}{{prop.name}} is a required fieldminimal allowed value: {{prop.min}}maximal allowed value: {{prop.max}}Must have at least {{prop.minLength}} charactersCan have {{prop.maxLength}} characters at maximumEmail is not valud{{prop.label}}
Required
*
{{ lookup.description }}
{{prop.name}} is a required fieldPlease select a value from dropdown


| Full Trust Approach | App Approach |
|---|---|
|
Content Types
A content type, is a shared definition of a list. It describes Fields and Views, which can be reused where they are deployed. |
Paradigm Shift - Deployment through Code
An alternate method is the creation of Content Types through code. This method takes the structure of a List, and creates the Content Type programmatically. While also popular in Full-Trust solutions, it is the preferred method through the App Model, doing the same provisioning process remotely. |
| Impact of Full Trust Approach | Benefit of App Approach |
|
Dependency on Deployed Files
When you create a an element in SharePoint from a Declarative file, the content you have created is then dependent on the xml files they are described in. When these need to be retracted, due to an update, a change in the system, or part of a disaster recovery plan, this link is broken. This will ultimately cause issues in the long run. |
Cloud Application Model
The Cloud Application Model or CAM, is designed to create content through code, therefore not creating any dependency links. |
|
ContentTypeCollection contentTypes = web.ContentTypes;
|
Efforts and Benefits
| Migration Impact | High |
| Re-Design Effort | Medium |
| Re-Development Effort | High |
| Long Term Benefit | Critical |
Effort Drivers


nips nips2006 nips2006-164 nips2006-164-reference knowledge-graph by maker-knowledge-mining
Source: pdf
Author: Manfred K. Warmuth, Dima Kuzmin
Abstract: We design an on-line algorithm for Principal Component Analysis. In each trial the current instance is projected onto a probabilistically chosen low dimensional subspace. The total expected quadratic approximation error equals the total quadratic approximation error of the best subspace chosen in hindsight plus some additional term that grows linearly in dimension of the subspace but logarithmically in the dimension of the instances. 1


JSON Path
The concept of JSONPath is widely credited to Stefan Goessner. His blog post describes it as a parallel to XPath but for JSON instead of XML. In short, the syntax allows one to query a JSON object for one or more values. While this page covers the basics of JSONPath, reading the blog post is still worthwhile.
Concept
As with any programming language, JsonPath is constructed using a series of operators and values. These work together to describe which values are returned and which are filtered out. Below is a list of the operators.
$
- The root of the JSON. Can be used inside JavaScript expressions as well (see()
and?()
)..
- Indicates the desired value should be an object. E.g.$.
would return the value at the root only if it is an object.[]
- Indicates the desired value is an array. E.g.$[]
would return the value at the root only if it is an array.- Brackets must not be empty.
- A number within brackets specifies an index of the array to return.
- Numbers can be comma-separated to return multiple specific indices.
- Numbers can be colon-separated to indicate a start-end-step sequence. See this StackOverflow post for a concise description of the syntax.
..
- Performs a recursive search for the key that follows it. E.g...store.
performs a recursive search for an object that contains the keystore
(and..[]
recursively searches for an array).*
- A wildcard. Returns all values at the current level. May appear after.
or..
or inside[]
.()
- Surrounds a JS expression which evaulates to an index. *?()
- Surrounds a JS expression which evaluates to a boolean. Used as a filter. *@
- Self-referencing operator. When inside()
, references the array; when inside?()
, references the current value while iterating; invalid elsewhere.
* Only avlid inside the []
operator.
In order to reference specific keys within a JSON object, the key itself is used. For instance, if the root is a JSON object $.store
will return the value under the store
key, if it exists. There is one exception to this: length
is a reserved keyword and will return the length of an array. For example, given the JSON [5, true, "string"]
, the path $.length
will return [3]
.
These operators can be chained together to create very complex paths.
The results returned from evaluating a path is a JSON array containing the matching values, if any.
NOTE Although Mr. Goessner's post states that false
should be returned for an empty result set, he does allow for an empty array to be optionally returned. Manatee.Json takes this approach since client code will be simpler when a single return type is always expected.
JavaScript Expression support in JsonPath
The ()
and ?()
operators require an expression to be entered.
The expression inside ()
must evaluate to an integer index. If the index is within the bounds of the array, the value at this index will be returned.
The expression inside ?()
must evaluate to a boolean. This expression will be evaluated for each value in the array. If the expression returns true
, the value is included; otherwise it is excluded from the results.
Inside a search expression, the array or current value may be referenced using the @
operator. This functions the same as the root operator $
but targets the array or current value instead. However, the $
operator can still be used to back-reference the root as well.
NOTE Since the ()
operator does not iterate through the array, the target of the @
operator is the array itself rather than an item contained within it.
Building a JSONPath with Manatee.Json
To represent JSONPaths, Manatee.Json exposes the JsonPath
object. To create a JsonPath
object, the JsonPathWith
static class has been provided. This class has static and extension methods which can be used to create any sort of path desired. Below is a listing of the available methods. All of these methods are available as extension methods as well, which allows them to be chained together.
NOTE The extension methods return a new JsonPath
instance rather than modifying the passed instance. This behavior emulates that of Linq extension methods.
Name()
- Adds.*
.Name(string)
- Adds a.
operator and a key.Length()
- Adds.length
.Array()
- Adds[*]
Array(params Slice[])
- Adds[]
with a list of indices and slices to return.Array(Expression<Func<JsonArray, int>>)
- Adds[()]
with a function which takes aJsonArray
and returns anint
.Array(Expression<Func<JsonValue, bool>>)
- Adds[?()]
with a function which takes aJsonValue
and returns abool
.Search()
- Adds..*
.Search(string)
- Adds a..
operator and a key.SearchLength()
- Adds..length
.SearchArray()
- Adds..[*]
SearchArray(params Slice[])
- Adds..[]
with a list of indices and slices to return.SearchArray(Expression<Func<JsonArray, int>>)
- Adds..[()]
with a function which takes aJsonArray
and returns anint
.SearchArray(Expression<Func<JsonValue, bool>>)
- Adds..[?()]
with a function which takes aJsonValue
and returns abool
.
TIP There is an implicit conversion from int
to Slice
so that you can pass just individual indexes into the Array(params Slice[])
and SearchArray(params Slice[])
methods. This means that individual indexes mixed with slices are supported. For example JsonPathWith.Array(1, new Slice(3, 5))
will construct the path $[1,3:5]
.
You may have noticed that a few of these take Linq Expressions as their argument. This is to facilitate easy creation of JSONPath expression arguments in a way familiar to .Net developers. It also provides compile-time checking on the expressions.
Two static classes have been created to aid in the creation of these expressions. One that contains extension methods for JsonValue
and JsonArray
, and another which contains non-extension static versions of the same methods. The reasoning for having two classes will be explained shortly. For now let's have a look at the extension methods in PathExpressionExtensions
.
Length()
- Returns the length of an array. ExtendsJsonValue
andJsonArray
for use in both kinds of expressions.HasProperty(string)
- Returnsfalse
if the current value:- is not an object,
- is an object but does not contain the indicated key,
- is an object and contains the indicated key, and the key's value is
false
.
Name(string)
- If the value is an object, returns the value under the indicated key; otherwisenull
.ArrayIndex(int)
- If the value is an array, returns the value at the indicated index; otherwisenull
.IndexOf(JsonValue)
- If the value is an array, returns the index of the indicated value if it is found; otherwise -1.- This can be useful when attempting to ascertain whether an array contains a specific value:
.IndexOf() != -1
can be used like aContains()
.
- This can be useful when attempting to ascertain whether an array contains a specific value:
NOTE All of these extension methods can be considered null
-proof. That is, they will handle the case where they are called on a null
object without throwing an exception.
The above methods allow you to build paths on the value passed into the expression (either a JsonValue or JsonArray). If you'd like to build a path on the root object within an expression, use the JsonPathRoot
static class to start the path. (These non-extension methods are specifically purposed for referencing the root. This is why they're segregated into a separate class.)
Examples
Below is the Manatee.Json implementations of the examples presented on Mr. Goessner's post.
$.store.book[*].author
JsonPathWith.Name("store").Name("book").Array().Name("author")
$..author
JsonPathWith.Search("author")
$.store.*
JsonPathWith.Name("store").Name()
$.store..price
JsonPathWith.Name("store").Search("price")
$..book[2]
JsonPathWith.Search("book").Array(2)
$..book[(@.length-1)]
JsonPathWith.Search("book").Array(a => a.Length() - 1)
$..book[-1:]
JsonPathWith.Search("book").Array(new Slice(-1, null))
$..book[0,1]
JsonPathWith.Search("book").Array(0, 1)
$..book[:2]
JsonPathWith.Search("book").Array(new Slice(null, 2))
$..book[?(@.isbn)]
JsonPathWith.Search("book").Array(v => v.HasProperty("isbn"))
$..book[?(@.price<10)]
JsonPathWith.Search("book").Array(v => v.Name("price") < 10)
$..*
JsonPathWith.Search()
Here's an example of a path with an expression which contains a path referencing the current value and the root:
$..book[?(@.price<$.store.bicycle.price)]
JsonPathWith.Search("book").Array(v => v.Name("price") < JsonPathRoot.Name("store").Name("bicycle").Name("price"))
You can perform arithmetic operations within your expressions:
$..book[?(@.price+1<15.99)]
JsonPathWith.Search("book").Array(v => v.Name("price") + 1 < 15.99)
You can even use local and instance fields in your expression:
double price = 15.99;
var path = JsonPathWith.Search("book").Array(v => v.Name("price") + 1 < price);
As the field updates, the path evaluation will change accordingly.
IMPORTANT While you may use local and instance fields in your expressions, the extension methods currently only support literal arguments. Passing fields, properties, or method calls into these methods will throw a NotSupportedException
.
IMPORTANT The methods contained within PathExpressionExtensions
and JsonPathRoot
will throw a InvalidOperationException
if called outside of the context of one of the JsonPathWith
methods.
Parsing
Parsing string representations of JSONPaths is quite simple. The JsonPath
class exposes a Parse(string)
method. If there is a problem with the string which is passed, it will throw a JsonPathSyntaxException
which contains the portion of the path which was successfully parsed.
The return is the JsonPath
instance. It's really that simple. The benefit of building the path with the extension methods is that you're pretty much guaranteed that the path will be valid if it compiles.
Working with JsonPath
Evaluating JSONPaths is easy. The JsonPath
class exposes the Evaluate(JsonValue)
method. This method will return a JsonArray
containing all matches (or empty if there were none).
NOTE The return deviates slightly from Mr. Groessner's implementation in that an empty array is returned when there are no matches, as opposed to a false
value.


This is a simple chapter. Table of contents:
A chapter section, yay!
A subsection, yay!A sub-subsection, triple-yay! This is as deep as we go though.
I'm not sure whether to cry or cheer... o_O
More paragraphs are always good. ^_^
Oh whew, we can abbreviate (paragraph) with (p)
We can do blockquotes, yay!Why do you like guys anyway?
They can be so silly sometimes!
On average,
they are taller than the ladies.
I have fewer neck problems when we kiss.
-???


Biography:
I am a slightly overwhelmed, mostly lost electrical engineering refugee wandering in the land of Computer Science. Despite the highly superficial, clearly overrated standards set by the capital-driven world we live in, I have the sheer human stubbornness to keep dreaming of becoming a university professor some day and have my own lab space, teeming with enthusiastic students to whom I can safely pass the baton. Originally from Pakistan, I call the entire world my home.
Favorite TV shows:
- Seinfeld
- Alpha, Bravo, Charlie (Pakistani show)
- That's So Raven
- Modern Family
- Grey's Anatomy
Hobbies:
- Reading
- Blogging
- Science communication


Creating visuals for users that cross more than different information categories (from animals, to sports, to stock, to travel, and more), multiple devices (mobile, pad, web), and multiple countries.
Finding innovative UX/Visual solution to complex design challenge.
Understanding of UX design principles (flows, states, process) with platform design (iOS, Android) and production.
Working closely with different backgounds of Experts (future research, banking security, etc.) to identify strictly confidential projects, and build a research roadmap; communicate and refresh on a regular basis to ensure relevancy.
Worked as a Sr. design strategist at VINYL X, who is a service·UX design consulting group that seeks to empathize and evolve through business as a business between business and customers. Able to work independently or in a team with minimum supervision.
Managed activity for a collection of ambitious global brands, running cross market and multilingual campaigns worldwide, marketing campaigns with industry-leading data science, technology and performance linguistics, especially for Korean markets.
Helped clients understand what consumers are saying about a company, by analysing discussion in a way which will answer the questions. The unique combination of technology and accurate human coding allows me to extract those answers and deliver the relevant insights.
Assured that high-quality graphic promotions(BTL) for the 1st in eyewear distribution in Korea, ‘Lookoptics’ who is a wholesaler of photo equipments and optical products and popularized high quality fashion eyewear at reasonable prices.
She has solid writing & research skills which have enabled her to compose quality business proposals.
I supervised Jeong-ah’s master’s project. She was a diligent and proactive student and delivered an excellent project on the subject of design and branding.
I asked her to present her excellent research on a service industry as a lecturer in Branding Week.


Birthdays only happen once a year, so commemmorate
them right with a Tasty Cake! We have over 300
different cake designs.
The cake for weight watchers
Counting calories? Measuring inches? No problem.
We make cakes that are super healthy AND super
tasty! Organic, too!
Sinfully delicious
Who doesn't love raspberry, especially
when paired with our gourmet milk chocolate icing...
we take pride in our gourmet recipes.
Strawberry-licious!
The perfect cake for a summer picnic! We always
usefresh strawberries purchased locally, so you get
the juciest of the juicy.
For your special day
Weddings are a beautiful occasion, so what goes
better with them than a beautiful cake! We have
specialists that will help you pick out the perfect
design.


Privacy
Google Analytics
We use Google Analytics to track the use of our site.
The data stays at Google Analytics and is not sent to the "main" Google
No information is sent for benchmarking
No information is sent for assistance
No information is sent to Google Account Specialists
Twitter Embeds
Our Twitter embeds have "Do not track" tags inside them. Wether Twitter tracks you or not on our site is unknown currently.


The Purpose Of A Business
by David MannersIs the purpose of a business just to make money?
Some people would say Yes but, 33 years ago in his book The Marketing Imagination, Theodore Levitt suggested that the purpose of a business was more than that.
Levitt summed up the purpose of a business in five propositions. They are:
The purpose of a business is to create and keep a customer
To do that you have to produce and deliver goods and services that people want and value at prices and under conditions that are reasonably attractive relative to those offered by others to a proportion of customers large enough to make those prices and conditions possible.
To continue to do that, the enterprise must produce revenue in excess of costs in sufficient quantity and with sufficient regularity to attract and hold investors in the enterprise, and must keep at least abreast and sometimes ahead of competitive offerings.
No enterprise, no matter how small, can do any of this by mere instinct or accident. It has to clarify its purpose, strategies, and plans and the larger the enterprise the greater the necessity that these be clearly written down, clearly communicated, and frequently reviewed by the senior members of the enterprise.
In all cases, there must be an appropriate system of rewards, audits, and controls to assure that what’s intended gets properly done and, when not, that it gets quickly rectified.


Following is the procedure that I created to mount a 4 ft high lift jack directly behind the rear seat perched on the wheel wells. Most of this is common sense and you may wish to modify to your wishes...however this gives you the idea. The nice thing about this is that is "rollover proof" and it out of the elements and occupies space otherwise wasted.
 I could then lock the gate and therefore secure the jack.
My objective was to get the jack as close to the rear seat as possible. Here is what I did:
Mark flat stock with f/r markings (so you can follow me).  This will be where you reinstall the longer roll bar bolt. Drill another 1/4" hole (centered) about 1" from the front side for the 3" hex head bolts.
Run the the 3" hex head bolts through the front holes of the flat stock and install them so the head is down.  The bolt going into the rollbar holds the bolt head tight against the fender (you may want to put a thin piece of rubber to prevent squeaks). Replace the carpet and cut a small hole to allow the bolt to protrude through the carpet.
Take the base off the jack and install the jack with the handle toward the rear of the Jeep (the top of jack will be on passenger side). Put the drivers side bolt through the bottom of the jack and the passenger side bolt through the top of the jack. You'll see how neat it mates up when you do it.
You're finished! I've put rubber on the handle and zip tied it to keep it quiet.


This is the course website. This page shows information about the consultation times, MoVE, and Schedule and lecture notes.
The “Assessments” tab above provides information about all assessment for ETC5510.
Borrow a laptop: If you are enrolled in a MoVE unit and forget your laptop, or do not own one as yet, please visit Monash Connect to borrow a laptop for an activity or part of a day:
Clayton: 7.45AM - 5PM
You may be required to provide proof of ID (student card or personal ID) in order to borrow a laptop. We have a limited amount of laptops available for students to borrow (during semester only). Collect an IT Services ticket when you go to Monash Connect.
Consultations begin from Week 2 (16th March)
Download the practical exam at this link (Opens at 6pm).
Instructions for the group project is available via the assessments tab.
The lecturer and the tutors will be available this week via the ED forum and Zoom to answer any questions you have about the course or content.
The lecturer is available for consultation at the following times
The tutors will be monitoring the ED forum during class times.
Lecture recordings for this week will be posted on Moodle. These are based on lectures recorded for ETC1010, so please ignore any reference to Rstudio cloud and instead refer to the Setup R handout.
There are two lectorials every week:
There are no lectorials during the midsemester break.
| Week | Lecture | Date | Slides | Topic | Exercise | Readings | Assessment |
|---|---|---|---|---|---|---|---|
| 1 | A | 2020-03-09 | Introduction to the language of data analysis | Chapter 4 (very short) | NA | ||
| 1 | B | 2020-03-11 | Chapters 1 - 4 in Rmarkdown for Scientists | NA | |||
| 2 | A | 2020-03-16 | Tidy data principles, reshaping your data into tidy form, and basic data wrangling | Chapter 12: Tidy Data | NA | ||
| 2 | B | 2020-03-18 | Chapter 5: Data Transformation | NA | |||
| 3 | A | 2020-03-30 | Plotting your data, and wrangling temporal data | Chapter 3: Data visualisation (again!) | NA | ||
| 3 | B | 2020-04-01 | Chapter 16: Dates and Times | NA | |||
| 4 | A | 2020-04-06 | Advanced wrangling, joining tables, and advanced data visualisation | Chapter 13: Relational Data | NA | ||
| 4 | B | 2020-04-08 | Chapter 1 of Data Visualisation: A Practical Introduction | Assignment 1 | |||
| Midsemester Break | |||||||
| 5 | A | 2020-04-20 | Handling missing values and scraping data |
Getting Started with Missing values Gallery of Missing Data Visualisations |
NA | ||
| 5 | B | 2020-04-22 |
rvest R package for web scraping README rvest description of selectorGadget |
NA | |||
| 6 | A | 2020-04-27 | Introduction to programming | Functions | NA | ||
| 6 | B | 2020-04-29 | Iteration | Mid Semester Electronic Exam | |||
| 7 | A | 2020-05-04 | Introuction to linear models | Modelling Basics | NA | ||
| 7 | B | 2020-05-06 | Many Models | NA | |||
| 8 | A | 2020-05-11 | Analysing text data |
Introduction to tidy text analysis Sentiment Analysis with tidy text |
NA | ||
| 8 | B | 2020-05-13 | n-grams | NA | |||
| 9 | A | 2020-05-18 | Wrangling, plotting and modeling network data | None | NA | ||
| 9 | B | 2020-05-20 | Project Developement / Making Dashboards | None | Assignment 2 | ||
| 10 | A | 2020-05-25 | Computational modeling - classification and regression trees | None | NA | ||
| 10 | B | 2020-05-27 | None | NA | |||
| 11 | A | 2020-06-01 | Project Development | None | NA | ||
| 11 | B | 2020-06-03 | Project Development | None | Takehome Exam | ||
| 12 | A | 2020-06-08 | Submission and Peer Evaluation of Projects | None | Project Due | ||
| 12 | B | 2020-06-10 | None | Project Peer Evaluation |


CSS/Javascript/ HTML
Contact meAn experienced and knowledgeable Information Technology professional adept at resolving complex IT issues.
I can work well independently as well as in group settings where I am skilled at contributing to the team.
I am adept at providing all facets of computer support such as troubleshooting, installations, and maintenance.
I also possess in-depth knowledge of numerous software packages and operating systems and have a keen understanding
of how they interact with other systems. Strong knowledge of Microsoft Office Suite and Adobe Software Family.
Strong knowledge of Data Analysis and presentation skills using Tableau, Excel.
Proficiency in Microsoft Office Packages
Web development using Django, Flask.
MEAN Stack (intermediate level) using Node.js,
Mongo dB, Express and Angular.
Strong Communication and analytical skills.
Speaks Igbo and English languages fluently.
And at the end of Ace Africa cycle4, i want to be known as a software Engineer.