欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-23 22:04:10
...

·核心知识

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页面输入添加的信息:

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

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

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

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

本程序共分为三个文件,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();

页面运行效果:

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

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

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

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