1,程序设计思想

(1)设计三个类,分别是工具类(用来写连接数据库的方法和异常类的方法)、信息类(用来写存储信息的方法)、实现类(用来写各种操作数据库的方法)

(2)定义两个jsp文件,一个用来写入数据,另一个用来读取数据

(3)先在一个jsp文件中写入数据,然后另一个jsp用来读取数据,同时做出判断,判断读取的信息与数据库的信息是否相同或是数据库中没有该数据,将判断后的信息显示出来

2,源程序代码

(1)工具类

package Util;
import java.sql.*;
public class DBUtil { public static Connection getConnection() {
try {
//1 加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String user1 = "sa";
String password = "123456";
String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=user";
Connection connection = null;
try {
//2 创建链接对象connection
connection = DriverManager.getConnection(url,user1,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();
}
} }

(2)信息类

package model;

public class User {
String className;
String teacher;
String place;
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public String getPlace() {
return place;
}
public void setPlace(String place) {
this.place = place;
} }

(3)实现类

package dao;

import java.sql.*;

import Util.DBUtil;
import model.User; public class UserDaoImpl { public void add(User equ) {
Connection connection = DBUtil.getConnection();
try {
String sql="insert into teacher(className,teacher,place)values('"+equ.getClassName()+"','"+equ.getTeacher()+"','"+equ.getPlace()+"')";
Statement stmt=connection.createStatement();
stmt.executeUpdate(sql);//更新
} catch (SQLException e) {
e.printStackTrace();
}finally {
DBUtil.close(connection);
} }
public User load(String className) { Connection connection = DBUtil.getConnection();
//准备sql语句
String sql = "select * from teacher where className = ?";
//创建语句传输对象
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
User user = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, className);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
user = new User();
user.setClassName(className);
user.setTeacher(resultSet.getString("teacher"));
user.setPlace(resultSet.getString("place"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.close(connection);
}
return user;
}
}

(4)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>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>登录界面</title>
</head>
<body background="D:\图片\动漫\20150422H2607_fKHLB.jpeg">
<%if(request.getAttribute("error1")!=null){
out.print("<script language='javaScript'>alert('该信息已经存在'); </script>)");
}
%>
<%if(request.getAttribute("error2")!=null){
out.print("<script language='javaScript'>alert('请正确输入完整信息'); </script>)");
}
%>
<%if(request.getAttribute("成功")!=null){
out.print("<script language='javaScript'> alert('保存成功'); </script>)");
}
%>
<%if(request.getAttribute("error3")!=null){
out.print("<script language='javaScript'> alert('教室输入错误'); </script>)");
}
%>
<%if(request.getAttribute("error4")!=null){
out.print("<script language='javaScript'> alert('老师输入错误'); </script>)");
}
%>
<form action="add.jsp" method="get">
<table align="center" border="4" width="400">
<h4 align="center">登录界面</h4>
<tr>
<td>课程名称: </td>
<td>
<input type="text" name="className" />
</td>
</tr>
<tr>
<td>任课老师: </td>
<td>
<input type="text" name="teacher" />
</td>
</tr>
<tr>
<td>上课地点:</td>
<td>
<input type="text" name="place" />
</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="保存" /> </td>
</tr>
</table>
</form>
</body>
</html>

(5)jsp文件 读取数据

<%@page import="dao.UserDaoImpl"%>
<%@page import="model.User"%>
<%@ 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>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String className = request.getParameter("className");
String place = request.getParameter("place");
String teacher=request.getParameter("teacher"); User user = new User();
UserDaoImpl userDao = new UserDaoImpl(); user.setClassName(className);
user.setTeacher(teacher);
user.setPlace(place); if(userDao.load(className)!=null||userDao.load(place)!=null||userDao.load(teacher)!=null){
request.setAttribute("error1", "该信息已经存在");
%>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}
%> <%
if("".equals(teacher.trim())||"".equals(className.trim())||"".equals(place.trim())){
request.setAttribute("error2", "请正确输入完整信息"); %>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}
%> <%
if(userDao.load(className)==null&&((teacher).equals("王建民")||(teacher).equals("刘丹")||(teacher).equals("刘立嘉")||(teacher).equals("王辉")||(teacher).equals("杨子光")&&(((place).substring(0,2)).equals("基教")))){
{
userDao.add(user);
request.setAttribute("成功", "保存成功");
}
%>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}
if(userDao.load(className)==null&&(!place.startsWith("基教"))&&(!place.startsWith("一教"))&&(!place.startsWith("二教")&&(!place.startsWith("三教")))){
request.setAttribute("error3", "教室输入错误");
%>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}else{
request.setAttribute("error4","老师输入错误"); %>
<jsp:forward page="addInput.jsp"></jsp:forward>
<%
}
%>
</body>
</html>

3,运行结果截图

如果不输入信息

若输入已存在的信息

若输入错误教室信息

多输入错误的老师信息

4,开发过程的日志

项目计划日志

时间

任务

课堂测试

课下编写程序

阅读书籍

半天总计

上午

50分钟

50分钟

下午

3个小时

20分钟

3小时20分钟

时间记录日志

时间段

开始

结束

中断时间

净时

活动

备注

C

U

上午

9:00

9:50

0

50分钟

编程序

课堂测试

下午

12:30

4:30

1个小时

3个小时

编程序

作业

 

缺陷记录日志

日期

编号

类型

引入阶段

排除阶段

修复时间

修复缺陷

11/28

1

粗心

运行

编译

2分钟

描述:无法将数据传进数据库,表单名写错

2

功能不完善

运行

编译

2小时

描述:判断数据库与输入的数据的匹配,String类型的数据的截取方法 如substring(a,b) startsWith(“”)

3

界面不美观

运行

编译

30分钟

描述:在jsp中利用alert弹出信息

javaweb实现教师和教室管理系统 java jsp sqlserver的更多相关文章

  1. 四则运算1 java+jsp+SQLServer

    1,设计思想(1)在java resourse里定义包和类 (2)在类里定义生成算式,并将算式保存在数据库中的方法 (3)在jsp文件中调用java方法 2,源程序代码 生成算式的方法 public ...

  2. java+jsp+sqlserver实现简单的增删改查操作 连接数据库代码

    1,网站系统开发需要掌握的技术 (1)网页设计语言,html语言css语言等 (2)Java语言 (3)数据库 (4)等 2,源程序代码 (1) 连接数据库代码 package com.jaovo.m ...

  3. Atitit  java jsp 新的tag技术

    Atitit  java jsp 新的tag技术 1.1.  Tag Files  vs 原生写 SimpleTag 比较麻烦的 JSP 1.x 允许 Web 开发人员创建 Java 组件(称为标记处 ...

  4. [转]应聘Java,jsp,j2ee软件工程师笔试中可能出现的问题

    相信大家应聘的时候第一关就是笔试,即使是一位很有经验的工程师也不一定能够顺利通过,笔试不好,可能就无法进行面试,即使能够进行面试,考官对你的印象也不会很好,问的问题也会很多,估计很难吃的消,当然如果你 ...

  5. 《图书管理系统——java》

    /* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名:    < ...

  6. Java/JSP程序连接不上Mysql驱动问题解决方法

    错误提示: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat java.net.URLClassLoader$1.run(URLCla ...

  7. Java/JSP获得客户端网卡MAC地址的三种方法解析

    java/jsp获得客户端(IE)网卡MAC地址的方法大概有三种. 1.通过命令方式,在客户端执行Ipconfig 等等.(java/jsp) 2.通过ActiveX的方法.(jsp) 3.通过向13 ...

  8. .NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Ruby/Shell/Agile/CSS/HTML/HTTP/Unix/Linux大量PDF书籍/电子书籍下载, Effective Java 下载

    223本电子书籍,囊括了.NET/ASP.NET/C#/WCF/SQL Server/My SQL/Java/JSP/JDBC/Spring/Spring MVC/PHP/Python/Shell/A ...

  9. java:jsp: 一个简单的自定义标签 tld

    java:jsp: 一个简单的自定义标签 tld 请注意,uri都是:http://www.tag.com/mytag,保持统一,要不然报错,不能访问 tld文件 <?xml version=& ...

随机推荐

  1. python之类与对象的属性

    类相关的知识 在python2中的区分: 经典类: class School: pass 新式类: class School(object): pass 在python3中以上两种均为新式类 属性: ...

  2. 通过页面预加载(preload)提升小程序的响应速度

    GitHub: https://github.com/WozHuang/mp-extend 主要目标 如果小程序在打开新页面时需要通过网络请求从接口中获取所用的数据,在请求完成之前页面都会因为没有数据 ...

  3. 1、使用Python3爬取美女图片-网站中的每日更新一栏

    此代码是根据网络上其他人的代码优化而成的, 环境准备: pip install lxml pip install bs4 pip install urllib #!/usr/bin/env pytho ...

  4. Java并发和多线程1:并发框架基本示例

    Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括ThreadPool,Executor,Executors,ExecutorService,Com ...

  5. IT同行请教我如何培养读书习惯,结果就是“读了1本书,并写下'读《成交》有感'一文”

    前段时间,我把CSDN博客的签名加上了"读过100+本经典书籍". 一个经常关注我CSDN博客的老乡,问我是如何做到的. 该老乡,准确来说是前辈,该前辈买了很多技术读物却没有耐心读 ...

  6. STM32CubeMx的使用分享

    1. 新建立工程(以F103ZET6为例) 2. 配置引脚(以PA0为例)   3. 配置外设(以串口为例) 4. 配置时钟 5. 外设.GPIO.中断初始化 6. 生成工程 7. 添加自己的代码 8 ...

  7. webpack的热更新

    webpack的热更新是如何做到的?说明其原理? webpack的热更新又称热替换(Hot Module Replacement),缩写为HMR. 这个机制可以做到不用刷新浏览器而将新变更的模块替换掉 ...

  8. 创业笔记-Node.js入门之阻塞与非阻塞

    阻塞与非阻塞 正如此前所提到的,当在请求处理程序中包括非阻塞操作时就会出问题.但是,在说这之前,我们先来看看什么是阻塞操作. 我不想去解释“阻塞”和“非阻塞”的具体含义,我们直接来看,当在请求处理程序 ...

  9. call to OpenGL ES API with no current context 和Fatal signal 11

    近日在用cocos2dx3.4的时候使用了JNI调用,发现一个现象 当不使用jni的时候全然正常.使用了jni后回去的全部文字都变成黑块,而且有概率程序崩溃.附带出了两个log call to Ope ...

  10. pat(A) 1066. Root of AVL Tree

    代码: #include<iostream> #include<cstdio> #include<cmath> #include<stdlib.h> # ...