VOOZH about

URL: https://www.cdata.com/kb/tech/mysql-jdbc-jetty.rst

⇱ Connect to MySQL Data from a Connection Pool in Jetty


Connect to MySQL Data from a Connection Pool in Jetty

👁 Jerod Johnson
Jerod Johnson
Director, Technology Evangelism
The MySQL JDBC Driver supports connection pooling: This article shows how to connect faster to MySQL data from Web apps in Jetty.

The CData JDBC driver for MySQL is easy to integrate with Java Web applications. This article shows how to efficiently connect to MySQL data in Jetty by configuring the driver for connection pooling. You will configure a JNDI resource for MySQL in Jetty.

Configure the JDBC Driver for Salesforce as a JNDI Data Source

Follow the steps below to connect to Salesforce from Jetty.

  1. Enable the JNDI module for your Jetty base. The following command enables JNDI from the command-line:

    java -jar ../start.jar --add-to-startd=jndi
    
  2. Add the CData and license file, located in the lib subfolder of the installation directory, into the lib subfolder of the context path.
  3. Declare the resource and its scope. Enter the required connection properties in the resource declaration. This example declares the MySQL data source at the level of the Web app, in WEB-INF\jetty-env.xml.

    <Configure id='mysqldemo' class="org.eclipse.jetty.webapp.WebAppContext">
     <New id="mysqldemo" class="org.eclipse.jetty.plus.jndi.Resource">
     <Arg><Ref refid="mysqldemo"/></Arg>
     <Arg>jdbc/mysqldb</Arg>
     <Arg>
     <New class="cdata.jdbc.mysql.MySQLDriver">
     <Set name="url">jdbc:mysql:</Set>
     <Set name="User">myUser</Set>
     <Set name="Password">myPassword</Set>
     <Set name="Database">NorthWind</Set>
     <Set name="Server">myServer</Set>
     <Set name="Port">3306</Set>
     </New>
     </Arg>
     </New>
    </Configure>
    

    The CData Provider supports connecting to on-premises and cloud-hosted versions of MySQL such as Amazon RDS for MySQL, Google Cloud SQL for MySQL, Azure Database for MySQL, or Oracle MySQL HeatWave. The Server and Port properties must be set to a MySQL server. If IntegratedSecurity is set to false, then User and Password must be set to valid user credentials. Optionally, Database can be set to connect to a specific database. If not set, tables from all databases will be returned.

    SSH Connectivity for MySQL

    You can use SSH (Secure Shell) to authenticate with MySQL, whether the instance is hosted on-premises or in supported cloud environments. SSH authentication ensures that access is encrypted (as compared to direct network connections).

    SSH Connections to MySQL in Password Auth Mode

    To connect to MySQL via SSH in Password Auth mode, set the following connection properties:

    • User: MySQL User name
    • Password: MySQL Password
    • Database: MySQL database name
    • Server: MySQL Server name
    • Port: MySQL port number like 3306
    • UserSSH: "true"
    • SSHAuthMode: "Password"
    • SSHPort: SSH Port number
    • SSHServer: SSH Server name
    • SSHUser: SSH User name
    • SSHPassword: SSH Password

    SSH Connections to MySQL in Public Key Auth Mode

    To connect to MySQL via SSH in Password Auth mode, set the following connection properties:

    • User: MySQL User name
    • Password: MySQL Password
    • Database: MySQL database name
    • Server: MySQL Server name
    • Port: MySQL port number like 3306
    • UserSSH: "true"
    • SSHAuthMode: "Public_Key"
    • SSHPort: SSH Port number
    • SSHServer: SSH Server name
    • SSHUser: SSH User name
    • SSHClientCret: the path for the public key certificate file
  4. Configure the resource in the Web.xml:

     jdbc/mysqldb
     javax.sql.DataSource
     Container
    
    
  5. You can then access MySQL with a lookup to java:comp/env/jdbc/mysqldb:

    InitialContext ctx = new InitialContext();
    DataSource mymysql = (DataSource)ctx.lookup("java:comp/env/jdbc/mysqldb");
    

More Jetty Integration

The steps above show how to configure the driver in a simple connection pooling scenario. For more use cases and information, see the Working with Jetty JNDI chapter in the Jetty documentation.

Ready to get started?

Download a free trial of the MySQL Driver to get started:

 Download Now

Learn more:

👁 MySQL Icon
MySQL JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with MySQL-compatible database engines.