jsp实验18 JDBC

news2025/1/20 15:42:51

源代码以及执行结果截图:

admoinStudent.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<%@page import="java.sql.*"%>

<%@ page import="javax.sql.DataSource" %>

<%@ page import="javax.naming.Context" %>

<%@ page import="javax.naming.InitialContext" %>

<style>

   #tom{

      font-family:宋体;font-size:28;color:black

   }

</style>

<%  request.setCharacterEncoding("utf-8");

    Connection con=null;

    PreparedStatement pre=null;

    ResultSet rs;

    Context  context =new InitialContext();

    Context  contextNeeded=(Context)context.lookup("java:comp/env");//环境命名上下文

    DataSource ds=

    (DataSource)contextNeeded.lookup("StudentConn");

    con = ds.getConnection();

    String updateSQL =

   "update scoreReport set name =?,mathScore=?,englishScore=? where id=?";

    String insertSQL ="insert into scoreReport values(?,?,?,?)";

    String deleteSQL ="delete from scoreReport where id =?";

    String querySQL = "select * from scoreReport where id =?";

    String mess = request.getParameter("submit");

    if(mess == null) mess ="";

    String id = request.getParameter("id");

    String name = request.getParameter("name");

    String math = request.getParameter("mathScore");

    String english = request.getParameter("englishScore");

    try{

      if(mess.contains("查看")){

         pre = con.prepareStatement(querySQL);

         pre.setString(1,id);

         rs = pre.executeQuery();

         if(rs.next()){

           id = rs.getString(1);

           name = rs.getString(2);

           math = rs.getString(3);

           english = rs.getString(4);

         }

      }

      else if(mess.contains("更新")){

         pre = con.prepareStatement(updateSQL);

         pre.setString(1,name);

         pre.setInt(2,Integer.parseInt(math));

         pre.setInt(3,Integer.parseInt(english));

         pre.setString(4,id);

         pre.executeUpdate();

         out.print("<h3>更新成功</h3>");

      }

      else if(mess.contains("添加")){

         pre = con.prepareStatement(insertSQL);

         pre.setString(1,id);

         pre.setString(2,name);

         pre.setInt(3,Integer.parseInt(math));

         pre.setInt(4,Integer.parseInt(english));

         pre.executeUpdate();

         out.print("<h3>添加成功</h3>");

      }

       else if(mess.contains("删除")){

         pre = con.prepareStatement(deleteSQL);

         pre.setString(1,id);

         pre.executeUpdate();

         out.print("<h3>删除成功</h3>");

      }

    }

    catch(SQLException e) {

       out.print("<h1>学号不能重复");

       try{

         con.close();

       }

       catch(SQLException exp){}

    }

%>

  

<!DOCTYPE html>

<html>                                

<head> 

<meta charset="utf-8">

<title>Insert title here</title>

</head>

<body bgcolor = #ffccff>

<form action="" id=tom method=post >

输入学号查看或删除(信息):<br>

  <input type="text"   id=tom name="id" size=10 /><br>

  <input type="submit" id=tom name="submit" value="查看"/>

  <input type="submit" id=tom name="submit" value="删除"/>

</form>

<form action="" id=tom method=post>

更新(或添加)

<input type="text" id=tom name="id" value =<%=id%> size=9 />

学号的信息:

<br>姓名:

<input type="text" id=tom name="name" value ='<%=name%>'size=11/>

<br>数学成绩:

<input type="text" id=tom name="mathScore" value ='<%=math%>'size=7 />

<br>英语成绩:

<input type="text" id=tom name="englishScore" value ='<%=english%>'size=7/>

<br><input type="submit" id=tom name="submit" value="更新"/>

    <input type="submit" id=tom name="submit" value="添加"/>

</form>

</body>

</html>

      context.xml

<?xml version="1.0" encoding="UTF-8"?>

<Context>

   <Resource

      name="StudentConn"

      type="javax.sql.DataSource"

      driverClassName="com.mysql.cj.jdbc.Driver"

      url="jdbc:mysql://127.0.0.1:3306/stdent?

      serverTimezone=CST&amp;characterEncoding=utf8"

       username ="root"

      password ="root"

      maxActive ="5"

      maxIdle ="5"

      minIdle ="1"

      maxWait ="5000"

   />

</Context>

效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1719518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【并发程序设计】12.内存映射

12.内存映射 使一个磁盘文件与内存中的一个缓冲区相映射&#xff0c;进程可以像访问普通内存一样对文件进行访问&#xff0c;不必再调用read,write&#xff0c;更加高效。 用到的函数 mmap函数 原型&#xff1a; #include <sys/mman.h> void* mmap(void* start, size_…

芙芙工具箱app源码 开源的工具箱

该工具箱集成多种实用工具&#xff0c;提供了便捷、高效的电脑使用体验&#xff0c;这款软件具备系统优化、文件管理、网络工具等多个模块&#xff0c;能够满足用户在日常使用中的多种需求&#xff0c; 芙芙工具箱可以帮助你轻松管理文件、优化系统性能、检测网络状态等&#…

反VC情绪:加密市场需要新的分布式代币发行方式

GME事件 GME事件反应了社交媒体在金融决策中的影响力&#xff0c;散户投资者群体通过集体行动&#xff0c;改变了很多人对股市的看法和参与方式。 GME事件中&#xff0c;meme扮演了核心角色。散户投资者使用各种meme来沟通策略、激励持股行为&#xff0c;创造了一种反对华尔街…

C语言文件操作:打开关闭,读写

程序文件 源程序文件&#xff08;后缀为.c&#xff09; 目标文件&#xff08;Windows环境后缀为.obj&#xff09; 可执行文件&#xff08;Windows环境后缀为.exe&#xff09; fputc FILE* pf fopen("test.txt","w");if (pf NULL){printf("%s\n"…

scp:Linux系统本地与远程文件传输命令

scp 是Linux系统中用于在本地主机和远程主机之间进行文件传输的命令。 详细说明&#xff1a; scp 命令用于安全地将文件从一个主机传输到另一个主机&#xff0c;所有传输数据都是加密的。语法&#xff1a; scp [参数] [源文件路径] [目标主机:目标路径] 参数说明&#xff1a…

977. 有序数组的平方 - 力扣

1. 题目 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 2. 示例 3. 分析 我们当然可以遍历数组平方元素&#xff0c;然后再使用sort排序&#xff0c;但这里时间复杂度就为 O(logN) 了。 我…

appium元素定位工具_uiautomatorviewer.bat

特点&#xff1a; uiautomatorviewer是android-sdk自带的元素定位工具uiautomatorviewer只能用于安卓系统&#xff1b;它是通过截屏分析XML布局文件方式&#xff0c;来提供控件信息的查看服务 uiautomatorviewer.bat 基本使用 路径&#xff1a;这个工具是Android SDK中自带&…

php反序列化学习(3)

1、session 当session_start()被调用或者php.ini中session.auto_start为1时&#xff0c;php内部调用会话管理器&#xff0c;访问用户session被序列化后&#xff0c;存储到指定目录&#xff08;默认为/tmp&#xff09;。 漏洞产生&#xff1a;写入格式与读取格式不一致 处理器…

蓝桥杯2024国赛--备赛刷题题单

1.游戏&#xff08;单调队列&#xff09; 注意如果结果是分数&#xff0c;直接设置变量为double&#xff0c;最好不要使用把int类型乘1.0变成分数来计算。 #include <iostream> #include <queue> using namespace std; const int N1e510; //滑动窗口大小为k,最大值…

运维开发.Kubernetes探针与应用

运维系列 Kubernetes探针与应用 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263…

HTML静态网页成品作业(HTML+CSS)——企业装饰公司介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发

目录 一、列表初始化 1.1 { } 初始化 1.2 std::initializer_list 二、声明 2.1 auto 2.2 decltype 2.3 nullptr 三、新容器 四、右值引用和移动语义 4.1 左值和左值引用 4.2 右值和右值引用 4.3 左值引用与右值引用比较 4.4 右值引用使用场景和意义&#xff1a;移…

chap5 CNN

卷积神经网络&#xff08;CNN&#xff09; 问题描述&#xff1a; 利用卷积神经网络&#xff0c;实现对MNIST数据集的分类问题 数据集&#xff1a; MNIST数据集包括60000张训练图片和10000张测试图片。图片样本的数量已经足够训练一个很复杂的模型&#xff08;例如 CNN的深层…

Visual Studio Code使用(C++项目新建,运行)

VS Code 直接在官网下载安装。 接下来安装插件&#xff0c;下图是C所需的对应插件 1.新建项目 VS Code下载安装完成后&#xff0c;直接进入欢迎页&#xff1a; 在访达/文件夹中新建一个文件夹&#xff0c;欢迎页点击【打开】&#xff0c;选择刚刚新建的文件夹。点击第一个图…

MT8781安卓核心板_MTK联发科Helio G99核心板规格参数

MT8781安卓核心板采用先进的台积电6纳米级芯片生产工艺&#xff0c;配备高性能Arm Cortex-A76处理器和Arm Mali G57 GPU&#xff0c;加上LPDDR4X内存和UFS 2.2存储&#xff0c;在处理速度和数据访问速度上都有着出色的表现。 MT8781还支持120Hz显示器&#xff0c;无需额外的DSC…

vue3学习(六)

前言 接上一篇学习笔记&#xff0c;今天主要是抽空学习了vue的状态管理&#xff0c;这里学习的是vuex&#xff0c;版本4.1。学习还没有学习完&#xff0c;里面有大坑&#xff0c;难怪现在官网出的状态管理用Pinia。 一、vuex状态管理知识点 上面的方式没有写全&#xff0c;还有…

QT软件界面的设计与启动方法

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、Q T界面设计的重要性 二、QT软件的启动与配置 三、QT软件的启动路径设置 四、QT软件启…

Linux--EXT2文件系统

参考资料&#xff1a; linux之EXT2文件系统--理解block/block group/索引结点inode/索引位图_一个块组中索引节点表和数据块区最多占用字节-CSDN博客 linux环境&#xff1a; Linux version 5.15.146.1-microsoft-standard-WSL2 (root65c757a075e2) (gcc (GCC) 11.2.0, GNU ld…

Llama改进之——分组查询注意力

引言 今天介绍LLAMA2模型引入的关于注意力的改进——分组查询注意力(Grouped-query attention,GQA)1。 Transformer中的多头注意力在解码阶段来说是一个性能瓶颈。多查询注意力2通过共享单个key和value头&#xff0c;同时不减少query头来提升性能。多查询注意力可能导致质量下…

C++双层Vector容器详解

双层Vector容器 关于C中二维vector使用 双层vector的运用细节 插入元素 //正确的插入方式 vector<vector<int> > A; //A.push_back里必须是vector vector<int> B; B.push_back(0); B.push_back(1); B.push_back(2); A.push_back(B); B.clear(); B.push_back…