|
1 | 1 | require 'db/jndi_base'
|
2 | 2 |
|
3 |
| -JNDI_MYSQL_CONFIG = { :adapter => 'mysql', :jndi => 'jdbc/MyDB' } |
| 3 | +JNDI_MYSQL_CONFIG = { :adapter => 'mysql2', :jndi => 'jdbc/MyDB' } |
4 | 4 |
|
5 | 5 | unless ( ps = ENV['PREPARED_STATEMENTS'] || ENV['PS'] ).nil?
|
6 | 6 | JNDI_MYSQL_CONFIG[:prepared_statements] = ps
|
|
11 | 11 |
|
12 | 12 | require 'db/mysql_config'
|
13 | 13 |
|
14 |
| -data_source = com.mysql.jdbc.jdbc2.optional.MysqlDataSource.new |
| 14 | +old_driver = nil |
| 15 | +begin |
| 16 | + data_source = com.mysql.cj.jdbc.MysqlDataSource |
| 17 | +rescue NameError |
| 18 | + data_source = com.mysql.jdbc.jdbc2.optional.MysqlDataSource |
| 19 | + old_driver = true |
| 20 | +end |
| 21 | + |
| 22 | +data_source = data_source.new |
15 | 23 | data_source.database_name = MYSQL_CONFIG[:database]
|
16 | 24 | data_source.url = MYSQL_CONFIG[:url] if MYSQL_CONFIG[:url]
|
17 | 25 | data_source.server_name = MYSQL_CONFIG[:host] if MYSQL_CONFIG[:host]
|
|
20 | 28 | data_source.password = MYSQL_CONFIG[:password] if MYSQL_CONFIG[:password]
|
21 | 29 |
|
22 | 30 | # must set these to match non-jndi setup
|
23 |
| -data_source.cache_default_timezone = false |
| 31 | +data_source.cache_default_timezone = false if data_source.respond_to?(:cache_default_timezone) |
24 | 32 | data_source.server_timezone = java.util.TimeZone.getDefault.getID
|
25 |
| -data_source.use_legacy_datetime_code = false |
26 |
| -data_source.zero_date_time_behavior = 'convertToNull' |
| 33 | +data_source.use_legacy_datetime_code = false if data_source.respond_to?(:use_legacy_datetime_code) |
| 34 | +data_source.zero_date_time_behavior = old_driver ? 'convertToNull' : 'CONVERT_TO_NULL' |
27 | 35 | data_source.jdbc_compliant_truncation = false
|
28 | 36 |
|
29 | 37 | javax.naming.InitialContext.new.bind JNDI_MYSQL_CONFIG[:jndi], data_source
|
0 commit comments