Najlepszy samouczek Dostęp do bazy danych Servlet W 2024 r. W tym samouczku możesz dowiedzieć się Tworzenie danych testowych,Dostęp do bazy danych,
Ten poradnik zakłada, że wiesz, działa aplikacja JDBC. Przed rozpoczęciem nauki Servlet dostępu do bazy danych, odwiedź połączenia MySQL Java , aby zainstalować i skonfigurować skojarzone sterowniki.
Uwaga:
Pakiet Jar można pobrać z witryny zapewnia: MySQL Connector-Java-1.5.39-bin.jar
W projekcie java, musimy tylko przedstawić mysql-connector-java-5.1.39-bin.jar można uruchomić w projekcie java Eclipse.
Ale w projekt WWW Eclipse, gdy wykonujemy Class.forName ( "om.mysql.jdbc.Driver"), nie będzie znaleźć podczas jazdy. Więc w tym przypadku musimy mysql-connector-java-5.1.39-bin.jar skopiowany Tomcat katalogu lib.
Od podstawowej koncepcji na początek stwórzmy prostą tabelę i utworzyć kilka rekordów w tabeli.
Następnie tworzymy w3big w bazie danych MySQL, tworzenie stron internetowych i tabelę danych, struktura tabeli jest następująca:
CREATE TABLE `websites` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称', `url` varchar(255) NOT NULL DEFAULT '', `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名', `country` char(10) NOT NULL DEFAULT '' COMMENT '国家', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
Włóż jakieś dane:
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '本教程', 'http://www.w3write.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
Dane tabeli poniżej:
Poniższy przykład pokazuje, jak korzystać z bazy danych Access servlet w3big.
package com.w3big.test; import java.io.IOException; import java.io.PrintWriter; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class DatabaseAccess */ @WebServlet("/DatabaseAccess") public class DatabaseAccess extends HttpServlet { private static final long serialVersionUID = 1L; // JDBC 驱动名及数据库 URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/w3big"; // 数据库的用户名与密码,需要根据自己的设置 static final String USER = "root"; static final String PASS = "123456"; /** * @see HttpServlet#HttpServlet() */ public DatabaseAccess() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; Statement stmt = null; // 设置响应内容类型 response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String title = "Servlet Mysql 测试 - 本教程"; String docType = "<!DOCTYPE html>\n"; out.println(docType + "<html>\n" + "<head><title>" + title + "</title></head>\n" + "<body bgcolor=\"#f0f0f0\">\n" + "<h1 align=\"center\">" + title + "</h1>\n"); try{ // 注册 JDBC 驱动器 Class.forName("com.mysql.jdbc.Driver"); // 打开一个连接 conn = DriverManager.getConnection(DB_URL,USER,PASS); // 执行 SQL 查询 stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM websites"; ResultSet rs = stmt.executeQuery(sql); // 展开结果集数据库 while(rs.next()){ // 通过字段检索 int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url"); // 输出数据 out.println("ID: " + id); out.println(", 站点名称: " + name); out.println(", 站点 URL: " + url); out.println("<br />"); } out.println("</body></html>"); // 完成后关闭 rs.close(); stmt.close(); conn.close(); } catch(SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch(Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); }finally{ // 最后是用于关闭资源的块 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
Teraz skompilować powyższy Servlet i utworzyć następujący wpis w pliku web.xml:
plpl <servlet> <servlet-name>DatabaseAccess</servlet-name> <servlet-class>com.w3big.test.DatabaseAccess</servlet-class> </servlet> <servlet-mapping> <servlet-name>DatabaseAccess</servlet-name> <url-pattern>/TomcatTest/DatabaseAccess</url-pattern> </servlet-mapping> plpl
Teraz nazywają tego apletu, podaj link: http: // localhost: 8080 / TomcatTest / DatabaseAccess, wyniki pokaże następującą odpowiedź: