在 jetty.xml 中没有 URL 的情况下将 zeroDateTimeBehavior 变量添加到数据源
Add zeroDateTimeBehavior variable to the Datasource without URL in jetty.xml
我正在尝试通过 grails 应用程序连接到多个数据源。我尝试在开发环境中正常工作。最初有一个时间戳错误,通过将“zeroDateTimeBehavior=convertToNull
”添加到 url 得到解决。但是现在在生产环境中,我不明白如何添加这个变量。
我的开发环境代码是,
dataSource_test {
driverClassName = "com.mysql.jdbc.Driver"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
dbCreate = "validate" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"
username = "root"
password = "root"
}
而我的生产环境代码是
dataSource_test{
dbCreate = "validate"
jndiName = "java:comp/env/jdbc/test"
}
我还将此数据源添加到 jetty.xml,如下所示,
<New id="DS" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg><Ref refid="Server"/></Arg>
<Arg>jdbc/test</Arg>
<Arg>
<New class="com.zaxxer.hikari.HikariDataSource">
<Arg>
<New class="com.zaxxer.hikari.HikariConfig">
<Set name="minimumIdle"><Property name="db.min.conn" /></Set>
<Set name="maximumPoolSize"><Property name="db.max.conn" /></Set>
<Set name="dataSourceClassName">com.mysql.jdbc.jdbc2.optional.MysqlDataSource</Set>
<Set name="username"><Property name="db.user" /></Set>
<Set name="password"><Property name="db.pass" /></Set>
<Call name="addDataSourceProperty">
<Arg>url</Arg>
<Arg>jdbc:mysql://<Property name="db.host" />/test</Arg>
</Call>
<Set name="leakDetectionThreshold">30000</Set>
</New>
</Arg>
</New>
</Arg>
</New>
我不明白我应该把“zeroDateTimeBehavior=convertToNull
”放在哪里?
它只是数据源 mysql 一侧的 属性。
只需设置它(就像您所做的 url)
这应该有效(与 mysql 数据源的任何其他 属性 一样)
<Call name="addDataSourceProperty">
<Arg>zeroDateTimeBehavior</Arg>
<Arg>convertToNull</Arg>
</Call>
我正在尝试通过 grails 应用程序连接到多个数据源。我尝试在开发环境中正常工作。最初有一个时间戳错误,通过将“zeroDateTimeBehavior=convertToNull
”添加到 url 得到解决。但是现在在生产环境中,我不明白如何添加这个变量。
我的开发环境代码是,
dataSource_test {
driverClassName = "com.mysql.jdbc.Driver"
dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
dbCreate = "validate" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"
username = "root"
password = "root"
}
而我的生产环境代码是
dataSource_test{
dbCreate = "validate"
jndiName = "java:comp/env/jdbc/test"
}
我还将此数据源添加到 jetty.xml,如下所示,
<New id="DS" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg><Ref refid="Server"/></Arg>
<Arg>jdbc/test</Arg>
<Arg>
<New class="com.zaxxer.hikari.HikariDataSource">
<Arg>
<New class="com.zaxxer.hikari.HikariConfig">
<Set name="minimumIdle"><Property name="db.min.conn" /></Set>
<Set name="maximumPoolSize"><Property name="db.max.conn" /></Set>
<Set name="dataSourceClassName">com.mysql.jdbc.jdbc2.optional.MysqlDataSource</Set>
<Set name="username"><Property name="db.user" /></Set>
<Set name="password"><Property name="db.pass" /></Set>
<Call name="addDataSourceProperty">
<Arg>url</Arg>
<Arg>jdbc:mysql://<Property name="db.host" />/test</Arg>
</Call>
<Set name="leakDetectionThreshold">30000</Set>
</New>
</Arg>
</New>
</Arg>
</New>
我不明白我应该把“zeroDateTimeBehavior=convertToNull
”放在哪里?
它只是数据源 mysql 一侧的 属性。
只需设置它(就像您所做的 url)
这应该有效(与 mysql 数据源的任何其他 属性 一样)
<Call name="addDataSourceProperty">
<Arg>zeroDateTimeBehavior</Arg>
<Arg>convertToNull</Arg>
</Call>