JSP | 使用Statement、ResultSet对象操作数据库

JSP网站开发 专栏收录该内容
11 篇文章 0 订阅

·核心知识

1.创建statement对象

      statement对象代表一条发送到数据库执行的SQL语句,由已创建的Connection对象调用createStatement()方法来创建Statement对象,代码如下:

Statement st = con.createStatement();                                                                                                                                 

2.执行 SQL语句

      创建statement对象后,可以用statement对象调用executeUpdate(String sql)、executeQuery(String sql)等方法来执行SQL语句。

executeUpdate(String sql)方法主要用于执行INSERT、UPDATE、DELETE语句以及SQL DDL语句。

executeQuery(String sql)方法是用于执行SELECT等查询数据库的SQL语句,该方法返回ResultSet对象,代表查询结果。

3.处理返回的ResultSet对象

      ResultSet对象是executeQuery(String sql)方法的返回值,被称为结果集,它代表符合SQL语句条件的所有行。ResultSet对象调用next()方法移动到下一个数据行。获得一行数据后,ResultSet对象可以使用getXXX的方法获得该字段值。

·实例代码

实例一代码如下(实现向数据库中的表添加数据的功能):

本程序共分为三个文件,add.jsp、show.jsp、Bean.java(封装在bean包中),add.jsp、show.jsp分别实现的功能是添加信息页面、输出全部信息页面,

add.jsp文件代码如下:

<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<html>
<head>
<title>addGoods.jsp</title>
</head>
<body>
	<h4>课程号是主键,不能重复,每个信息都必须输入!</h4>
	<form action="show.jsp" method="post">
	<table border="1">
		<tr>
			<td>课程号:</td>
			<td><input type="text" name="CNo"/></td>
		</tr>
		
		<tr>
			<td>课程名称:</td>
			<td><input type="text" name="CN"/></td>
		</tr>
		
		<tr>
			<td>教师姓名:</td>
			<td><input type="text" name="TN"/></td>
		</tr>
		
		<tr>
			<td>开课学期:</td>
			<td><input type="text" name="KKXQ"/></td>
		</tr>
		
		<tr>
			<td>课程学时:</td>
			<td><input type="text" name="CT"/></td>
		</tr>
		
		<tr>
			<td>课程学分:</td>
			<td><input type="text" name="SC"/></td>
		</tr>
		
		<tr>
			<td><input type="submit" value="添加"></td>
			<td><input type="reset" value="重置"></td>
		</tr>
	</table>
	</form>
</body>
</html>

show.jsp文件代码如下:

<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%@ page import="bean.Bean" %>
<html>
<head>
<title>show.jsp</title>
</head>
<body>
	<%
		request.setCharacterEncoding("GBK");
	%>
	<jsp:useBean  id="goods" class="bean.Bean" scope="page"></jsp:useBean>
	<jsp:setProperty property="*"  name="goods"/>
	<%
	  goods.addGoods();
	  %>
	<jsp:getProperty property="queryResult" name="goods"/><!-- 获得查询结果 -->
</body>
</html>

Bean.java(封装在bean包中)文件代码如下:

package bean;
import java.sql.*;

public class Bean {
	int CNo;
    String CN;
    String  TN;
    int KKXQ;
    int CT;
    int SC;
    StringBuffer queryResult;//查询所有数据
    StringBuffer queryResultBy;//根据条件查询所有数据
    public Bean(){
    	
    }
	public int getCNo() {
		return CNo;
	}
	public void setCNo(int CNo) {
		this.CNo = CNo;
	}
	public String getCN() {
		return CN;
	}
	public void setCN(String CN) {
		this.CN = CN;
	}
	public String getTN() {
		return TN;
	}
	public void setTN(String TN) {
		this.TN = TN;
	}
	public int getKKXQ() {
		return KKXQ;
	}
	public void setKKXQ(int KKXQ) {
		this.KKXQ = KKXQ;
	}
	public int getCT() {
		return CT;
	}
	public void setCT(int CT) {
		this.CT = CT;
	}
	public int getSC() {
		return SC;
	}
	public void setSC(int SC) {
		this.SC = SC;
	}
	
	//添加数据
	public void addGoods(){
    	Connection con = null;
		Statement st = null;
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
		 	con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Teach","sa","数据库密码");
			st=con.createStatement();
			String addSql="insert into KC values("+CNo+",'"+CN+"','"+TN+"',"+KKXQ+","+CT+","+SC+")";
			st.executeUpdate(addSql);
		}catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try{
				if(st!=null){
					st.close();
				}
				if(con!=null){
					con.close();
				}
			}catch (SQLException e) {
				e.printStackTrace();
			}
		}
    }
	
    //获得所有数据信息
	public StringBuffer getQueryResult(){
		queryResult=new StringBuffer();
		Connection con = null;
		Statement st = null;
		ResultSet rs=null;
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
		 	con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Teach","sa","数据库密码");
			st=con.createStatement();
			//String selectSql="select * from KC where CN='计算机原理'";
			String selectSql="select * from KC";
			rs=st.executeQuery(selectSql);
			queryResult.append("<table border=1>");
				queryResult.append("<tr>");
					queryResult.append("<th>CNo</th>");
					queryResult.append("<th>CN</th>");
					queryResult.append("<th>TN</th>");
					queryResult.append("<th>KKXQ</th>");
					queryResult.append("<th>CT</th>");
					queryResult.append("<th>SC</th>");
				queryResult.append("</tr>");
			while(rs.next()){
				queryResult.append("<tr>");
					queryResult.append("<td>"+rs.getString(1)+"</td>");
					queryResult.append("<td>"+rs.getString(2)+"</td>");
					queryResult.append("<td>"+rs.getString(3)+"</td>");
					queryResult.append("<td>"+rs.getString(4)+"</td>");
					queryResult.append("<td>"+rs.getString(5)+"</td>");
					queryResult.append("<td>"+rs.getString(6)+"</td>");
				queryResult.append("</tr>");
			}
			queryResult.append("</table>");
		}catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try{
				if(rs!=null){
					rs.close();
				}
				if(st!=null){
					st.close();
				}
				if(con!=null){
					con.close();
				}
			}catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return queryResult;
	}

     //实现条件查询功能
	public StringBuffer getQueryResultBy(){
		queryResultBy=new StringBuffer();
		Connection con = null;
		Statement st = null;
		ResultSet rs=null;
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		try {
		 	con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Teach","sa","数据库密码");
			st=con.createStatement();
			String selectSql="select * from KC where 1=1 ";
			if(CN!=null&&CN.length()>0){
				selectSql=selectSql+" and CN='"+CN+"' ";
			}
			if(CT>0){
				selectSql=selectSql+" and CT>"+CT+" ";
			}
			if(TN!=null&&TN.length()>0){
				selectSql=selectSql+" and TN='"+TN+"' ";
			}
			rs=st.executeQuery(selectSql);
			queryResultBy.append("<table border=1 >");
			queryResultBy.append("<table bgcolor=\"#ffffdd\" border=\"auto\"width=\"auto\" >");
				queryResultBy.append("<tr>");
					queryResultBy.append("<th>CNo</th>");
					queryResultBy.append("<th>CN</th>");
					queryResultBy.append("<th>TN</th>");
					queryResultBy.append("<th>KKXQ</th>");
					queryResultBy.append("<th>CT</th>");
					queryResultBy.append("<th>SC</th>");
				queryResultBy.append("</tr>");
			while(rs.next()){
				queryResultBy.append("<tr>");
					queryResultBy.append("<td>"+rs.getString(1)+"</td>");
					queryResultBy.append("<td>"+rs.getString(2)+"</td>");
					queryResultBy.append("<td>"+rs.getString(3)+"</td>");
					queryResultBy.append("<td>"+rs.getString(4)+"</td>");
					queryResultBy.append("<td>"+rs.getString(5)+"</td>");
					queryResultBy.append("<td>"+rs.getString(6)+"</td>");
				queryResultBy.append("</tr>");
			}
			queryResultBy.append("</table >");
		}catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try{
				if(rs!=null){
					rs.close();
				}
				if(st!=null){
					st.close();
				}
				if(con!=null){
					con.close();
				}
			}catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return queryResultBy;
	}
}

页面运行效果:

在addGoods页面输入添加的信息:


点击“添加”按钮后,页面跳转到show.jsp页面输出全部数据信息:


实例二代码如下(实现条件查询数据库中的表数据的功能):

本程序共分为三个文件,inputQuery.jsp、showin.jsp、Bean.java(封装在bean包中),inputQuery.jsp、showin.jsp分别实现的功能是输入查询信息页面、输出查询结果页面,

inputQuery.jsp文件代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
	pageEncoding="GBK"%>
<html>
<head>
<title>inputQuery.jsp</title>
</head>
<body bgcolor="LightCyan">
	<h4>输入查询条件!</h4>
	<form action="showin.jsp" method="post">
	<table border="1">
		<tr>
			<td>教师姓名:</td>
			<td><input type="text" name="TN"/></td>
		</tr>
		
		<tr>
			<td>课程学时大于:</td>
			<td><input type="text" name="CT"/></td>
		</tr>
		
		<tr>
			<td>课程名称:</td>
				<td><input type="text" name="CN"/></td>
		</tr>
		
		<tr>
			<td><input type="submit" value="查询"></td>
			<td><input type="reset" value="重置"></td>
		</tr>
	</table>
	</form>
</body>
</html>
showin.jsp文件代码如下:
<%@ page language="java" contentType="text/html; charset=GBK"
	pageEncoding="GBK"%>
<%@ page import="bean.Bean" %>
<html>
<head>
<title>showGoods.jsp</title>
</head>
<body>
	<%
		request.setCharacterEncoding("GBK");
	%>
	<jsp:useBean id="goods" class="bean.Bean" scope="page"></jsp:useBean>
	<jsp:setProperty property="*" name="goods"/>
	<jsp:getProperty property="queryResultBy" name="goods"/><!-- 获得查询结果 -->
</body>
</html>

Bean.java(封装在bean包中)文件与实例一中相同,其中实现功能的函数是getQueryResultBy();

页面运行效果:

输入查询条件:教师姓名-‘涛哥’:


点击“查询”按钮后,页面跳转到showin.jsp页面输出查询结果:



  • 1
    点赞
  • 1
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值