我對servlet概念非常陌生。只是發現了一些理論,研究過,現在我想要一個實踐經驗。我想要做的就是創建一個可以訪問mysql數據庫的servlet。一個簡單的JSP頁面,它接受'name'和'marks',然後命中servlet,然後訪問數據庫並在數據庫中輸入名稱和標記。在servlets中使用JDBC
我已經創建了一個數據庫和一個JSP頁面。我也創建了一個servlet。我在我的庫中有mysql連接器,我用Class.forname()的概念來指代它。但是當我在我的服務器上運行這個(Tomcat v6.0)時,它給出了一個沒有發現「com.mysql.jdbc.Driver」異常的類。但是當我在另一個不是servlet的項目(它只是一個簡單的java項目)中運行這個mysql部分時,它會正確執行並且數據庫也會被更新。
只有當我使用servlet的服務器上的這段代碼的問題。我試着用Google搜索,它說我必須在Tomcat的WEB-INF/lib中包含mysql連接器。但我根本找不到這條路。任何有關這方面的建議都會對我有所幫助。提前致謝。 :)這是代碼的我的MySQL部分, 保護無效的doGet(HttpServletRequest的請求,HttpServletResponse的響應)拋出了ServletException,IOException異常{
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
int marks = Integer.parseInt(request.getParameter("marks"));
try {
System.out.println("0");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/testdb123","root","root");
String qr= "INSERT INTO stuinfo " +
"VALUES ('"+name+"',10)";
System.out.println(qr);
System.out.println("1");
Statement stmt = conn.createStatement();
System.out.println("2");
stmt.executeUpdate(qr);
System.out.println("3");
} catch (Exception e) {
e.printStackTrace();
}
}
非常感謝Nikos !!!!!有效!!!你告訴我,一旦我對這些東西感到有信心,我必須查看javax.sql.DataSource,以獲取訪問數據庫的一些有效方法。請讓我知道我應該知道什麼讓自己準備好邁出下一步? 截至目前,我有一個簡單的jsp頁面,有兩個字段 - 名稱和標記。從這裏當用戶輸入數據時,我敲擊一個將這些詳細信息輸入到數據庫的servlet。現在我正在嘗試不同的表結構,如主鍵等的限制,如果我很幸運從你那裏得到一些指導,會真的發現它有幫助。 –
你應該遵循[這個例子](http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html)。然後使用[this](http://wiki.apache.org/tomcat/UsingDataSources)('InitialContext')的代碼來代替使用'DriverManager.getConnection'。簡而言之,'DataSource'是一個連接池。因爲獲取與數據庫的連接速度很慢,所以它會獲得一些連接並使用它們,從而節省重新連接的時間。 –
「在您的應用程序文件夾中,您應該創建一個WEB-INF文件夾,其中包含一個lib文件夾,並將mysql-connector-XXX.jar放在該文件夾中,這將解決您的類路徑問題.Servlet容器不會自動創建文件夾結構「。 - nikos,這個方法不起作用,實際上m不能將mysql連接器添加到我的項目文件夾中爲什麼? –