JavaBean+jdbc(连接Oracle 11g)完成成绩查询功能

项目要求:
1、创建一web工程,新建两个jsp文件,分别为成绩查询输入页面 queryscore.jsp 和查询结果显示页面result.jsp 。
2、新建JavaBean,名称为StuScore.java,属性有no(学号)、 name(姓名)、 ds(数据结构成绩)、 db(数据库原理成绩)、 java(java程序成绩)、web(web技术成绩);还有处理查询逻辑的方法 getScores()。
处理流程如下:
用户成绩查询页面输入学号,提交请求给result.jsp页面,在result.jsp中创建JavaBean并调用getScores()方法,将查询到的成绩以表格形式显示,若没有查询到成绩,给出提示信息(成绩数据保存在数据库中)
界面如下:
在这里插入图片描述
在这里插入图片描述

项目需要:2个jsp文件和2个java文件
在这里插入图片描述
项目结构:
在这里插入图片描述

StuScore.java

package com.Dto;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.util.DButil;
 
public class StuScore {
  String No;
  String Name;
  int Ds;
  int Db;
  int Java;
  int Web;
public String getNo() {
	return No;
}
public void setNo(String no) {
	No = no;
}
public String getName() {
	return Name;
}
public void setName(String name) {
	Name = name;
}
public int getDs() {
	return Ds;
}
public void setDs(int ds) {
	Ds = ds;
}
public int getDb() {
	return Db;
}
public void setDb(int db) {
	Db = db;
}
public int getJava() {
	return Java;
}
public void setJava(int java) {
	Java = java;
}
public int getWeb() {
	return Web;
}
public void setWeb(int web) {
	Web = web;
}
public void getScores(String sno) throws IOException{
	DButil db = new DButil();//初始化工具类
    String sql = "select * from stu_score where no = ?";//封装sql语句,这边的‘stu_score’要和数据库中的表 同名
    //1、连接到数据库
    Connection connection = db.getConnection();
    try {
    	//2、执行SQL查询
    	PreparedStatement pst = connection.prepareStatement(sql);
    	pst.setString(1, sno);
    	//3、把查询结果放到结果集
    	ResultSet rs = pst.executeQuery();
    	if (rs.next()) {
    		String user_no=rs.getString(1);
    		String user_name=rs.getString(2);
    		int user_ds=rs.getInt(3);
    		int user_db=rs.getInt(4);
    		int user_java=rs.getInt(5);
    		int user_web=rs.getInt(6);
    		this.No=user_no;
    		this.Name=user_name;
    		this.Ds=user_ds;
    		this.Db=user_db;
    		this.Java=user_java;
    		this.Web=user_web;
    	}
    } catch (SQLException e) {
    	e.printStackTrace();
    } finally {
    	//4、断开数据库连接
    	db.closeConnection(connection);//放到finally中,无论是否抛出异常,最后都会执行该语句
    }
     
     
	
	 
	}
}

DButil.java

package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * util工具类
 * @author yangchaoyi
 *
 */
public class DButil {
    //1、执行静态方法,加载数据库驱动
    static {
        try {
            System.out.println("正在加载数据库驱动...");
            System.out.println("Class.forName('oracle.jdbc.driver.OracleDriver');");

            Class.forName("oracle.jdbc.driver.OracleDriver");//这边参数的意义,url:jdbc数据库网址 user:用户名(String类型) password:密码(String类型)[这边的数据库密码和用户名填写自己的]。同样由于getConnection方法会抛出SQLException,要使用try-catch

            System.out.println("已加载数据库驱动!!!\n");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //2、创建数据库连接的方法
    public Connection getConnection() {
        Connection connection;
        try {
            System.out.println("正在连接到数据库...");
            System.out.println("connection = DriverManager.getConnection('jdbc:oracle:thin:@localhost:1521:orcl', 'scott', 'ycy');");

            connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "ycy");///这边参数的意义,url:jdbc数据库网址 user:用户名 password:密码。同样由于getConnection方法会抛出SQLException,要使用try-catch

            System.out.println("已连接到scott数据库!!!\n");
            return connection;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    //3、关闭数据库连接,释放JDBC资源的方法
    public void closeConnection(Connection connection) {
        if (connection != null) {
            try {
                System.out.println("准备释放jdbc资源,断开数据库连接...");
                System.out.println("connection.close();");

                connection.close();//立即释放jdbc资源,而不是等自动释放

                System.out.println("已断开数据库连接并且释放了jdbc资源\n");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

    }
}



queryscore.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>成绩查询</title>
</head>
<body>
<center>
<font size="5" face="隶书" color="blue">成绩查询系统 </font>
<hr>
<form action="result.jsp" method="post">
输入学号:<input type=text name="stuno" size=12 maxlength=20><input type=submit name="提交按钮" value="确定">
</form>
</center>
</body>
</html>

result.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"%>
<%@ page import="com.Dto.StuScore"  %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>查询结果</title>
</head>
<body>
<center>
<%	String no=request.getParameter("stuno");%>
<jsp:useBean id="stu" scope="page" class="com.Dto.StuScore"></jsp:useBean>
<jsp:setProperty name="stu" property="no" value="<%=no %>"/>
<% stu.getScores(no); %>
<%if(stu.getName()!=null)
	{%>
	<font size="5" face="隶书" color="blue">查询结果</font>
	<hr>
	<table border=2>
	<tr>
	<td>学号</td><td>姓名</td><td>数据结构</td><td>数据库原理</td><td>java程序设计</td><td>web技术基础</td>
	<tr>
	<tr>
<td><%=stu.getNo() %></td><td><%=stu.getName() %></td><td><%=stu.getDs() %></td><td><%=stu.getDb() %></td><td><%=stu.getJava() %></td><td><%=stu.getWeb() %></td>
	<tr>
	</table>
	<%} else{
	%>
	系统中没有查询到学号:<%=no %>的成绩
	<%} %>
</center>
</body>
</html>

Oracle 代码

create table stu_score
(
no varchar2(20),
name varchar2(20),
ds number(4),
db number(4),
java number(4),
web number(4)
);

insert into stu_score
values('20170101', '张无忌', 98,98,98,99);

insert into stu_score
values('20170102', '赵敏', 92,91,93,99);

select * from stu_score;
学如逆水行舟,不进则退

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一百个Chocolate

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值