Tomcat 如何在不使用URL的情况下在JNDI数据源上设置zeroDateTimeBehavior?

Tomcat 如何在不使用URL的情况下在JNDI数据源上设置zeroDateTimeBehavior?,tomcat,properties,datasource,jndi,Tomcat,Properties,Datasource,Jndi,在海报中,您可以将zeroDateTimeBehavior=“convertToNull”设置为标记上的属性 有人知道这是否可能吗?我看过的所有文档都说,您只能在数据库连接url上添加此属性 实际上,我正在寻找一种在Spring上下文中在数据源上设置此属性的方法,这样我们就不必到处更新我们的各种环境,或者冒着丢失属性的风险—如果有人需要更改连接url的话 Spring配置的数据源非常容易: <bean id="propsDataSource" class="com.mysql.jdbc.j

在海报中,您可以将
zeroDateTimeBehavior=“convertToNull”
设置为
标记上的属性

有人知道这是否可能吗?我看过的所有文档都说,您只能在数据库连接url上添加此属性

实际上,我正在寻找一种在Spring上下文中在数据源上设置此属性的方法,这样我们就不必到处更新我们的各种环境,或者冒着丢失属性的风险—如果有人需要更改连接url的话

Spring配置的数据源非常容易:

<bean id="propsDataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
  <property name="url" value="${connection.url}"/>
  <property name="user" value="${connection.username}"/>
  <property name="password" value="${connection.password}"/>
  <property name="zeroDateTimeBehavior" value="convertToNull"/>
 </bean>

有人知道如何通过JNDI配置的数据源来实现这一点吗

谢谢,

处于状态的文档应该通过URL传递

你能试试看这是否适合你吗

<ResourceParams name="jdbc/DataSourceName">
                    <parameter>
                         <name>zeroDateTimeBehavior</name>
                         <value>convertToNull</value>
                     </parameter>
</ResourceParams> 

zeroDateTimeBehavior
敞篷车

你好,乔赛克的回答是一样的

但我必须这样说:

<Resource 
    name="jdbc/TamaJNDI"
    auth="Container" 
    driverClassName="com.mysql.jdbc.Driver" 
    maxActive="15" 
    maxIdle="3" 
    name="jdbc/TamaJNDI" 
    password="*******" 
    type="javax.sql.DataSource" 
    url="jdbc:mysql://localhost:3306/OBRAS_CONTROL?zeroDateTimeBehavior=convertToNull" 
    username="TAMAWEB"/>


在我的Tomcat context.xml文件中。

以防有人因为使用

spring.cloud.gcp.sql.instance-connection-name=someProject:someRegion:someInstance
并且没有可粘贴的URL
zeroDateTimeBehavior
,请使用:

spring.cloud.gcp.sql.instance-connection-name=someProject:someRegion:someInstance&zeroDateTimeBehavior=convertToNull
这是因为在内部,该参数在

jdbc:mysql://google/somaDatabase?socketFactory=com.google.cloud.sql.mysql.SocketFactory&cloudSqlInstance=
因此,期望的结果是:

jdbc:mysql://google/somaDatabase?socketFactory=com.google.cloud.sql.mysql.SocketFactory&cloudSqlInstance=someProject:someRegion:someInstance&zeroDateTimeBehavior=convertToNull