myEclipse6.5與資料庫(SQL Server2008)串連遇到的問題你解決了嗎?<用SSH架構的時候,用servlet+javabean+jsp的時候>個人經驗總結

來源:互聯網
上載者:User

標籤:

昨天因為學習SSH架構的搭建,時隔一年又重新遇到了myEclipse串連資料庫的問題。廢話不多說,上乾貨

(以下全部按照我遇到的問題的順序,也就是沒有順序,就是任性)

 

請注意:這是在myEclipse6.5+SQL Server2008的前提下出現的問題,當用mySQL或者SQL2000以前,或者用oracle云云時,裡面用的jar包都不一樣的!不可參照下列哦~

 

1、MyEclipse 資料庫連接建立失敗,出現 Driver class not found

這是搭建SSH架構,在資料庫連接時載入sqljdbc4.jar包的時候出現錯誤提示。感覺一切都按照資料中的步驟走的,並且確保以下都正確:

(1)Driver template選擇空白

(2)Driver name 為sql2008(隨便寫的名字),

(3)Connection URL是  jdbc:sqlserver://localhost:1433;databasename=master  (確保你的資料庫連接埠號碼是1433<怎麼設定請看下文>,並且電腦中安裝的sql2008中有名為master的資料庫<一般都有>)

(4)User name 是 sa(這個根據你的資料庫登入時候的)

(5)password 是 sql2008(這根據你的資料庫登入時候的)

(6)DriverClassName是  com.microsoft.sqlserver.jdbc.SQLServerDriver

Add JARs 的時候明明檢查了sqljdbc4.jar包存在,並且資料上說SQL2005及以上要用sqljdbc4.jar(不要sqljdbc.jar包),但是啊但是!就是在頭上會出現 Driver class not found  怎麼辦?查閱無數資料說明,原來用SSH架構搭建的時候不比用servlet+javabean+jsp的時候,只需要sqljdbc4.jar,這時候需要兩個jar包,或者說這時候sqljdbc.jar更需要(有時候不需要sqljdbc4.jar,看你的系統),因此,下載資料庫的驅動jar包(http://www.microsoft.com/zh-cn/download/details.aspx?id=21599),解壓後放在C:\Program Files (x86)\Microsoft SQL Server JDBC Driver

 

記得要配置環境環境變數:電腦->屬性->進階系統設定->環境變數->雙擊系統變數中CLASSPATH,在變數值中加上  ;C:\Program Files (x86)\Microsoft SQL Server JDBC Driver\sqljdbc_3.0\chs\sqljdbc4.jar  (前面的分號;’不要忘!)

 

前面完成了,jar包也有了,基本上不會出什麼大問題,但是!這時候好像還是不行,那就可能是jar包壞了(為什麼會壞,我也沒幹什麼啊,但是就是有人會遇到我這種問題,可能拷貝的時候出了錯?總之,什麼問題都檢查不出的時候,你就試試到官網上重新下載個jar包《這裡解壓後有sqljdbc4.jar和sqljdbc.jar--->http://www.microsoft.com/zh-cn/download/details.aspx?id=21599》)

 

2、資料庫TCP/IP協議沒有開啟,連接埠號碼也沒有設定(接收的協議沒開啟,你讓人資料庫怎麼和你溝通)

很簡單,開始菜單->Microsoft SQL Server 2008->組態工具->SQL Server組態管理員->SQL Server網路設定->SQLEXPRESS的協議,將TCP/IP的狀態從禁用改為啟用,如:

 

然後右擊TCP/IP點屬性,將IP1和IPALL中的TCP連接埠改為1433,如(完美)

 

3、用MVC模式開發Java Web 連線資料庫的方法,我目前知道三種方法(servlet中直接連接;web.xml中初始化共用參數,然後servlet中調用參數串連;建立串連池),但是我今天先只講第一種,最直接簡單的(畢竟今天比較忙~)

當確保你的資料庫可以用、TCP/IP協議開啟、連接埠號碼設定為1433了、準備了sqljdbc4.jar包以後,開始吧:

 

(1)在項目工程的src檔案下建立servlet(這不要講都會的吧?src-new-servlet  看設定,然後next-finish 即可)

 

然後在init方法函數下如下鍵入:

public void init() throws ServletException {
  try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
    String url="jdbc:sqlserver://localhost:1433;databasename=mySales";
    String user="sa";
    String password="sql2008";
    conn=DriverManager.getConnection(url,user,password);

//在瀏覽器中輸入http://localhost/MyWeb/servlet/JDBCServlet1  的時候,在myEclipse的控制台中看到 i am ssh ok 就連成了


    System.out.println("i am myweb ok");  
/*   stmt=conn.createStatement();    //這個是輸出資料庫中的資料代碼,不用也無所謂
    stmt.executeUpdate("use mySales");
    String sql="select * from orders";
    rs=stmt.executeQuery(sql);
    while(rs.next()){
    System.out.println(rs.getInt("orderid"));
    }

*/
    //System.out.println();//true
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
      System.out.println("myweb ClassNotFoundException");  //控制台輸出這個就說明這裡出錯了
    } catch (SQLException e) {
      e.printStackTrace();
      System.out.println("myweb SQLException");
  }
}

 

注意消除一些引用方法的時候出現的錯誤,注意添加

 

 

很簡單對不?但是你的控制台出現了一大堆錯誤對不?慢慢檢查然後糾正吧少年們~

 

最後的最後分享個我的一大堆錯誤中的一個:找不到jar包(不記得當時控制台的錯誤碼是什麼,但是大概翻譯是找不到Driver,或者驅動不支援什麼的) 

這個時候就要用到sqljdbc4.jar包了(因為我的jdk版本是1.7.0,當jdk版本貌似?高於1.6.0的時候sqljdbc.jar包已經不適用)<怎麼看自己安裝的jdk版本看下文>

將準備好的jar包複製到WEB INF 下的lib檔案夾中即可!(修改了Java檔案記得要重啟tomcat伺服器才會生效哦)

 

4、怎麼查閱jdk版本?

開始->運行->然後輸入cmd進入dos介面,輸入java -version , 出現以下資訊就可以看出你安裝的jdk版本

 

 先到這裡打住,感覺有很多問題可以將,以後慢慢說

 

 

myEclipse6.5與資料庫(SQL Server2008)串連遇到的問題你解決了嗎?<用SSH架構的時候,用servlet+javabean+jsp的時候>個人經驗總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.