使用的mysql版本8.0.11,tomcat版本7.0.88,myeclipse2017ci9破解版
-->1:學習如何用myeclipse + tomcat + mysql + browser發布自己的web項目,這個項目是所有項目的開端。
-->2:我需要做到:顯示我mysql中某一個數據庫其中一個列表里的內容,我需要利用java的JDBC技術,其中主要用到這幾個API:
java.sql.Connection:建立程序和數據庫的通道,負責連接數據庫,在這里需要傳遞連接數據庫的URL,以及對應的用戶名和密碼。
java.sql.Statement:負責執行數據庫SQL語句,我只要能連接上數據庫,並且能執行一條語句,那我就可以執行很多條語句。
java.sql.ResultSet:負責存放查詢結果,這是一個存儲查詢結果的對象,但是結果集並不僅僅具有存儲的功能,同時還具有操縱數據的功能,可以完成對數據的更新。簡單記錄幾個其擁有的方法:getArray(int colindex/String columnname)、getAsciiStream ( int colindex/String colname )。
-->3:首先一開始是安裝好了mysql、Myecplise、tomcat后,能實現:在mysql客戶端能通過用戶名和密碼查詢數據,建立刪除數據等,在myecplise里面可以編寫項目,並且已經可以把簡單的項目部署到tomcat中,這是軟件自動檢測到的tomcat,只需要在瀏覽器中輸入對應的項目地址就可以了。
-->4:這次是需要連接上數據庫的,剛才的jdbc只是負責處理的java技術,連接還是需要數據庫本身提供的驅動,在mysql網上下載到驅動,是一個zip包,里面帶有一個jar包,把這個包分別復制到myeclipse項目下的lib包中和tomcat目錄下的lib包中。到此可以防止一些java.lang.classnotfoundexception的錯誤。
-->5:在做完這些后就開始寫代碼,然后發布,但是在瀏覽器查看的時候會出現幾個錯誤,分別是:
--》1:The server time zone value '?й???????' is unrecognized or represents more than one time zone;
中間的亂碼是因為識別不出中文編碼的關系,這個需要在URL后面添加時區信息和編碼信息,最終URL如下:
"jdbc:mysql://localhost:3306/liyt" + "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
--》2:Malformed database URL;
這是顯示URL格式出問題了,實際上一開始我在加時區的時候是直接把時區的信息添加在URL后面,URL中還帶有數據庫的用戶名和密碼:
jdbc:mysql://localhost:3306/"+dbName+ "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" + "?user="+userName+"&password="+userPasswd;
但是這樣並不能奏效,我還修改了對應的驅動類名,這個現在看來是沒有問題的。后來我把URL,用戶名和密碼分別作為三個參數傳給了Connection,最后是能夠顯示。這中間為了發現問題我把代碼一行一行地執行,最后顯示是Connecion這一行出現了問題,於是我就改了參數,最后能夠輸出正確的結果了。
1 <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%> 2 <html> 3 <body> 4 <% 5 out.println("這是我家!<br>"); 6 String driverName="com.mysql.cj.jdbc.Driver"; 7 String userName="root"; 8 String userPasswd="858520"; 9 String dbName="liyt"; 10 String tableName="test"; 11 12 String url ="jdbc:mysql://localhost:3306/liyt" + "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"; 13 //String url="jdbc:mysql://localhost:3306/"+dbName+ "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC" + "?user="+userName+"&password="+userPasswd; 14 Class.forName("com.mysql.jdbc.Driver").newInstance(); 15 Connection conn=DriverManager.getConnection(url, userName, userPasswd); 16 Statement stmt = conn.createStatement(); 17 String sql="SELECT * FROM "+tableName; 18 ResultSet rs = stmt.executeQuery(sql); 19 //out.println(rs); 20 out.print("name"); 21 out.print("|"); 22 out.print("sex"); 23 out.print("|"); 24 out.print("age"); 25 out.print("<br>"); 26 while(rs.next()){ 27 out.print(rs.getString(1)+" "); 28 out.print("|"); 29 out.print(rs.getString(2)+" "); 30 out.print("|"); 31 out.print(rs.getString(3)); 32 out.print("<br>"); 33 } 34 out.print("<br>"); 35 out.print("ok, Database Query Successd!"); 36 rs.close(); 37 stmt.close(); 38 conn.close(); 39 out.println("這是你家3!"); 40 41 %> 42 </body> 43 </html>

