1. 程式人生 > >用JAVA連線SQL實現查詢資料

用JAVA連線SQL實現查詢資料

顯示所有學生程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>顯示所有學生的頁面</title>
</head>
<body>
<center>
<% 		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//載入JDBC驅動
		String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zero";
//連線伺服器和資料庫
		String userName = "sa"; // 預設使用者名稱
		String userPwd = "123456"; // 密碼
		Connection dbConn = null;
		try {
			Class.forName(driverName);
			dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		//	System.out.println("Connection Successful!");
			// 如果連線成功 控制檯輸出Connection Successful!
		} catch (Exception e) {
			e.printStackTrace();
		//	System.out.println("連線失敗");
		}
		String sql="select * from stu_info";  //查詢關鍵程式碼
		PreparedStatement pstmt=dbConn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
		ResultSet rs=pstmt.executeQuery();
		rs.last(); //移至最後一條記錄
%>你要查詢的學生資料表中共有
		<font size="5" color="red"><%=rs.getRow()%></font>人
		<table border="2" bgcolor="ccceee" width="650">
			<tr bgcolor="CCCCCC" align="center">
			<td>記錄條數</td><td>學號</td><td>姓名</td>
			<td>性別</td><td>年齡</td><td>體重</td><td>身高</td>
			</tr>
			<% rs.beforeFirst(); //移至第一條記錄之前
				while (rs.next()){
			%> <tr align="center">
					<td><%=rs.getRow() %></td>
					<td><%=rs.getString("id") %></td>
					<td><%=rs.getString("name") %></td>
					<td><%=rs.getString("sex") %></td>
					<td><%=rs.getString("age") %></td>
					<td><%=rs.getString("weight") %></td>
					<td><%=rs.getString("hight") %></td>
					</tr>
					<%} %>
			</table>
			</center>
			<%if(rs!=null){rs.close();}
				if(pstmt!=null){pstmt.close();}
				if(dbConn!=null){dbConn.close();}
			%>
</body>
</html>

 按條件查詢學生

提交查詢條件

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查詢條件提交頁面</title>
</head>
<body>
請選擇查詢條件<hr width="100%" size="3">
<form action="find_stu_3.jsp" method="post">
	性別:男<input type="radio" value="男" name="sex" checked="checked">
	女<input type="radio" value="女" name="sex"><br><br>
	體重範圍:<p>&nbsp;&nbsp;&nbsp;&nbsp;
	最小<input type="text" value="0" name="w1"><br><br>
	&nbsp;&nbsp;&nbsp;&nbsp;
	最大<input type="text" value="150" name="w2"><p>
	<input type="submit" value="提交">
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	<input type="reset" value="取消">
</form>
</body>
</html>

查詢頁面

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>實現查詢頁面</title>
</head>
<body>
<center>
<% 		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//載入JDBC驅動
		String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zero";
//連線伺服器和資料庫
		String userName = "sa"; // 預設使用者名稱
		String userPwd = "123456"; // 密碼
		Connection dbConn = null;
		try {
			Class.forName(driverName);
			dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		//	System.out.println("Connection Successful!");
			// 如果連線成功 控制檯輸出Connection Successful!
		} catch (Exception e) {
			e.printStackTrace();
		//	System.out.println("連線失敗");
		}
		request.setCharacterEncoding("UTF-8");//設定字元編碼,避免出現亂碼
		String sex=request.getParameter("sex");
		float weight1=Float.parseFloat(request.getParameter("w1"));
		float weight2=Float.parseFloat(request.getParameter("w2"));
		
		//Statement stmt =dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
		String sql="select * from stu_info where sex=? and weight>=? and weight<=?";
		PreparedStatement pstmt=dbConn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
		pstmt.setString(1,sex);
		pstmt.setFloat(2,weight1);
		pstmt.setFloat(3,weight2);
		ResultSet rs=pstmt.executeQuery();
		rs.last();
		%>你要查詢的學生資料表中共有
		<font size="5" color="red"><%=rs.getRow()%></font>人
		<table border="2" bgcolor="ccceee" width="650">
			<tr bgcolor="CCCCCC" align="center">
			<td>記錄條數</td><td>學號</td><td>姓名</td>
			<td>性別</td><td>年齡</td><td>體重</td><td>身高</td>
			</tr>
			<% rs.beforeFirst(); //移至第一條記錄之前
				while (rs.next()){
			%> <tr align="center">
					<td><%=rs.getRow() %></td>
					<td><%=rs.getString("id") %></td>
					<td><%=rs.getString("name") %></td>
					<td><%=rs.getString("sex") %></td>
					<td><%=rs.getString("age") %></td>
					<td><%=rs.getString("weight") %></td>
					<td><%=rs.getString("hight") %></td>
					</tr>
					<%} %>
			</table>
</center>
<%if(rs!=null){rs.close();}
				if(pstmt!=null){pstmt.close();}
				if(dbConn!=null){dbConn.close();}
			%>
</body>
</html>