The JDBC Connector allows Apache Geode to connect to external data sources with JDBC.
If your MySQL installation does not include JDBC driver, download it from https://dev.mysql.com/downloads/connector/j/
mysql.server start
. Use mysql
CLI to create database, table and populate the table:create database geode_db; use geode_db; create table parent(id bigint, name varchar(100), income double); insert into parent values (2, 'Parent_2', 987654321.0);
jdbc.jar
by running ../gradlew clean build
.The jar file jdbc.jar
will be generated in build/libs
directory.
jdbc.jar
to CLASSPATH
.e.g.
export CLASSPATH=/path/to/mysql-connector-java-8.0.15.jar:/path/to/geode-examples/jdbc/build/libs/jdbc.jar
gfsh run --file=scripts/start.gfsh
.This will start the locator and two servers. And create Parent
region, data source and JDBC mapping.
gfsh connect create data-source --name=mysql_data_source --url="jdbc:mysql://localhost/geode_db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" --username=root --password="changeme" create jdbc-mapping --data-source=mysql_data_source --region=Parent --table=parent --pdx-name=org.apache.geode_examples.jdbc.Parent --catalog=geode_db --id=id
../gradlew run
.This will first put
an entry with key 1 in Parent
region. The entry will be propagated to MySQL's parent
table in database geode_db
. Then it will invoke a get
with key 2. Since Parent
region does not have an entry with key equals 2, it will trigger JDBC Connector to load the entry from parent
table in database geode_db
from MySQL.
You can also use gfsh
to connect to cluster and run the following commands: list data-source
describe data-source
list jdbc-mapping
describe jdbc-mapping
destroy jdbc-mapping
destroy data-source
And use mysql
to query the parent
table.
gfsh run --file=scripts/stop.gfsh
.