2016-11-11 39 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