Latest web development tutorials

l'accesso al database Servlet

Questo tutorial presuppone che si sa funziona applicazione JDBC. Prima di iniziare ad imparare l'accesso al database Servlet, si prega di visitare il collegamento Java MySQL per impostare e configurare il driver associato.

Nota:

pacchetto Jar è possibile scaricare il sito fornisce: mysql-connector-java-5.1.39-bin.jar

Nel progetto Java, abbiamo solo bisogno di introdurre mysql-connector-java-5.1.39-bin.jar può essere eseguito in progetto Java Eclipse.

Ma nel progetto web Eclipse, quando eseguiamo Class.forName ( "om.mysql.jdbc.Driver"), non andando a trovare quando si guida. Quindi, in questo caso abbiamo bisogno di mysql-connector-java-5.1.39-bin.jar copiato nella directory lib di Tomcat.

Dal concetto di base per iniziare, creiamo una tabella semplice, e creare un paio di record nella tabella.


Creare dati di test

Poi creiamo w3big nel database MySQL, creare siti web e tabella di dati, la struttura della tabella è la seguente:

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;

Inserire alcuni dati:

INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '本教程', 'http://www.w3big.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');

tabella di informazioni di seguito indicate:



database di Access

L'esempio seguente mostra come utilizzare l'accesso Servlet w3big database.

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);
	}
}

Ora cerchiamo di compilare il Servlet sopra, e creare la seguente voce nel file web.xml:

....
	<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>
....

Ora chiamare questo Servlet, inserire il link: http: // localhost: 8080 / TomcatTest / DatabaseAccess, i risultati mostreranno la seguente risposta: