实验感受:

本次实验最大的感受,就是不要改代码,自己写,代码改起来真的没完没了,不知道会出现什么问题。还有就是一定要清楚自己要怎么去写,流程很重要,一个个功能去实现。

主界面

数据库

主页面代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<title>库存物资信息录入 </title> <%--页面标题--%>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<script type="text/javascript" language="JavaScript"> //JS
function validate()
{
var name = document.forms[0].name.value; //创建变量name
var factory = document.forms[0].factory.value; //创建变量teacher
var id = document.forms[0].id.value;
var standard = document.forms[0].standard.value; //创建变量address
if(name.length <= 0){ //判断姓名位数,必填
alert("名称不能为空,请输入名称!");
return false;
}
else if(factory.length <= 0){ //判断年龄,必填
alert("请输入合法生产工厂!");
return false;
}
else if(id.length <= 0){ //判断学号位数,必填
alert("型号不能为空,请输入型号!");
return false;
} else if(standard.length <= 0){ //专业为必填
alert("规格不能为空,请输入商品规格!");
return false;
}
else{
return true;
}
//document.getElementById("form").submit();
}
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<br><%--换行--%>
<center>
<h2>库存商品信息录入</h2><hr size="1" noshade color="#000000"><%--横线--%>
<form action="insert.jsp" method="post" id="form" onSubmit="return validate()" ><%--跳转到insert.jsp文件,方法为post--%>
<table width="800" border="0" align="center"> <%--表格的宽为800,居中对齐--%>
<tr>
<td>库存商品名称:
<input type="text" name="name"></td>
</tr>
<tr>
<td>生产工厂:
<input type="text" name="factory"></td>
</tr>
<tr>
<td>型号: <input type="text" name="id"> </td>
</tr>
<tr>
<td>规格: <input type="text" name="standard"> </td>
</tr>
<tr>
<td>                          <input name="submit" type="submit" value="保存"/></td>
</tr>
</table>
<p> </p>
</form>
<a href="show.jsp">查询所有库存商品信息</a> <%--链接到学生信息查询页面--%>
</center>
</body>
</html>

  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<base href="<%=basePath%>"> <%--设置基础路径--%>
<title>库存商品信息删除界面</title> <%--页面标题--%>
</head>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
String name = request.getParameter("name");
Connection conn = null; //定义静态数据库连接 //定义静态数据库连接
Statement stat = null;
ResultSet rs = null; //将rs滞空。
conn = DBUtil.getConnection();
stat = conn.createStatement();
stat.executeUpdate("delete from good where name = '" + name + "'"); //删除data表中的name字段
rs = stat.executeQuery("select * from good"); //查找data表
if(rs.next()) //判断结果集
{
out.print("<center><br><br><h3>删除成功!</h3></center>");
}
else{
out.print("<center><h3>删除失败!</h3></center>");
}
%>
<br>
<br>
<center><a href=add.jsp>返回添加库存商品信息页面</a><br/><br/><a href=show.jsp>返回库存商品信息查询页面</a></center> <%--设置居中--%>
<%
if(rs != null)
{
rs.close(); //关闭结果集,但是rs还是有null值。
rs = null; //将rs滞空。
}
if(stat != null)
{
stat.close(); //关闭stat。
stat = null; //滞空stat。
}
if(conn != null)
{
conn.close(); //关闭数据库连接
conn = null;
}
%>
</body>
</html>

  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<title>库存商品信息</title> <%--页面标题--%>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<%--JS--%>
<script type="text/javascript"">
function validate()
{
var name = document.forms[0].name.value;
var factory = document.forms[0].factory.value;
var id = document.forms[0].id.value;
var standard = document.forms[0].standard.value;
if(name.length <= 0){ //判断姓名位数,必填
alert("名称不能为空,请输入名称!");
return false;
}
else if(factory.length <= 0){ //判断年龄,必填
alert("请输入合法生产工厂!");
return false;
}
else if(id <= 0){ //判断学号位数,必填
alert("型号不能为空,请输入型号!");
return false;
} else if(standard.length <= 0){ //专业为必填
alert("规格不能为空,请输入商品规格!");
return false;
}
else{
return true;
}
//document.getElementById("form").submit();
}
</script>
</head>
<body background="img/background.jpg">
<%
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
String name = request.getParameter("name");
String factory = request.getParameter("factory");
String id = request.getParameter("id");
String standard = request.getParameter("standard");
Connection conn = null; //定义静态数据库连接
Statement stat = null; //滞空stat。
ResultSet rs = null; //将rs滞空。
conn = DBUtil.getConnection();
stat = conn.createStatement();
rs = stat.executeQuery("select * from good where name='" + name + "'"); //查找data表id字段
%>
<br>
<h2>库存商品信息</h2>
<hr noshade>
<br>
<h3>要修改的库存商品信息如下</h3>
<table width="450" border="0" cellpadding="1" cellSpacing=1 style="font-size:15pt;border:dashed 1pt">
<tr align="center">
<td>库存商品名称</td>
<td>库存商品生产工厂</td>
<td>库存商品型号</td>
<td>库存商品规格</td>
</tr>
<%
while(rs.next())
{
out.print("<tr>");
out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
out.print("<td>" + rs.getString("factory") + "</td>"); //输出gender内容
out.print("<td>" + rs.getString("id") + "</td>");
out.print("<td>" + rs.getString("standard") + "</td>"); //输出major内容
out.print("</tr>");
%>
</table>
<br>
<br>
<h3>将库存商品信息更改为:</h3>
<form action="updateShow.jsp" method="post" onSubmit="return validate()">
<h4>库存商品名称:<input type="text" name="name" value="<%=rs.getString("name") %>" title="库存商品名称不能改变" onClick="return checkName(name)"readonly="readonly"></input><br></h4>
<h4>库存商品生产工厂:<input type="text" name="factory" title="库存商品生产工厂不能为空"></input><br></h4>
<h4>库存商品型号:<input type="text" name="id" title="库存商品型号不能为空"></input><br></h4>
<h4>库存商品规格:<input type="text" name="standard" title="库存商品规格不能为空"></input><br></h4>
<input type="submit" value="修改"/>
</form>
<a href=add.jsp>返回库存商品添加信息页面</a><br/><a href=show.jsp>返回库存商品信息查询页面</a>
<%
}
%>
<%
if(rs != null)
{
rs.close(); //关闭结果集,但是rs还是有null值。
rs = null; //将rs滞空。
}
if(stat != null)
{
stat.close(); //关闭stat。
stat = null; //滞空stat。
}
if(conn != null)
{
conn.close(); //关闭数据库连接
conn = null;
}
%>
</body>
</html>

  

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
<head>
<base href="<%=basePath%>">
<title>修改界面</title>
</head>
<body>
<div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
</div>
<%
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
String name1 = request.getParameter("name");
String factory1 = request.getParameter("factory");
String id1 = request.getParameter("id");
String standard1 = request.getParameter("standard");
Connection conn = null; //定义静态数据库连接
Statement stat = null;
conn = DBUtil.getConnection();
stat = conn.createStatement();
stat.execute("update good set name='" + name1 + "' ,factory='" + factory1 + "' ,id='" + id1 + "' ,standard='" + standard1+"' where name='" + name1 + "'");
ResultSet rs = stat.executeQuery("select * from good where name='" + name1 + "'"); //查找data表id字段
%>
<br>
<h3>修改成功!</h3> <%--标题样式3--%>
<br>
<h3>修改后的库存商品信息为:</h3> <%--标题样式3--%>
<hr noshade>
<br>
<br>
<table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <%--表格宽度450--%>
<tr>
<td>库存商品名称</td>
<td>库存商品生产工厂</td>
<td>库存商品型号</td>
<td>库存商品规格</td>
</tr>
<%
while(rs.next())
{
out.print("<tr>");
out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
out.print("<td>" + rs.getString("factory") + "</td>"); //输出gender内容
out.print("<td>" + rs.getString("id") + "</td>");
out.print("<td>" + rs.getString("standard") + "</td>"); //输出major内容
out.print("</tr>");
}
%>
</table>
<br>
<br>
<a href=add.jsp>返回库存商品添加信息页面</a><br/><a href=show.jsp>返回库存商品信息查询页面</a>
<%
if(rs != null)
{
rs.close(); //关闭结果集,但是rs还是有null值。
rs = null; //将rs滞空。
}
if(stat != null)
{
stat.close(); //关闭stat。
stat = null; //滞空stat。
}
if(conn != null)
{
conn.close(); //关闭数据库连接
conn = null;
}
%>
</body>
</html>

  

package com.javao.msg;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class DBUtil { public static Connection getConnection() {
try {
//1 鍔犺浇椹卞姩
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String user = "root";
String password = "123456";
String url = "jdbc:mysql://localhost:3306/inventory?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
Connection connection = null;
try {
//2 鍒涘缓閾炬帴瀵硅薄connection
connection = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
} //鍏抽棴璧勬簮鐨勬柟娉�
public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
} } catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

  

一个Java系统测试的更多相关文章

  1. 一个Java文件至多包含一个公共类

    编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...

  2. 一个java源文件中为什么只能有一个public类。

    我们都遇到过一个源文件中有多个java类,但当第一个类使用public修饰时,如果下面还有类使用public修饰,会报错.也就是是说一个java源文件最多只能有一个public类. 当有一个publi ...

  3. webmagic的设计机制及原理-如何开发一个Java爬虫

    之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方 ...

  4. Java基础-一个java文件多个类的问题

    一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.

  5. 在Eclipse中,如何把一个java项目变成web项目

    经常在eclipse中导入web项目时,出现转不了项目类型的问题,导入后就是一个java项目.解决步骤:1.进入项目目录,可看到.project文件,打开.2.找到<natures>... ...

  6. 搭建java开发环境、使用eclipse编写第一个java程序

    搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...

  7. 分享:写了一个 java 调用 C语言 开发的动态库的范例

    分享:写了一个 java 调用 C语言 开发的动态库的范例 cfunction.h   代码#pragma once#ifdef __cplusplusextern "C" {#e ...

  8. java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器

    java程序保护如何知识产权,特别提供一个java 开发的java 源代码级的混淆器 下载地址:http://yunpan.cn/QXhEcGNYLgwTD 运行方式:java -jar Encryp ...

  9. 自己写一个java.lang.reflect.Proxy代理的实现

    前言 Java设计模式9:代理模式一文中,讲到了动态代理,动态代理里面用到了一个类就是java.lang.reflect.Proxy,这个类是根据代理内容为传入的接口生成代理用的.本文就自己写一个Pr ...

随机推荐

  1. 20180310 KindEditor 富文本编辑器

    问题: 如何判断富文本编辑器文本内容非空 错误的办法,采用js 对控件本身的txt ID 号抓取获取值,由于加载富文本编辑器时,界面的ID 已经经过了修改或者可以用转换来说,所以抓取是无效果的. 需要 ...

  2. Mac本如何卸载MySQL

    Mac本如何卸载MySQL 在Mac上卸载MySQL上一件非常麻烦的事,如果没有卸载干净,就会无法安装新的MySQL 怎样才能完全卸载MySQL呢?(包括所有数据库)    执行以下操作: #打开终端 ...

  3. python类型错误:can only concatenate list (not "str") to list

    TypeError:can only concatenate list (not "str") to list: 类型错误:只能将list类型和list类型联系起来,而不是str类 ...

  4. Z字形扫描

    #include<cstdio> #include<iostream> #include<algorithm> #include<vector> #in ...

  5. Redis入门到高可用(五)—— 单线程

    一.单线程为何这么快 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框 ...

  6. linux find grep tail

    如果在只是想匹配模式的上下几行,grep可以实现. $grep -5 'parttern' inputfile //打印匹配行的前后5行 $grep -C 5 'parttern' inputfile ...

  7. 指向list的指针

    #include<list> #include<string> #include<iostream> using namespace std; int main() ...

  8. jenkins openshift 持续集成

    参数部分没有 不要照抄,只供参考 需求: CI利用confd+etcd生成配置文件 CI把git的COMMIT 传到openshift的buildconfigs #!/bin/bash echo ec ...

  9. 百度云同同步盘 mac版

    百度云同步盘

  10. 17.在自适应屏幕里通过JQ来获取宽高并赋给需要的

    在自适应屏幕里通过JQ来获取宽高并赋给需要的div. var height = document.documentElement.clientHeight; $(window).height();(同 ...