1. 程式人生 > >Web基礎之Servlet+JDBC+JSP專案實戰記錄(一)

Web基礎之Servlet+JDBC+JSP專案實戰記錄(一)

package com.huaxin.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.huaxin.bean.ClassInfoBean;

public class ClassInfoDao {

	static {
		// 載入資料庫驅動
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	public void addClassInfo(ClassInfoBean bean) {
		Connection conn = null;
		Statement stmt = null;
		try {
			// 獲取資料庫連線
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/studentsystem?useUnicode=true&characterEncoding=UTF-8",
							"root", "zhou");
			// 整理一條SQL語句
			String sql = "INSERT INTO class_info (cname) VALUES ('"
					+ bean.getCname() + "')";
			// 建立SQL執行物件
			stmt = conn.createStatement();
			// 執行sql語句
			int row = stmt.executeUpdate(sql);
			if (row != 1) {
				throw new RuntimeException("新增班級失敗!");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			if (conn != null) {
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if (stmt != null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}

	public List<ClassInfoBean> findAll() {

		Connection conn = null;
		Statement stmt = null;
		List<ClassInfoBean> classList= new ArrayList<ClassInfoBean>();
		try {
			// 獲取連線
			conn = DriverManager
					.getConnection("jdbc:mysql://localhost:3306/studentsystem?useUnicode=true&characterEncoding=UTF-8",
							"root", "zhou");
			// 整理一條SQL語句
			String sql = "select cid,cname from class_info";
			// 建立執行sql的物件
			stmt = conn.createStatement();
			//執行sql語句
			ResultSet rs =stmt.executeQuery(sql);
			//遍歷結果集
			while(rs.next()){
				int cid =rs.getInt("cid");
				String cname=rs.getString("cname");
				ClassInfoBean bean = new ClassInfoBean();
				bean.setCid(cid);
				bean.setCname(cname);
				classList.add(bean);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return classList;
	}

}
前臺頁面用JSP書寫(JSP是實現動態頁面效果的技術之一,因為JSP裡面可以嵌入Java程式碼;還記得Request作用域嗎?我們首先需要將查詢出來的結果儲存到Request作用域中。然後通過在伺服器端執行JSP後生成響應正文給客戶端;這裡需要明白的是,JSP裡面的Java程式碼是在伺服器端執行完畢後,才通過響應正文到達客戶端;平時我們自己寫得html頁面訪問的是本地的資源,就相當於在本地打開了一份Word文件;JSP這部分後面會有詳解;)