Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置与tomcat 7的数据库连接_Java_Mysql_Spring_Tomcat - Fatal编程技术网

Java 设置与tomcat 7的数据库连接

Java 设置与tomcat 7的数据库连接,java,mysql,spring,tomcat,Java,Mysql,Spring,Tomcat,我有一个使用MySQL、Spring和tomcat服务器的工作程序,但数据库连接在Spring-database.xml中: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans

我有一个使用MySQL、Spring和tomcat服务器的工作程序,但数据库连接在Spring-database.xml中:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="baseController" class="com.afterguard.sailplanner.controller.BaseController">
        <property name="dao" ref="daoImpl" />
    </bean>

    <bean id="daoImpl" class="com.afterguard.sailplanner.dao.DaoImpl">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/sailplanner" />
        <property name="username" value="sailplanner" />
        <property name="password" value="sailplanner2" />
    </bean>

</beans>

为了现在在服务器上部署此程序,我需要将此数据库连接带到服务器,例如context.xml order server.xml


如何设置tomcat 7服务器以连接到数据库并告诉我的应用程序数据库连接是在tomcat中设置的?

应将数据库连接属性放入属性文件中,并根据需要更改属性文件中的值

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClass" value="${jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${jdbc.databaseurl}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />

    </bean>
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.databaseurl=jdbc:mysql://localhost:3306/sailplanner

jdbc.username=root
jdbc.password=root
并将此文件包含在xml中使用

<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true" />
        <property name="locations">
            <list>
                <value>classpath:applications.properties</value> 

            </list>
        </property>
    </bean>

类路径:applications.properties

应将数据库连接属性放入属性文件中,并根据需要更改属性文件中的值

        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClass" value="${jdbc.driverClassName}" />
        <property name="jdbcUrl" value="${jdbc.databaseurl}" />
        <property name="user" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />

    </bean>
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.databaseurl=jdbc:mysql://localhost:3306/sailplanner

jdbc.username=root
jdbc.password=root
并将此文件包含在xml中使用

<bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true" />
        <property name="locations">
            <list>
                <value>classpath:applications.properties</value> 

            </list>
        </property>
    </bean>

类路径:applications.properties

您必须使用JNDI创建数据源:

首先,在Springbean配置(spring database.xml)中添加以下内容:

 <beans:bean id="dbDataSource"  class="org.springframework.jndi.JndiObjectFactoryBean">
    <beans:property name="jndiName" value="java:comp/env/jdbc/myDB"/>
</beans:bean>

其次,在文件apache tomcat/conf/server.xml中创建jndi资源:

<Resource name="jdbc/globalDB"
  global="jdbc/globalDB"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/sailplanner"
  username="sailplanner"
  password="sailplanner2"/>

最后,在文件apache tomcat/conf/context.xml中创建资源链接:

<ResourceLink name="jdbc/myDB"
                global="jdbc/globalDB"
                auth="Container"
                type="javax.sql.DataSource" />

您必须使用JNDI创建数据源:

首先,在Springbean配置(spring database.xml)中添加以下内容:

 <beans:bean id="dbDataSource"  class="org.springframework.jndi.JndiObjectFactoryBean">
    <beans:property name="jndiName" value="java:comp/env/jdbc/myDB"/>
</beans:bean>

其次,在文件apache tomcat/conf/server.xml中创建jndi资源:

<Resource name="jdbc/globalDB"
  global="jdbc/globalDB"
  auth="Container"
  type="javax.sql.DataSource"
  driverClassName="com.mysql.jdbc.Driver"
  url="jdbc:mysql://localhost:3306/sailplanner"
  username="sailplanner"
  password="sailplanner2"/>

最后,在文件apache tomcat/conf/context.xml中创建资源链接:

<ResourceLink name="jdbc/myDB"
                global="jdbc/globalDB"
                auth="Container"
                type="javax.sql.DataSource" />

对于Sql Server,我执行以下配置:

  • 您必须使用Tomcat来管理连接。为此,我们将向TOMCAT_HOME/conf/context.xml文件添加数据源

    
    
  • 必须将SQL Server JDBC驱动程序(jtds version.jar)复制到TOMCAT_HOME/lib文件夹(如果还没有)

  • 如果有多个数据源(OLTP1、OLTP2等),我们将添加多个
    标记

  • 您将使用以下JNDI名称命名我们的数据源:

    jdbc/Oltp1 – main OLTP database
    jdbc/Oltp2 – secondary database
    
  • 您将配置数据源,以便连接池知道如何测试连接以及如何处理关闭的连接:

    testOnBorrow="true"
        testOnConnect="true"
        validationQuery="SELECT 1"
        removeAbandoned="true"
        removeAbandonedTimeout="30"
    
  • 添加新资源或修改现有资源时,必须重新启动Tomcat

  • application.properties文件

    重要!此文件作为类路径(src/main/resources/application.properties)的一部分部署,而不是外部化属性部署到TOMCAT_HOME/conf的external application.properties

  • 将向该文件添加以下属性:

    spring.datasource.jndi-name=java:comp/env/jdbc/Oltp1
    
  • 您需要从application.properties中删除所有其他spring.datasource属性(如果存在)

  • 重要!您必须从外部配置文件中删除所有spring.datasource属性(部署到COMCAT_HOME/conf的application.properties)


  • 对于Sql Server,我执行以下配置:

  • 您必须使用Tomcat来管理连接。为此,我们将向TOMCAT_HOME/conf/context.xml文件添加数据源

    
    
  • 必须将SQL Server JDBC驱动程序(jtds version.jar)复制到TOMCAT_HOME/lib文件夹(如果还没有)

  • 如果有多个数据源(OLTP1、OLTP2等),我们将添加多个
    标记

  • 您将使用以下JNDI名称命名我们的数据源:

    jdbc/Oltp1 – main OLTP database
    jdbc/Oltp2 – secondary database
    
  • 您将配置数据源,以便连接池知道如何测试连接以及如何处理关闭的连接:

    testOnBorrow="true"
        testOnConnect="true"
        validationQuery="SELECT 1"
        removeAbandoned="true"
        removeAbandonedTimeout="30"
    
  • 添加新资源或修改现有资源时,必须重新启动Tomcat

  • application.properties文件

    重要!此文件作为类路径(src/main/resources/application.properties)的一部分部署,而不是外部化属性部署到TOMCAT_HOME/conf的external application.properties

  • 将向该文件添加以下属性:

    spring.datasource.jndi-name=java:comp/env/jdbc/Oltp1
    
  • 您需要从application.properties中删除所有其他spring.datasource属性(如果存在)

  • 重要!您必须从外部配置文件中删除所有spring.datasource属性(部署到COMCAT_HOME/conf的application.properties)


  • 你想要什么不清楚,请澄清你的要求。好的,我试图澄清这个问题。你把数据库连接到服务器是什么意思?在其上创建数据库连接或仅将XML文件部署到您的应用程序中?我从您的问题中了解到,您希望在applicationContext.XML文件中使用spring-database.XML如果是,则应在applicationContext.XML文件中编写此代码可能与您想要的重复不清楚,请澄清您的要求。好的,我试图澄清这个问题。将数据库连接到服务器是什么意思?在上面创建一个数据库连接,或者只是在应用程序中部署XML文件?我从您的问题中了解到什么您想在applicationContext.XML文件中使用spring-database.XML如果是,那么您应该在applicationContext.XML文件中编写此代码可能与我使用的OpenShift相同我想把数据库连接到tomcat的context.xml中,而不是应用程序中。由于我使用OpenShift,我喜欢将数据库连接放到tomcat的context.xml中,而不是应用程序中。谢谢。正是我想要的。开箱即用。