实验感受:

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

主界面

数据库

主页面代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
  2. <%
  3. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  4. response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  5. %>
  6. <%
  7. String path = request.getContextPath(); //相对Path设置
  8. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
  9. %>
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
  11. <html>
  12. <head>
  13. <title>库存物资信息录入 </title> <%--页面标题--%>
  14. <body>
  15. <div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
  16. <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
  17. </div>
  18. <script type="text/javascript" language="JavaScript"> //JS
  19. function validate()
  20. {
  21. var name = document.forms[0].name.value; //创建变量name
  22. var factory = document.forms[0].factory.value; //创建变量teacher
  23. var id = document.forms[0].id.value;
  24. var standard = document.forms[0].standard.value; //创建变量address
  25. if(name.length <= 0){ //判断姓名位数,必填
  26. alert("名称不能为空,请输入名称!");
  27. return false;
  28. }
  29. else if(factory.length <= 0){ //判断年龄,必填
  30. alert("请输入合法生产工厂!");
  31. return false;
  32. }
  33. else if(id.length <= 0){ //判断学号位数,必填
  34. alert("型号不能为空,请输入型号!");
  35. return false;
  36. }
  37.  
  38. else if(standard.length <= 0){ //专业为必填
  39. alert("规格不能为空,请输入商品规格!");
  40. return false;
  41. }
  42. else{
  43. return true;
  44. }
  45. //document.getElementById("form").submit();
  46. }
  47. </script>
  48. </head>
  49. <body>
  50. <div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
  51. <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
  52. </div>
  53. <br><%--换行--%>
  54. <center>
  55. <h2>库存商品信息录入</h2><hr size="1" noshade color="#000000"><%--横线--%>
  56. <form action="insert.jsp" method="post" id="form" onSubmit="return validate()" ><%--跳转到insert.jsp文件,方法为post--%>
  57. <table width="800" border="0" align="center"> <%--表格的宽为800,居中对齐--%>
  58. <tr>
  59. <td>库存商品名称:
  60. <input type="text" name="name"></td>
  61. </tr>
  62. <tr>
  63. <td>生产工厂:
  64. <input type="text" name="factory"></td>
  65. </tr>
  66. <tr>
  67. <td>型号: <input type="text" name="id"> </td>
  68. </tr>
  69. <tr>
  70. <td>规格: <input type="text" name="standard"> </td>
  71. </tr>
  72. <tr>
  73. <td>                          <input name="submit" type="submit" value="保存"/></td>
  74. </tr>
  75. </table>
  76. <p> </p>
  77. </form>
  78. <a href="show.jsp">查询所有库存商品信息</a> <%--链接到学生信息查询页面--%>
  79. </center>
  80. </body>
  81. </html>

  

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
  2. <%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
  3. <%@page import="com.javao.msg.DBUtil"%>
  4. <%
  5. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  6. response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  7. %>
  8. <%
  9. String path = request.getContextPath(); //相对Path设置
  10. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
  11. %>
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
  13. <html>
  14. <head>
  15. <base href="<%=basePath%>"> <%--设置基础路径--%>
  16. <title>库存商品信息删除界面</title> <%--页面标题--%>
  17. </head>
  18. <body>
  19. <div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
  20. <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
  21. </div>
  22. <%
  23. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  24. String name = request.getParameter("name");
  25. Connection conn = null; //定义静态数据库连接 //定义静态数据库连接
  26. Statement stat = null;
  27. ResultSet rs = null; //将rs滞空。
  28. conn = DBUtil.getConnection();
  29. stat = conn.createStatement();
  30. stat.executeUpdate("delete from good where name = '" + name + "'"); //删除data表中的name字段
  31. rs = stat.executeQuery("select * from good"); //查找data表
  32. if(rs.next()) //判断结果集
  33. {
  34. out.print("<center><br><br><h3>删除成功!</h3></center>");
  35. }
  36. else{
  37. out.print("<center><h3>删除失败!</h3></center>");
  38. }
  39. %>
  40. <br>
  41. <br>
  42. <center><a href=add.jsp>返回添加库存商品信息页面</a><br/><br/><a href=show.jsp>返回库存商品信息查询页面</a></center> <%--设置居中--%>
  43. <%
  44. if(rs != null)
  45. {
  46. rs.close(); //关闭结果集,但是rs还是有null值。
  47. rs = null; //将rs滞空。
  48. }
  49. if(stat != null)
  50. {
  51. stat.close(); //关闭stat。
  52. stat = null; //滞空stat。
  53. }
  54. if(conn != null)
  55. {
  56. conn.close(); //关闭数据库连接
  57. conn = null;
  58. }
  59. %>
  60. </body>
  61. </html>

  

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
  2. <%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
  3. <%@page import="com.javao.msg.DBUtil"%>
  4. <%
  5. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  6. response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  7. %>
  8. <%
  9. String path = request.getContextPath(); //相对Path设置
  10. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
  11. %>
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
  13. <html>
  14. <head>
  15. <title>库存商品信息</title> <%--页面标题--%>
  16. <body>
  17. <div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
  18. <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
  19. </div>
  20. <%--JS--%>
  21. <script type="text/javascript"">
  22. function validate()
  23. {
  24. var name = document.forms[0].name.value;
  25. var factory = document.forms[0].factory.value;
  26. var id = document.forms[0].id.value;
  27. var standard = document.forms[0].standard.value;
  28. if(name.length <= 0){ //判断姓名位数,必填
  29. alert("名称不能为空,请输入名称!");
  30. return false;
  31. }
  32. else if(factory.length <= 0){ //判断年龄,必填
  33. alert("请输入合法生产工厂!");
  34. return false;
  35. }
  36. else if(id <= 0){ //判断学号位数,必填
  37. alert("型号不能为空,请输入型号!");
  38. return false;
  39. }
  40.  
  41. else if(standard.length <= 0){ //专业为必填
  42. alert("规格不能为空,请输入商品规格!");
  43. return false;
  44. }
  45. else{
  46. return true;
  47. }
  48. //document.getElementById("form").submit();
  49. }
  50. </script>
  51. </head>
  52. <body background="img/background.jpg">
  53. <%
  54. response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  55. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  56. String name = request.getParameter("name");
  57. String factory = request.getParameter("factory");
  58. String id = request.getParameter("id");
  59. String standard = request.getParameter("standard");
  60. Connection conn = null; //定义静态数据库连接
  61. Statement stat = null; //滞空stat。
  62. ResultSet rs = null; //将rs滞空。
  63. conn = DBUtil.getConnection();
  64. stat = conn.createStatement();
  65. rs = stat.executeQuery("select * from good where name='" + name + "'"); //查找data表id字段
  66. %>
  67. <br>
  68. <h2>库存商品信息</h2>
  69. <hr noshade>
  70. <br>
  71. <h3>要修改的库存商品信息如下</h3>
  72. <table width="450" border="0" cellpadding="1" cellSpacing=1 style="font-size:15pt;border:dashed 1pt">
  73. <tr align="center">
  74. <td>库存商品名称</td>
  75. <td>库存商品生产工厂</td>
  76. <td>库存商品型号</td>
  77. <td>库存商品规格</td>
  78. </tr>
  79. <%
  80. while(rs.next())
  81. {
  82. out.print("<tr>");
  83. out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
  84. out.print("<td>" + rs.getString("factory") + "</td>"); //输出gender内容
  85. out.print("<td>" + rs.getString("id") + "</td>");
  86. out.print("<td>" + rs.getString("standard") + "</td>"); //输出major内容
  87. out.print("</tr>");
  88. %>
  89. </table>
  90. <br>
  91. <br>
  92. <h3>将库存商品信息更改为:</h3>
  93. <form action="updateShow.jsp" method="post" onSubmit="return validate()">
  94. <h4>库存商品名称:<input type="text" name="name" value="<%=rs.getString("name") %>" title="库存商品名称不能改变" onClick="return checkName(name)"readonly="readonly"></input><br></h4>
  95. <h4>库存商品生产工厂:<input type="text" name="factory" title="库存商品生产工厂不能为空"></input><br></h4>
  96. <h4>库存商品型号:<input type="text" name="id" title="库存商品型号不能为空"></input><br></h4>
  97. <h4>库存商品规格:<input type="text" name="standard" title="库存商品规格不能为空"></input><br></h4>
  98. <input type="submit" value="修改"/>
  99. </form>
  100. <a href=add.jsp>返回库存商品添加信息页面</a><br/><a href=show.jsp>返回库存商品信息查询页面</a>
  101. <%
  102. }
  103. %>
  104. <%
  105. if(rs != null)
  106. {
  107. rs.close(); //关闭结果集,但是rs还是有null值。
  108. rs = null; //将rs滞空。
  109. }
  110. if(stat != null)
  111. {
  112. stat.close(); //关闭stat。
  113. stat = null; //滞空stat。
  114. }
  115. if(conn != null)
  116. {
  117. conn.close(); //关闭数据库连接
  118. conn = null;
  119. }
  120. %>
  121. </body>
  122. </html>

  

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
  2. <%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
  3. <%@page import="com.javao.msg.DBUtil"%>
  4. <%
  5. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  6. response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  7. %>
  8. <%
  9. String path = request.getContextPath(); //相对Path设置
  10. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
  11. %>
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
  13. <html>
  14. <head>
  15. <base href="<%=basePath%>">
  16. <title>修改界面</title>
  17. </head>
  18. <body>
  19. <div id="Layer1" style="position:absolute; width:100%; height:100%; z-index:-1">
  20. <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>
  21. </div>
  22. <%
  23. request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
  24. String name1 = request.getParameter("name");
  25. String factory1 = request.getParameter("factory");
  26. String id1 = request.getParameter("id");
  27. String standard1 = request.getParameter("standard");
  28. Connection conn = null; //定义静态数据库连接
  29. Statement stat = null;
  30. conn = DBUtil.getConnection();
  31. stat = conn.createStatement();
  32. stat.execute("update good set name='" + name1 + "' ,factory='" + factory1 + "' ,id='" + id1 + "' ,standard='" + standard1+"' where name='" + name1 + "'");
  33. ResultSet rs = stat.executeQuery("select * from good where name='" + name1 + "'"); //查找data表id字段
  34. %>
  35. <br>
  36. <h3>修改成功!</h3> <%--标题样式3--%>
  37. <br>
  38. <h3>修改后的库存商品信息为:</h3> <%--标题样式3--%>
  39. <hr noshade>
  40. <br>
  41. <br>
  42. <table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <%--表格宽度450--%>
  43. <tr>
  44. <td>库存商品名称</td>
  45. <td>库存商品生产工厂</td>
  46. <td>库存商品型号</td>
  47. <td>库存商品规格</td>
  48. </tr>
  49. <%
  50. while(rs.next())
  51. {
  52. out.print("<tr>");
  53. out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
  54. out.print("<td>" + rs.getString("factory") + "</td>"); //输出gender内容
  55. out.print("<td>" + rs.getString("id") + "</td>");
  56. out.print("<td>" + rs.getString("standard") + "</td>"); //输出major内容
  57. out.print("</tr>");
  58. }
  59. %>
  60. </table>
  61. <br>
  62. <br>
  63. <a href=add.jsp>返回库存商品添加信息页面</a><br/><a href=show.jsp>返回库存商品信息查询页面</a>
  64. <%
  65. if(rs != null)
  66. {
  67. rs.close(); //关闭结果集,但是rs还是有null值。
  68. rs = null; //将rs滞空。
  69. }
  70. if(stat != null)
  71. {
  72. stat.close(); //关闭stat。
  73. stat = null; //滞空stat。
  74. }
  75. if(conn != null)
  76. {
  77. conn.close(); //关闭数据库连接
  78. conn = null;
  79. }
  80. %>
  81. </body>
  82. </html>

  

  1. package com.javao.msg;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9. public class DBUtil {
  10.  
  11. public static Connection getConnection() {
  12. try {
  13. //1 鍔犺浇椹卞姩
  14. Class.forName("com.mysql.cj.jdbc.Driver");
  15. } catch (ClassNotFoundException e) {
  16. // TODO Auto-generated catch block
  17. e.printStackTrace();
  18. }
  19. String user = "root";
  20. String password = "123456";
  21. String url = "jdbc:mysql://localhost:3306/inventory?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
  22. Connection connection = null;
  23. try {
  24. //2 鍒涘缓閾炬帴瀵硅薄connection
  25. connection = DriverManager.getConnection(url,user,password);
  26. } catch (SQLException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. return connection;
  31. }
  32.  
  33. //鍏抽棴璧勬簮鐨勬柟娉�
  34. public static void close(Connection connection ) {
  35. try {
  36. if (connection != null) {
  37. connection.close();
  38. }
  39.  
  40. } catch (SQLException e) {
  41. // TODO Auto-generated catch block
  42. e.printStackTrace();
  43. }
  44. }
  45. public static void close(PreparedStatement preparedStatement ) {
  46. try {
  47. if (preparedStatement != null) {
  48. preparedStatement.close();
  49. }
  50.  
  51. } catch (SQLException e) {
  52. // TODO Auto-generated catch block
  53. e.printStackTrace();
  54. }
  55. }
  56. public static void close(ResultSet resultSet ) {
  57. try {
  58. if (resultSet != null) {
  59. resultSet.close();
  60. }
  61.  
  62. } catch (SQLException e) {
  63. // TODO Auto-generated catch block
  64. e.printStackTrace();
  65. }
  66. }
  67.  
  68. }

  

一个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. HBase单机模式安装

    第一部分 安装前准备 1.安装hadoop 今天刚刚学了hbase的一点基础,准备安装Hbase实际操练一下.因为安装hbase的前提条件是已经成功安装了hadoop,而且hadoop的版本要和hba ...

  2. 2 jmeter常用功能介绍-测试计划、线程组

    1.测试计划测试用来描述一个性能测试,所有内容都是基于这个测试计划的. (1)User Defined Variables:设置用户全局变量.一般添加一些系统常用的配置.如果测试过程中想切换环境,切换 ...

  3. 字符串转 多行 ,判断给定一组id ,查库中不存在用

    SELECT REGEXP_SUBSTR('17,20,23', '[^,]+', 1, LEVEL, 'i') AS STR     FROM DUAL   CONNECT BY LEVEL < ...

  4. [sh]getopt参数解析

    https://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html sh参数处理方法 * 手工处理方式 * getopts #好像不支持长 ...

  5. (转)EOS中账户、钱包和密钥的关系

    EOS对于账户的设计与ETH有很大的不同,引入了Account账户, Wallet钱包, 钱包密码, Key公私钥, Permission权限等众多概念,刚入门的时候感觉一头雾水.本文希望通过对这些概 ...

  6. UML序列图的理解:

    UML序列图的理解:UML序列图是指一个对象的方法在处理过程中调用其他对象的图:重点是要突出调用其他对象的序列:

  7. .Net拾忆:从List去除重复-拾忆集合

    方法1: private static List<int> DistinctList(List<int> list) {//去除重复 HashSet<int> ha ...

  8. js中两个!!的理解

    在js中经常有两个!!出现,经常让人难以理解 (function () { var a = 10; var b = 20; function add(num1, num2) { var num1 = ...

  9. 文档设计也需要坚持DRY原则--支付中心应用部署结构图完善

    今天上午,我拿着支付中心的设计文档,给入职不久的同事讲解目前支付中心系统的应用部署情况.当时同事嗯嗯地点头反应. 下午呢,发现自己设计的有问题,赶紧给予完善. 代码重构方面讲究DRY编程原则.我们在设 ...

  10. node.js初识11

    1.EJS  Embedded JavaScript templates 模板引擎 .EJS的效率不高,因为他后台是通过字符串来处理的 <ul> <% for(var i = 0 ; ...