標籤:
昨天因為學習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的時候>個人經驗總結