第一次被要求连接数据库的课堂测试

1.     题目要求

按照图片要求设计添加新课程界面。(0.5分) 在后台数据库中建立相应的表结构存储课程信息。(0.5分) 实现新课程添加的功能。 要求判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中一位。(0.5分) 要求上课地点开头为“一教、二教、三教、基教”中的一种。(0.5分) 实现数据存储功能。(3分)

将课堂练习设计思想,源程序代码、运行结果截图的开发过程,并按照PSP0级的要求记录开发过程中的项目计划日志、时间记录日志、缺陷记录日志。 课堂练习的源代码上传到课堂派截止时间周二11月28日(18:00)之前。 博客发表截止时间周二11月28日(20:00)之前发布。

2.     设计思想

1)     首先做出一个界面,然后新建一个jsp文件用来接收传递过来的信息,做出判断,第三个页面(第三个jsp文件)就是处理判断结果是否合法。

2)     对象类、对象的操作和链接数据库的文件都各自单独放在一个文件夹里。

3.     源程序代码

a)     add.jsp

<%@page import="com.jaovo.msg.dao.ClassDaoImpl"%>

<%@page import="com.jaovo.msg.model.Classes"%>

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

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<%

//接收客户端传递过来的参数

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

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

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

if((!teachername.equals("王建民")&&!teachername.equals("刘立嘉")&&!teachername.equals("刘丹")&&!teachername.equals("王辉")&&!teachername.equals("杨子光"))||(!address.startsWith("三教")&&!address.startsWith("二教")&&!address.startsWith("一教")&&!address.startsWith("基教")))

{

%>

<jsp:forward page="fail.jsp"></jsp:forward>

<%

}

else{

Classes classes = new Classes();

classes.setclassname(classname);

classes.setteachername(teachername);

classes.setaddress(address);

ClassDaoImpl dclass = new ClassDaoImpl();

try{

dclass.add(classes);

}catch(NullPointerException e){

e.printStackTrace();

}

}

%>

</html>

b)        addInput.jsp

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

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>用户添加页面</title>

</head>

<body>

<form action="add.jsp" method="get">

<table align="center" border="1" width="500">

<tr>

<td>课程名称 : </td>

<td>

<input type="text" name="classname" />

</td>

</tr>

<tr>

<td>任课教师:</td>

<td>

<input type="text" name="teachername" />

</td>

</tr>

<tr>

<td>上课地点:</td>

<td>

<input type="text" name="address" />

</td>

</tr>

<tr align="center">

<td colspan="2">

<input type="submit" value="提交" />

</td>

</tr>

</table>

</form>

</body>

</html>

c)     fail.jsp

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

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Insert title here</title>

</head>

<body>

<h2>信息有误!</h2>

</body>

</html>

d)     DBUtil. Class

package com.jaovo.msg.Util;

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.jdbc.Driver");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

String name = "root";

String password = "102012";

String url="jdbc:mysql://localhost:3306/jaovo_class";

Connection connection = null;

try {

//2 创建链接对象connection

connection = DriverManager.getConnection(url,name,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();

}

}

}

e)     Classes.class

package com.jaovo.msg.model;

public class Classes {

private int id;

private String  classname;

private String  teachername;

private String  address;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getclassname() {

return classname;

}

public void setclassname(String classname) {

this.classname = classname;

}

public String getteachername() {

return teachername;

}

public void setteachername(String teachername) {

this.teachername = teachername;

}

public String getaddress() {

return address;

}

public void setaddress(String address) {

this.address = address;

}

}

f)      IClassDao.class

package com.jaovo.msg.dao;

import java.util.List;

import com.jaovo.msg.model.Classes;

public interface IClassDao {

public void add(Classes user);

}

g)     IClassDaoImpl.class

package com.jaovo.msg.dao;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import com.jaovo.msg.Util.DBUtil;

import com.jaovo.msg.model.Classes;

public class ClassDaoImpl implements IClassDao {

public void add(Classes classes) {

//获得链接对象

Connection connection = DBUtil.getConnection();

//准备sql语句

String sql = "insert into t_class(classname,teachername,address) value (?,?,?)";

//创建语句传输对象

PreparedStatement preparedStatement = null;

ResultSet resultSet = null;

try {

preparedStatement = connection.prepareStatement(sql);

preparedStatement.setString(1, classes.getclassname());

preparedStatement.setString(2, classes.getteachername());

preparedStatement.setString(3, classes.getaddress());

preparedStatement.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

//关闭资源

DBUtil.close(preparedStatement);

DBUtil.close(connection);

}

}

}

4.     运行结果截图

5.     项目计划日志

备注:这是一个小课堂测试

本来是早上上课可以完成的一个作业,因为我之前没有好好探究这些问题,导致今天我折腾了一天。

6.     
时间记录日志


日期


开始


结束


中断时间


净时间


活动


备注


 周二


9:15


10:00


0


45min


课堂测试


 


 


10:10


11:50


0


100


接着写课堂测试的作业


 


 


16:00


21:00


30min


270min


同上


吃饭


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 

7.     
缺陷记录日志


日期


编号


类型


引入阶段


排除阶段


修复时间


修复缺陷


11/28


1


思路


设计思路


设计思路


10


分装


 


2


代码实现


代码实现


代码实现


25


语法,书写错误


 


3


调试


调试阶段


调试阶段


25


数据库表设计

时间: 2024-10-11 03:34:26

第一次被要求连接数据库的课堂测试的相关文章

20172301 2017-2018-2 《程序设计与数据结构》第7周课堂测试修改报告

20172326 <程序设计与数据结构>课堂测试修改报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 康皓越 学号: 20172326 实验教师:王志强老师 测试日期:2018年4月11日 必修/选修: 必修 测试内容 命令行参数测试 要求: 从命令行传入 学号.课程的成绩,计算平均成绩,并输出. 例如:输入 java computeAverage 20172301 98 99 100 输出:2017 2301' average score is :99 测试过程 分析

课堂测试1 登录界面

1.网站系统开发需要什么技术 前台photoshop(美工必学的)+dreaweaver(css+div)+javacript,后台php .net  asp 等编程语言,要想做好网站HTML.JAVASCRIPT.CSS.数据库.服务器配置必须要学会. 在网上查了一下,要做好一个网站系统,要学习的技术有很多,简单列举一下: (1)java Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.Servlet.JDBC.JavaBean(Application)四部分技术. (

课堂测试——数据位数、位数输出、各位数上数据求和

2016.10.18Java课堂测试 在课堂上写的时候,写到各位书身上数据输出时.因为处理不好取最高位的步骤所以不能继续进行编程. 经过后期查找之后: 引用import static java.lang.Math.*; 求x的y次方运算,Math.pow(x,y); 求整数部分,Math.floor();//这里运行之后发现是double类型所以又用了强制转换. 将Int转换为Double类型,int number1=(int) number2; 另外的问题就是: 因为数据上存在多次变化使用,所

2017-2018-1 20155336 《信息安全系统设计基础》第八周课堂测试

2017-2018-1 20155336 <信息安全系统设计基础>第八周课堂测试 1.求命令行传入整数参数的和 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成"求命令行传入整数参数的和" 测试代码传入自己的8位学号 上方提交代码 附件提交运行测试截图 解答: 编写代码 #include <stdio.h> void main(int argc,char** argv) { int

20155321 《信息安全系统设计》课堂测试(ch06)

20155321 <信息安全系统设计>课堂测试(ch06) (单选题|1分)下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为() A .1 B .1/4 C .1/2 D. 3/4 解析:P431,填充消除了冲突不命中,因此,四分之三的引用是命中的 正确答案:D (多选题|1分)有关高速缓存的说法正确的是() A .高速缓存的容量可以用C=SEB来计算 B .高速缓存容量为2048,高速缓存结构为(32,8,8,32) C .直接映射高速缓存要:组选择.行匹配.字抽

第四周课堂测试汇编2完善

第四周汇编2课堂测试画的图抽象且不完整,这里做一下补充. (1)源代码: int g(int x){ return x+3; } int f(int x){ int i=2: return g(x)+i; } int main(void){ return f(8)+1; } (2)汇编代码: g: pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax addl $3, %eax popl %ebp ret f: pushl %ebp movl %esp, %

2017-2018-1 20155232 《信息安全系统设计基础》第十周课堂测试(ch06)补交

# 2017-2018-1 20155232 <信息安全系统设计基础>第十周课堂测试(ch06)补交 上课时完成测试后在提交的时候,没有提交成功,进行补交. 1.下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为() A 1 B 1/4 C 1/2 D 3/4 正确答案: D 解析:p431----缓存命中:当程序需要第(k+1)层的数据对象d的时候,首先会在第k层找d:如果d刚好缓存在第k层,那么就叫做缓存命中:反之,不命中,在填充了之后,对于x和y数组,只有在引用

20162307 课堂测试 hash

20162307 课堂测试 hash 作业要求 利用除留余数法为下列关键字集合的存储设计hash函数,并画出分别用开放寻址法和拉链法解决冲突得到的空间存储状态(散列因子取0.75) 关键字集合:85,75,57,60,65,(你的8位学号相加值),98,74,89,12,5,46,97,13,69,52,92 实验知识点 开放寻址法 基本思想 在散列表中形成一个探查序列,沿此序列逐单元进行查找,直到找到一个空的单元时将新结点放入. 拉链法 基本思想 将所有关键字为同义词的结点链接到同一个单链表中

2017-2018-1 20155330 《信息安全系统设计基础》课堂测试&amp;课下作业

2017-2018-1 20155330 <信息安全系统设计基础>课堂测试&课下作业 stat命令的实现-mysate 学习使用stat(1),并用C语言实现 提交学习stat(1)的截图 man -k ,grep -r的使用 伪代码 产品代码 mystate.c,提交码云链接 测试代码,mystat 与stat(1)对比,提交截图 STAT(1)学习 使用man 1 stat命令查看 使用man -k stat | grep 2查找相关函数 man 2 stat查看stat函数 产品