2016-11-11 41 views
0

目前我正在试图实现一个简单的servlet,它与我们的数据库进行通信。远程MySQL数据库和eclipse

我有一个数据库,没有真正的以往的经验,所以我不知道我应该怎么去呢?我已经从dev.mysql下载了mysql-connector-java-5.1.40。

在看一些网络用于建立连接的方向,似乎只能是本地的MySQL,但远程的是什么?该遥控器的用户和通行证是演示/演示;当然我也需要用我的凭据登录到远程服务器。我如何去连接到这个远程数据库?

编辑:所以我相信我成功地连接到数据库,至少我可以在我的eclipse下看到它在数据源和表中存在(公司和stock_prices),但是我的eclipse仍然说我有一个不适合的驱动程序甚至尽管我确实有一个与之相关的东西。

回答

1

在web容器(或应用服务器)消耗数据库资源的适当的方法是通过javax.sql.DataSource抽象。所以你应该在你的容器中配置一个数据源。当您要执行DB操作

<Context> 
    <Resource name="jdbc/[YourDatabaseName]" 
     auth="Container" 
     type="javax.sql.DataSource" 
     username="[DatabaseUsername]" 
     password="[DatabasePassword]" 
     driverClassName="com.mysql.jdbc.Driver" 
     url="jdbc:mysql:/[yourserver]:3306/[your-db]" 
     maxActive="20" 
     maxIdle="20"/> 
</Context> 

然后:对于Tomcat是,创建一个在战争中的META-INF文件夹命名为context.xml,内容如下文件一样简单(换成你自己的地址和凭据)

  • 你要么查找数据源:

    数据源DS =(数据源)新的InitialContext()查找( “Java的:comp/env的/ JDBC [YourDatabaseName]”)。

  • 或简单地使用依赖注入管理的组件如servlet:

    @Resource(name="jdbc/YourDataSource") Datasource ds;

的你只能从数据源,以执行语句的数据库的连接。

的DB驱动程序可以放在两个地方之一:

  • 战争的lib文件夹
  • tomcat的lib文件夹

我们推荐把它放在tomcat的lib中,因为司机单身人士,如果你有几个应用程序与不同版本的驱动程序在同一个容器中会发生不好的事情。

如何去连接到这个偏远的分贝?

连接到远程DB相同连接到alocal DB。只需在连接字符串中传递正确的DB地址即可。

+0

很抱歉,非常感谢。我能弄清楚,但它紧跟你的。 – SomeStudent