Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.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
如何在tomcat服务器上部署带有mysql数据库的java web应用程序_Java_Mysql_Database_Eclipse_Tomcat - Fatal编程技术网

如何在tomcat服务器上部署带有mysql数据库的java web应用程序

如何在tomcat服务器上部署带有mysql数据库的java web应用程序,java,mysql,database,eclipse,tomcat,Java,Mysql,Database,Eclipse,Tomcat,我已经用数据库mysql在eclipse中创建了java web应用程序。但现在我必须在tomcat服务器中部署该web应用程序。我知道如何在没有数据库的情况下部署web应用程序,但需要数据库方面的帮助。 提前感谢。这里有两种情况: 您可以使用简单的JDBC和Class.forName(),直接在代码中定义连接——在这种情况下,您只需要确保包含驱动程序的jar位于类路径中,并且它应该可以工作 这是首选方法-并使用JNDI API在代码中调用它: InitialContext ic = new I

我已经用数据库mysql在eclipse中创建了java web应用程序。但现在我必须在tomcat服务器中部署该web应用程序。我知道如何在没有数据库的情况下部署web应用程序,但需要数据库方面的帮助。
提前感谢。

这里有两种情况:

  • 您可以使用简单的JDBC和
    Class.forName()
    ,直接在代码中定义连接——在这种情况下,您只需要确保包含驱动程序的jar位于类路径中,并且它应该可以工作
  • 这是首选方法-并使用JNDI API在代码中调用它:

    InitialContext ic = new InitialContext();  
    DataSource ds = (DataSource)ic.lookup("jdbc/testDS");  
    conn = ds.getConnection();  
    

  • 在contex.xml中,使用--tag我们可以连接到任何数据库,在Java Web应用程序中获得JDBC连接的主要方法有两种

  • 从容器内JNDI目录服务中注册的数据源检索连接
  • 在应用程序代码中手动创建连接
  • JNDI

    使用需要在tomcat中创建连接池。这可以在tomcat的
    config
    目录中的context.xml文件中完成

    示例Context.xml条目

      <Resource name="jdbc/EmployeeDB"
                auth="Container"
                type="javax.sql.DataSource"
                username="dbusername"
                password="dbpassword"
                driverClassName="org.hsql.jdbcDriver"
                url="jdbc:HypersonicSQL:database"
                maxActive="8"
                maxIdle="4"/>
    
    手动创建

    在代码中手动创建连接更简单,但是由于其可移植性,建议使用JNDI

    手动示例

    public class MysqlConnect{
       public static void main(String[] args) {
    
          Connection conn = null;
          String url = "jdbc:mysql://localhost:3306/";
          String dbName = "jdbctutorial";
          String driver = "com.mysql.jdbc.Driver";
          String userName = "root"; 
          String password = "root";
    
          try {
              Class.forName(driver).newInstance();
              conn = DriverManager.getConnection(url+dbName,userName,password);
              conn.close();
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
    }
    

    在为这两种情况进行部署时,在类路径中具有适当的JDBC驱动程序是很重要的。

    您是在代码中指定连接还是使用jndi?我使用代码提供连接…@KMB385您完全不清楚要问什么。请澄清:1.)您是否为实时环境设置并部署了MySQL数据库?2.)数据库中是否有正确的内容(表、行等)?你能连接到它吗?4.)您可以访问数据吗?哪一步你有问题吗?1)是的,我有mysql数据库设置2)是的,我有所有正确的内容,如数据库中的表等3)是的,我可以通过我的web应用程序连接到它插入,更新和删除tha db数据4)我可以访问th数据。现在我在为部署创建.war文件时遇到了最后一步的问题。如何添加到mysql db文件?我使用了第二个选项连接到mysql db,因此可以告诉我如何部署我的web应用程序吗?部署真的没有什么特别之处,只需确保在类路径中有驱动程序。您是否收到了特定错误?我想使我的mysql db文件可移植,以便将其添加到.war文件中,就像mssql server.mdf文件一样。这并没有提供问题的答案。若要评论或要求作者澄清,请在他们的帖子下方留下评论-你可以随时在自己的帖子上发表评论,一旦你有足够的评论,你就可以发表评论。我认为这对于任何可能是本地或远程的db来说都是完美的
    public class MysqlConnect{
       public static void main(String[] args) {
    
          Connection conn = null;
          String url = "jdbc:mysql://localhost:3306/";
          String dbName = "jdbctutorial";
          String driver = "com.mysql.jdbc.Driver";
          String userName = "root"; 
          String password = "root";
    
          try {
              Class.forName(driver).newInstance();
              conn = DriverManager.getConnection(url+dbName,userName,password);
              conn.close();
          } catch (Exception e) {
              e.printStackTrace();
          }
      }
    }