javaWeb學生信息查詢

歡迎瀏覽

你好!這一篇文章是爲了鞏固對前面知識,完成的練習。需要使用的知識:jsp,mysql,java
工具:c3p0數據庫連接器。

項目目錄

![項目目錄](https://img-blog.csdnimg.cn/20191028084007862.png在這裏插入圖片描述

com.zz.action

package com.zz.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public interface Action {
	public void execute(HttpServletRequest request,HttpServletResponse response);
}

com.zz.action.student

QueryStudentInfoAction.java

package com.zz.action.student;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zz.action.Action;
import com.zz.dao.ScoreDao;
import com.zz.dao.StudentDao;
import com.zz.pojo.Score;
import com.zz.pojo.Student;

public class QueryStudentInfoAction implements Action {
	
	private StudentDao studentDao;
	private ScoreDao scoreDao;
	public QueryStudentInfoAction() {
		studentDao = new StudentDao();
		scoreDao = new ScoreDao();
	}
	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {
		//下拉班級
		ArrayList<Student> slist = studentDao.getKindOfClassname();
		request.setAttribute("slist", slist);
		
		if(!request.getParameter("subject").equals("")&&request.getParameter("name").equals("")&&request.getParameter("classname").equals("所有班級")) {
			//按科目查找
			String subject = request.getParameter("subject");
			ArrayList<Score> list = scoreDao.getInfoBySub(subject);
			HashMap<Integer,Student> map = new HashMap<Integer,Student>();
			for (Score score: list) {
				int sid = score.getSid();
				Student student = studentDao.getStudentById(sid);
				map.put(sid, student);
			}
			request.setAttribute("list", list);
			request.setAttribute("map", map);
			try {
				request.getRequestDispatcher("/studentInfo.jsp").forward(request, response);
				return;
				
			} catch (ServletException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}else if(request.getParameter("subject").equals("")&&!request.getParameter("name").equals("")&&request.getParameter("classname").equals("所有班級")) {
			//按姓名查找
			String name = request.getParameter("name");
			int sid = studentDao.getIdByName(name);
			ArrayList<Score> list = scoreDao.getScoreBySid(sid);
			HashMap<Integer,Student> map = new HashMap<Integer,Student>();
			for (Score score: list) {
				int sdid = score.getSid();
				Student student = studentDao.getStudentById(sdid);
				map.put(sdid, student);
			}
			request.setAttribute("list", list);
			request.setAttribute("map", map);
			try {
				request.getRequestDispatcher("/studentInfo.jsp").forward(request, response);
				return;
			} catch (ServletException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}else if(request.getParameter("subject").equals("")&&request.getParameter("name").equals("")&&!request.getParameter("classname").equals("")) {
			//按班級查找
			String classname = request.getParameter("classname");
			if(classname.equals("所有班級")) {
				//查全部信息
				try {
					request.getRequestDispatcher("student-info.action").forward(request, response);
					return;
				} catch (ServletException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}else {
				ArrayList<Student> list = studentDao.getInfoByCname(classname);
				int size = list.size()-1;
				ArrayList<Score> scoreList = new ArrayList<Score>();
				int a = 0;
				for(a=0;a<=size;a++) {
					int b = list.get(a).getId();
					scoreList.addAll(scoreDao.getScoreBySid(b));
				}
				HashMap<Integer,Student> map = new HashMap<Integer,Student>();
				for (Score score: scoreList) {
					int sdid = score.getSid();
					Student student = studentDao.getStudentById(sdid);
					map.put(sdid, student);
				}
				request.setAttribute("list", scoreList);
				request.setAttribute("map", map);
				try {
					request.getRequestDispatcher("/studentInfo.jsp").forward(request, response);
					return;
				} catch (ServletException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
		}else if(!request.getParameter("subject").equals("")&&!request.getParameter("name").equals("")&&!request.getParameter("classname").equals("")) {
			//多條件查找
			if(request.getParameter("classname").equals("所有班級")) {
				String subject = request.getParameter("subject");
				String name = request.getParameter("name");
				int sid = studentDao.getIdByName(name);
				ArrayList<Score> list = scoreDao.getOnSidSubject(sid, subject);
				HashMap<Integer,Student> map = new HashMap<Integer,Student>();
				for (Score score: list) {
					int id = score.getSid();
					Student student = studentDao.getStudentById(id);
					map.put(id, student);
				}
				request.setAttribute("list", list);
				request.setAttribute("map", map);
				try {
					request.getRequestDispatcher("/studentInfo.jsp").forward(request, response);
					return;
				} catch (ServletException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}else{
				String subject = request.getParameter("subject");
				String name = request.getParameter("name");
				String classname = request.getParameter("classname");
				int sid = studentDao.getIdOnNameCName(name, classname);
				ArrayList<Score> list = scoreDao.getOnSidSubject(sid, subject);
				HashMap<Integer,Student> map = new HashMap<Integer,Student>();
				for (Score score: list) {
					int id = score.getSid();
					Student student = studentDao.getStudentById(id);
					map.put(id, student);
				}
				request.setAttribute("list", list);
				request.setAttribute("map", map);
				try {
					request.getRequestDispatcher("/studentInfo.jsp").forward(request, response);
					return;
				} catch (ServletException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

}

StudentInfoAction.java

package com.zz.action.student;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zz.action.Action;
import com.zz.dao.ScoreDao;
import com.zz.dao.StudentDao;
import com.zz.pojo.Score;
import com.zz.pojo.Student;

public class StudentInfoAction implements Action {

	private StudentDao studentDao;
	private ScoreDao scoreDao;
	public StudentInfoAction() {
		studentDao = new StudentDao();
		scoreDao = new ScoreDao();
	}
	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {
		//下拉班級
		ArrayList<Student> slist = studentDao.getKindOfClassname();
		
		request.setAttribute("slist", slist);
		//信息展示
		ArrayList<Score> list = scoreDao.getScore();
		HashMap<Integer,Student> map = new HashMap<Integer,Student>();
		for (Score score: list) {
			int sid = score.getSid();
			Student student = studentDao.getStudentById(sid);
			map.put(sid, student);
		}
		request.setAttribute("list", list);
		request.setAttribute("map", map);
		try {
			request.getRequestDispatcher("/studentInfo.jsp").forward(request, response);
		} catch (ServletException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

com.zz.action.test

Test.java

package com.zz.action.test;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zz.action.Action;

public class Test implements Action{
	public Test() {
	}
	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {		
	}
}

com.zz.controller

package com.zz.controller;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.zz.action.Action;

public class ActionServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private Properties properties;
	
	public void init() {
		String file=Thread.currentThread().getContextClassLoader().getResource("config.properties").getFile();
		properties=new Properties();
		try {
			properties.load(new FileInputStream(file));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		String struri=request.getRequestURI();
		struri=struri.substring(struri.lastIndexOf("/")+1);
		String className=properties.getProperty(struri);
		try {
			Action action = (Action) Class.forName(className).newInstance();
			action.execute(request,response);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

com.zz.dao

ScoreDao.java

package com.zz.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.zz.pojo.Score;
import com.zz.util.C3P0Utils;

public class ScoreDao {

	public ArrayList<Score> getScore() {
		ArrayList<Score> list = new ArrayList<Score>();
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;

		String sql = "select * from tbl_score";
		try {
			con = C3P0Utils.getConn();
			st = con.createStatement();
			rs = st.executeQuery(sql);
			while (rs.next()) {
				Score score = new Score();
				score.setId(rs.getInt("id"));
				score.setSubject(rs.getString("subject"));
				score.setScore(rs.getInt("score"));
				score.setSid(rs.getInt("sid"));
				list.add(score);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, st, rs);
		}
		return list;
	}
	
	public ArrayList<Score> getOnSidSubject(int sid,String subject) {
		ArrayList<Score> list = new ArrayList<Score>();
		
		Connection conn = C3P0Utils.getConn();
		PreparedStatement psmt = null;
		ResultSet rs = null;

		try {												
			String sql = "select * from tbl_score where subject = ? and sid = ?";
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, subject);
			psmt.setInt(2, sid);

			// 執行
			rs = psmt.executeQuery();
			while (rs.next()) {
				Score score = new Score();
				score.setId(rs.getInt("id"));
				score.setSubject(rs.getString("subject"));
				score.setScore(rs.getInt("score"));
				score.setSid(rs.getInt("sid"));
				list.add(score);
			}	
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(conn, psmt, rs);
		}
		return list;
	}
	
	public ArrayList<Score> getInfoBySub(String subject) {
		ArrayList<Score> list = new ArrayList<Score>();
		
		Connection conn = C3P0Utils.getConn();
		PreparedStatement psmt = null;
		ResultSet rs = null;

		try {												
			String sql = "select * from tbl_score where subject = ?";
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, subject);

			// 執行
			rs = psmt.executeQuery();
			while (rs.next()) {
				Score score = new Score();
				score.setId(rs.getInt("id"));
				score.setSubject(rs.getString("subject"));
				score.setScore(rs.getInt("score"));
				score.setSid(rs.getInt("sid"));
				list.add(score);
			}	
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(conn, psmt, rs);
		}
		return list;
	}
	public Score getScoreById(int id) {
		Connection con = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		Score score = null;

		String sql = "select * from tbl_score where id=" + id;
		try {
			con = C3P0Utils.getConn();
			psmt = con.prepareStatement(sql);
			rs = psmt.executeQuery(sql);
			while (rs.next()) {
				int mid = rs.getInt("id");
				String subject = rs.getString("subject");
				int mscore = rs.getInt("score");
				int sid = rs.getInt("sid");
				
				// 創建 Score對象
				score = new Score(mid, subject, mscore, sid);
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, psmt, rs);
		}
		return score;
	}
	
	public ArrayList<Score> getScoreBySid(int sid) {
		ArrayList<Score> list = new ArrayList<Score>();
		Connection con = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		Score score = null;

		String sql = "select * from tbl_score where sid = ?";
		try {
			con = C3P0Utils.getConn();
			psmt = con.prepareStatement(sql);
			psmt.setInt(1, sid);
			rs = psmt.executeQuery();
			while (rs.next()) {
				int mid = rs.getInt("id");
				String subject = rs.getString("subject");
				int mscore = rs.getInt("score");
				int sdid = rs.getInt("sid");
				
				// 創建 Score對象
				score = new Score(mid, subject, mscore, sdid);
				list.add(score);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, psmt, rs);
		}
		return list;
	}
	
	public ArrayList<Score> getInfoByMoreSid(String msql) {
		ArrayList<Score> list = new ArrayList<Score>();
		Connection con = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		Score score = null;

		String sql = "select * from tbl_score where ?";
		try {
			con = C3P0Utils.getConn();
			psmt = con.prepareStatement(sql);
			psmt.setString(1, msql);
			rs = psmt.executeQuery();
			while (rs.next()) {
				int mid = rs.getInt("id");
				String subject = rs.getString("subject");
				int mscore = rs.getInt("score");
				int sdid = rs.getInt("sid");
				
				// 創建 Score對象
				score = new Score(mid, subject, mscore, sdid);
				list.add(score);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, psmt, rs);
		}
		return list;
	}
}

StudentDao.java

package com.zz.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import com.zz.pojo.Student;
import com.zz.util.C3P0Utils;

public class StudentDao {

	public ArrayList<Student> getStudent() {
		ArrayList<Student> list = new ArrayList<Student>();
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;

		String sql = "select * from tbl_student";
		try {
			con = C3P0Utils.getConn();
			st = con.createStatement();
			rs = st.executeQuery(sql);
			while (rs.next()) {
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setPhone(rs.getString("phone"));
				student.setClassname(rs.getString("classname"));
				System.out.println("shfisf");
				list.add(student);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, st, rs);
		}
		return list;
	}
	
	public ArrayList<Student> getKindOfClassname() {
		ArrayList<Student> list = new ArrayList<Student>();
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;

		String sql = "select distinct classname from tbl_student";
		try {
			con = C3P0Utils.getConn();
			st = con.createStatement();
			rs = st.executeQuery(sql);
			while (rs.next()) {
				Student student = new Student();
				student.setClassname(rs.getString("classname"));
				list.add(student);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, st, rs);
		}
		return list;
	}
	
	public ArrayList<Student> getInfoByCname(String classname) {
		ArrayList<Student> list = new ArrayList<Student>();
		Connection con = null;
		PreparedStatement st = null;
		ResultSet rs = null;

		String sql = "select * from tbl_student where classname=?";
		try {
			con = C3P0Utils.getConn();
			st = con.prepareStatement(sql);
			st.setString(1, classname);
			rs = st.executeQuery();
			while (rs.next()) {
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setPhone(rs.getString("phone"));
				student.setClassname(rs.getString("classname"));
				list.add(student);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, st, rs);
		}
		return list;
	}

	public ArrayList<Student> getInfoByName(String name) {
		ArrayList<Student> list = new ArrayList<Student>();
		Connection conn = C3P0Utils.getConn();
		PreparedStatement psmt = null;
		ResultSet rs = null;

		String sql = "select * from tbl_student where name=?";
		try {
			conn = C3P0Utils.getConn();
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, name);
			rs = psmt.executeQuery();
			while (rs.next()) {
				Student student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setPhone(rs.getString("phone"));
				student.setClassname(rs.getString("classname"));
				list.add(student);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(conn, psmt, rs);
		}
		return list;
	}
	
	public int getIdByName(String name) {
		Connection conn = C3P0Utils.getConn();
		PreparedStatement psmt = null;
		ResultSet rs = null;
		int sid = 0;
		String sql = "select * from tbl_student where name=?";
		try {
			conn = C3P0Utils.getConn();
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, name);
			rs = psmt.executeQuery();
			while (rs.next()) {
				sid = rs.getInt("id");
				return sid;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(conn, psmt, rs);
		}
		return sid;
	}
	
	public int getIdOnNameCName(String name,String classname) {
		Connection conn = C3P0Utils.getConn();
		PreparedStatement psmt = null;
		ResultSet rs = null;
		int sid = 0;
		String sql = "select * from tbl_student where name = ? and classname = ?";
		try {
			conn = C3P0Utils.getConn();
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, name);
			psmt.setString(2, classname);
			rs = psmt.executeQuery();
			while (rs.next()) {
				sid = rs.getInt("id");
				return sid;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(conn, psmt, rs);
		}
		return sid;
	}
	
	public Student getStudentById(int id) {
		Connection con = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		Student student = null;

		String sql = "select * from tbl_student where id=" + id;
		try {
			con = C3P0Utils.getConn();
			psmt = con.prepareStatement(sql);
			rs = psmt.executeQuery(sql);
			while (rs.next()) {
				student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setPhone(rs.getString("phone"));
				student.setClassname(rs.getString("classname"));
				
				return student;
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, psmt, rs);
		}
		return student;
	}
	
	public ArrayList<Student> getInfoListById(int id) {
		ArrayList<Student> list = new ArrayList<Student>();
		Connection con = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		Student student = null;

		String sql = "select * from tbl_student where id=" + id;
		try {
			con = C3P0Utils.getConn();
			psmt = con.prepareStatement(sql);
			rs = psmt.executeQuery(sql);
			while (rs.next()) {
				student = new Student();
				student.setId(rs.getInt("id"));
				student.setName(rs.getString("name"));
				student.setPhone(rs.getString("phone"));
				student.setClassname(rs.getString("classname"));
				
				list.add(student);
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			C3P0Utils.closeJDBC(con, psmt, rs);
		}
		return list;
	}
}

com.zz.pojo

Score.java

package com.zz.pojo;

import java.io.Serializable;

public class Score implements Serializable{
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String subject;
	private Integer score;
	private Integer sid;
	public Score() {
		super();
	}
	public Score(String subject, Integer score, Integer sid) {
		super();
		this.subject = subject;
		this.score = score;
		this.sid = sid;
	}
	public Score(Integer id, String subject, Integer score, Integer sid) {
		super();
		this.id = id;
		this.subject = subject;
		this.score = score;
		this.sid = sid;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public Integer getScore() {
		return score;
	}
	public void setScore(Integer score) {
		this.score = score;
	}
	public Integer getSid() {
		return sid;
	}
	public void setSid(Integer sid) {
		this.sid = sid;
	}
	@Override
	public String toString() {
		return "Score [id=" + id + ", subject=" + subject + ", score=" + score + ", sid=" + sid + "]";
	}
	
}

Student.java

package com.zz.pojo;

import java.io.Serializable;

public class Student implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String name;
	private String phone;
	private String classname;
	public Student() {
		super();
	}
	public Student(String name, String phone, String classname) {
		super();
		this.name = name;
		this.phone = phone;
		this.classname = classname;
	}
	public Student(Integer id, String name, String phone, String classname) {
		super();
		this.id = id;
		this.name = name;
		this.phone = phone;
		this.classname = classname;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getClassname() {
		return classname;
	}
	public void setClassname(String classname) {
		this.classname = classname;
	}
	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", phone=" + phone + ", classname=" + classname + "]";
	}
	
}

com.zz.util

C3P0Utils.java

package com.zz.util;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Utils {
	static ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");

	public static Connection getConn() {
		try {
			Connection conn = dataSource.getConnection();
			return conn;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	public static void closeJDBC(Connection con,Statement st,ResultSet rs) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(st!=null) {
			try {
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		try {
			if(con!=null && con.isClosed()==false) {
				con.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

src

c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
	<!--默認配置 -->
	<default-config>
		<property name="initialPoolSize">10</property>
		<property name="maxIdleTime">30</property>
		<property name="maxPoolSize">100</property>
		<property name="minPoolSize">10</property>
		<property name="maxStatements">200</property>
	</default-config>
	<!--配置連接池mysql -->
	<named-config name="mysql">
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
		<property name="user">root</property>
		<property name="password">123456</property>
		<property name="initialPoolSize">10</property>
		<property name="maxIdleTime">30</property>
		<property name="maxPoolSize">100</property>
		<property name="minPoolSize">10</property>
		<property name="maxStatements">200</property>
	</named-config>
</c3p0-config>

config.properties

#test
show-test.action=com.zz.action.test.Test

#info
student-info.action=com.zz.action.student.StudentInfoAction

#query
query-bysubject.action=com.zz.action.student.QueryInfoAction

#queryB
query-info.action=com.zz.action.student.QueryStudentInfoAction

db

tbl_score.sql

/*
MySQL Data Transfer
Source Host: localhost
Source Database: test
Target Host: localhost
Target Database: test
Date: 2019/10/13 19:38:22
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for tbl_score
-- ----------------------------
DROP TABLE IF EXISTS `tbl_score`;
CREATE TABLE `tbl_score` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `subject` varchar(20) DEFAULT NULL,
  `score` int(11) DEFAULT NULL,
  `sid` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_sid` (`sid`),
  CONSTRAINT `FK_sid` FOREIGN KEY (`sid`) REFERENCES `tbl_student` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for tbl_student
-- ----------------------------
DROP TABLE IF EXISTS `tbl_student`;
CREATE TABLE `tbl_student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `classname` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records 
-- ----------------------------
INSERT INTO `tbl_score` VALUES ('1', 'Java基礎', '80', '1');
INSERT INTO `tbl_score` VALUES ('2', 'Java基礎', '60', '2');
INSERT INTO `tbl_score` VALUES ('3', 'Java基礎', '90', '3');
INSERT INTO `tbl_score` VALUES ('4', 'Java基礎', '70', '4');
INSERT INTO `tbl_score` VALUES ('5', 'Java基礎', '80', '5');
INSERT INTO `tbl_score` VALUES ('6', 'Oracle', '80', '1');
INSERT INTO `tbl_score` VALUES ('7', 'Oracle', '90', '2');
INSERT INTO `tbl_score` VALUES ('8', 'Oracle', '70', '3');
INSERT INTO `tbl_score` VALUES ('9', 'Oracle', '80', '4');
INSERT INTO `tbl_score` VALUES ('10', 'Oracle', '76', '5');
INSERT INTO `tbl_score` VALUES ('11', 'Spring', '50', '1');
INSERT INTO `tbl_score` VALUES ('12', 'Spring', '60', '2');
INSERT INTO `tbl_score` VALUES ('13', 'Spring', '60', '3');
INSERT INTO `tbl_score` VALUES ('14', 'Spring', '70', '4');
INSERT INTO `tbl_score` VALUES ('15', 'Spring', '80', '5');
INSERT INTO `tbl_student` VALUES ('1', 'Tom', '123456789', 'STA01');
INSERT INTO `tbl_student` VALUES ('2', 'Mary', '987654321', 'STA01');
INSERT INTO `tbl_student` VALUES ('3', 'Sam', '123456789', 'STA02');
INSERT INTO `tbl_student` VALUES ('4', 'Bill', '123456789', 'STA02');
INSERT INTO `tbl_student` VALUES ('5', 'Mary', '123456789', 'STA02');

lib

c3p0-0.9.1.2.jar
jstl.jar
mysql-connector-java-5.1.6-bin.jar
standard.jar

WEB-INF

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>StudentInfo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>ActionServlet</display-name>
    <servlet-name>ActionServlet</servlet-name>
    <servlet-class>com.zz.controller.ActionServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ActionServlet</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>
</web-app>

WebContent

NewFile.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="student-info.action">點擊1</a>
<br/>

</body>
</html>

studentInfo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>學生信息展示</title>
<style type="text/css">
body {
		text-align: center; 
		font-size: 13px;
	} 
	table {
		border-collapse: collapse;
		border:1px solid black;
		align:center;
		padding:0px;
		width:550px;
		margin: auto;
	}
	table, td, th {
   		 border: 1px solid black;
	}
</style>
</head>
<body>
<form action="query-info.action">
<label>科目:</label><input name="subject"/>
<label>姓名:</label><input name="name"/>
<label>班級:</label>
<select id="classname" name="classname" autofocus >
<option value="所有班級">所有班級</option>
		<c:forEach items="${slist }" var="slist">
   			<option value="${slist.classname }">${slist.classname }</option>
	</c:forEach></select>									
<button class="submit" type="submit" name="query" value="true" tabindex="80">查詢</button>
</form>
	<table>
		<tr>
			<td>編號</td>
			<td>姓名</td>
			<td>班級</td>
			<td>科目</td>
			<td>分數</td>
		</tr>
		<c:forEach items="${ list}" var="list">
			<tr>
				<td><c:out value="${list.id }"></c:out></td>
				<td>${map[list.sid ].name}</td>
				<td>${map[list.sid ].classname}</td>
				<td><c:out value="${list.subject }"></c:out></td>
				<td><c:out value="${list.score }"></c:out></td>
			</tr>

		</c:forEach>
	</table>
</body>
</html>

效果圖

運行NewFile.jsp
在這裏插入圖片描述
查詢數據後展示
在這裏插入圖片描述
根據科目查詢例如:Oracle
在這裏插入圖片描述
根據姓名查詢例如:Tom
在這裏插入圖片描述
根據班級查詢例如:STA01
在這裏插入圖片描述
根據科目和姓名查詢例如:STA01
在這裏插入圖片描述
還有其他條件組合查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章