DaoFactory.java

package com.jaovo.msg.Util;
import com.jaovo.msg.dao.UserDaoImpl;
public class DaoFactory {
 public static UserDaoImpl getDaoImpl() {
  return new UserDaoImpl();
 }
}
 
DBUtil.java
 
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").newInstance();
  } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  String user = "root";
  String password = "root";
  String url = "jdbc:mysql://localhost:3306/t_user?&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
  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();
  }
 }
 
}
 
UserException.java
 
package com.jaovo.msg.Util;
@SuppressWarnings("serial")
public class UserException extends RuntimeException{
 public UserException() {
  super();
  // TODO Auto-generated constructor stub
 }
 public UserException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
  super(message, cause, enableSuppression, writableStackTrace);
  // TODO Auto-generated constructor stub
 }
 public UserException(String message, Throwable cause) {
  super(message, cause);
  // TODO Auto-generated constructor stub
 }
 public UserException(String message) {
  super(message);
  // TODO Auto-generated constructor stub
 }
 public UserException(Throwable cause) {
  super(cause);
  // TODO Auto-generated constructor stub
 }
 
}
 
ValidateUtil.java
 
package com.jaovo.msg.Util;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
public class ValidateUtil {
 public static  boolean validateNull(HttpServletRequest request,String[] fileds) {
  boolean validate = true;
  //map对象用来装载不同的错误信息
  Map<String,String> errorMsg = new HashMap<String, String>();
  for(String filed :fileds) {
   String value = request.getParameter(filed);
   if (value == null || "".equals(value.trim())) {
    validate = false;
    errorMsg.put(filed, filed+"不能为空");
   }
   if (!validate) {
    request.setAttribute("errormsg", errorMsg);
   }
   
  }
  
  return validate;
 }
 public static String showError(HttpServletRequest request , String filed) {
  @SuppressWarnings("unchecked")
  Map<String, String> errorMsg = (Map<String,String>)request.getAttribute("errormsg");
  if (errorMsg == null) {
   return "";
  }
  String msg = errorMsg.get(filed);
  if (msg == null) {
   return "";
  }
  return msg;
 }
 
}
 
User.java
 
package com.jaovo.msg.model;
public class User {
 
 private int id;
 private String  name;
 private String  time;
 private String  jieci;
 private String  college;
 private String  tid;
 private String  tname;
 private String  number;
 public int getId()
 {
  return id;
 }
 public void setId(int id)
 {
  this.id = id;
 }
 public String getName()
 {
  return name;
 }
 public void setName(String name)
 {
  this.name = name;
 }
 public String getTime()
 {
  return time;
 }
 public void setTime(String time)
 {
  this.time = time;
 }
 public String getJieci()
 {
  return jieci;
 }
 public void setJieci(String jieci)
 {
  this.jieci = jieci;
 }
 public String getCollege()
 {
  return college;
 }
 public void setCollege(String college)
 {
  this.college = college;
 }
 public String getTid()
 {
  return tid;
 }
 public void setTid(String tid)
 {
  this.tid = tid;
 }
 public String getTname()
 {
  return tname;
 }
 public void setTname(String tname)
 {
  this.tname = tname;
 }
 public String getNumber()
 {
  return number;
 }
 public void setNumber(String number)
 {
  this.number = number;
 }
 
}
 
CharFilter.java
package com.jaovo.msg.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharFilter implements Filter{
 String encoding = null;
 @Override
 public void init(FilterConfig filterConfig) throws ServletException{
  encoding = filterConfig.getInitParameter("encoding");
 }
 
 @Override
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
   throws IOException, ServletException {
//   request.setCharacterEncoding("utf-8");
   request.setCharacterEncoding(encoding);
   chain.doFilter(request, response);
 }
 public void destroy() {
  // TODO Auto-generated method stub
  System.out.println();
 }
}
 
IUserDao.java
 
package com.jaovo.msg.dao;
import java.util.List;
import com.jaovo.msg.model.User;
public interface IUserDao {
 public void add(User user);
 public void delete(int id);
 public void update(User user);
 public User load(int id);
 public User load(String name);
 public List<User> load();
 
}
 
UserDaoImpl.java
 
package com.jaovo.msg.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.Util.UserException;
import com.jaovo.msg.model.User;
 
public class UserDaoImpl implements IUserDao {
 //增
 public void add(User user) {
  //获得链接对象
  Connection connection = DBUtil.getConnection();
  //准备sql语句
  String sql = "select count(*) from class where name = ?";
 
  //创建语句传输对象
  PreparedStatement preparedStatement = null;
  ResultSet resultSet = null;
  try {
   preparedStatement = connection.prepareStatement(sql);
   preparedStatement.setString(1, user.getName());
   //接收结果集
   resultSet = preparedStatement.executeQuery();
   //遍历结果集
   while(resultSet.next()) {
    if (resultSet.getInt(1) > 0) {
     throw new UserException("用户已存在") ;
    }
   }
   
   sql = "insert into class(name,time,jieci,college,tid,tname,number) value (?,?,?,?,?,?,?)";
   preparedStatement = connection.prepareStatement(sql);
   //添加
   preparedStatement.setString(1, user.getName());
   preparedStatement.setString(2, user.getTime());
   preparedStatement.setString(3, user.getJieci());
   preparedStatement.setString(4, user.getCollege());
   preparedStatement.setString(5, user.getTid());
   preparedStatement.setString(6, user.getTname());
   preparedStatement.setString(7, user.getNumber());
   preparedStatement.executeUpdate();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   //关闭资源
   DBUtil.close(resultSet);
   DBUtil.close(preparedStatement);
   DBUtil.close(connection);
  }
  
 }
 //删
 public void delete(int id) {
  //获得链接对象
  Connection connection = DBUtil.getConnection();
  String sql = "delete from class where id = ?";
  PreparedStatement preparedStatement = null;
  try {
   preparedStatement = connection.prepareStatement(sql);
   preparedStatement.setInt(1, id);
   preparedStatement.executeUpdate();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   DBUtil.close(preparedStatement);
   DBUtil.close(connection);
  }
  
 }
 //改
 @Override
 public void update(User user) {
  //获得链接对象
  Connection connection = DBUtil.getConnection();
  //准备sql语句
  String sql = "update class set time = ? , jieci=? , college=? , tid=? , tname=? , number=? where id = ?";
  //创建语句传输对象
  PreparedStatement preparedStatement = null;
  try {
   preparedStatement = connection.prepareStatement(sql);
   preparedStatement.setString(1, user.getTime());
   preparedStatement.setString(2, user.getJieci());
   preparedStatement.setString(3, user.getCollege());
   preparedStatement.setString(4, user.getTid());
   preparedStatement.setString(5, user.getTname());
   preparedStatement.setString(6, user.getNumber());
   preparedStatement.setInt(7, user.getId());
   preparedStatement.executeUpdate();
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   DBUtil.close(preparedStatement);
   DBUtil.close(connection);
  }
 }
 @Override
 public User load(int id) {
  //获得链接对象
  Connection connection = DBUtil.getConnection();
  //准备sql语句
  String sql = "select * from class  where id = ?";
  //创建语句传输对象
  PreparedStatement preparedStatement = null;
  ResultSet resultSet = null;
  User user = null;
  try {
   preparedStatement = connection.prepareStatement(sql);
   preparedStatement.setInt(1, id);
   resultSet = preparedStatement.executeQuery();
   while(resultSet.next()) {
    user = new User();
    user.setId(id);
    user.setName(resultSet.getString("name"));
    user.setTime(resultSet.getString("time"));
    user.setJieci(resultSet.getString("jieci"));
    user.setCollege(resultSet.getString("college"));
    user.setTid(resultSet.getString("tid"));
    user.setTname(resultSet.getString("tname"));
    user.setNumber(resultSet.getString("number"));
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   DBUtil.close(resultSet);
   DBUtil.close(preparedStatement);
   DBUtil.close(connection);
  }
  return  user;
 }
 @Override
 public User load(String name) {
  // TODO Auto-generated method stub
  return null;
 }
 @Override
 public List<User> load() {
  Connection connection = DBUtil.getConnection();
  //准备sql语句
  String sql = "select * from class ";
  //创建语句传输对象
  PreparedStatement preparedStatement = null;
  ResultSet resultSet = null;
  //集合中只能放入user对象
  List<User> users = new ArrayList<User>();
  User user = null;
  try {
   preparedStatement = connection.prepareStatement(sql);
   resultSet = preparedStatement.executeQuery();
   while(resultSet.next()) {
    user = new User();
    user.setId(resultSet.getInt("id"));
    user.setName(resultSet.getString("name"));
    user.setTime(resultSet.getString("time"));
    user.setJieci(resultSet.getString("jieci"));
    user.setCollege(resultSet.getString("college"));
    user.setTid(resultSet.getString("tid"));
    user.setTname(resultSet.getString("tname"));
    user.setNumber(resultSet.getString("number"));
    users.add(user);
   }
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally {
   DBUtil.close(resultSet);
   DBUtil.close(preparedStatement);
   DBUtil.close(connection);
  }
  return  users;
 }
}
 
这就是完整的课程管理系统,增删改查

JavaWeb——课程管理系统(2).java---18.11.29的更多相关文章

  1. JavaWeb——课程管理系统(1)jsp界面---18.11.29

    add.jsp <%@page import="com.jaovo.msg.Util.ValidateUtil"%><%@page import="co ...

  2. [18/11/29] 继承(extends)和方法的重写(override,不是重载)

    一.何为继承?(对原有类的扩充) 继承让我们更加容易实现类的扩展. 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可.实现了代码的重用,不用再重新发明轮子(don’t  reinvent  w ...

  3. [18/11/11] java标识符及变量

    一.标识符规范 1.必须以字母.下划线 .美元符号开头. 即数字不能作为开头,其它位随便 2.不可以是java关键字(即保留字),  如static .class.new 等 .    注:int 年 ...

  4. 课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统

    课程设计- 基于ssm的捐赠物资分配管理系统 && 基于java的申请救援管理系统 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 1.开发环境 开发语言:Java 后台框架: ...

  5. JavaWeb 图书管理系统

    查看更多系统:系统大全,课程设计.毕业设计,请点击这里查看 01 系统简述 图书管理系统就是利用计算机,结合互联网对图书进行结构化.自动化管理的一种软件,来提高对图书的管理效率. 02 系统特点 集成 ...

  6. Java SE 11 新增特性

    Java SE 11 新增特性 作者:Grey 原文地址:Java SE 11 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  7. 日本IT行业劳动力缺口达22万 在日中国留学生迎来就业好时机 2017/07/18 11:25:09

    作者:倪亚敏 来源:日本新华侨报 发布时间:2017/07/18 11:25:09     据日本政府提供的数据,日本2018年应届毕业生的“求人倍率”已经达到了1.78倍.换言之,就是100名大学生 ...

  8. 黑盒测试实践--Day5 11.29

    黑盒测试实践--Day5 11.29 今天完成任务情况: 分析系统需求,完成场景用例设计 小组负责测试的同学学习安装自动测试工具--QTP,并在线学习操作 小黄 今天的任务是完成场景测试用例的设计.在 ...

  9. 一键部署Moodle开源课程管理系统

    产品详情 产品介绍Moodle https://moodle.org/ 是一个开源及自由的电子学习软件平台,亦称为课程管理系统.学习管理系统或虚拟学习环境.Moodle 特色异于其他商业线上教学平台, ...

随机推荐

  1. Hyperledger Fabric 1.0 学习搭建 (二)--- 源码及镜像文件处理

    2.1下载Fabric源码下载Fabric源码是因为要用到源码中提到的列子和工具, 工具编译需要用到go语言环境, 因此需要把源码目录放到$GOPATH下. 通过1.3中go的安装配置, $GOPAT ...

  2. PHP5.5的新特性

    看了@轩脉刃 今天出炉的PHP 5.5 新特性.不过没有翻译全,我这里稍微补充下,整理成完整的一篇:) 原文:http://www.php.net/manual/zh/migration55.new- ...

  3. bootstrap table footerFormatter用法 统计列求和 sum、average等

    其实上一篇blog里已经贴了代码,简单解释一下吧: 1.showFooter: true,很重要,设置footer显示: $(cur_table).bootstrapTable({ url: '/et ...

  4. pycharm 设置字体大写和显示代码行号

    打开pycharm,我们看到左边是没有行号显示的. 在工具栏中点击扳手的标志,打开.       找到 Ide-setting  ——>Editor ——>Apperance ——> ...

  5. Yii的事件和行为的区别和应用

    关于 Yii 的事件和行为的描述,可参考 http://www.yiiframework.com/doc/api/1.1/CComponent 事件 事件模型就是设计模式中的“观察者模式”:当对象的状 ...

  6. 自定义的打印语句NSLog在控制台输出不完整的完美解决

    // 打印日志 debug #ifdef DEBUG // 调试状态, 打开LOG功能 #define APPLog( s, ... ) printf("class: <%p %s:( ...

  7. 【洛谷P2022】有趣的数

    有趣的数 题目链接 首先求出1~k中有多少个在k前面的数的个数,若>m,则无解 比如12345,从第一位开始, 1 0~1 共2个 1-0+1 12  10~12共3个    12-10+1 1 ...

  8. 【Git】Git使用小结

    Git与SVN及TFS这类传统的版本管理的区别: 本地机器也会有分支.代码库的概念 SVN常用的做法是每次写一些代码就提交到仓库,但是Git是先提交到本地(commit),然后当本地有个稳定的版本的时 ...

  9. stm32函数库分析

    1.STM32F10x_StdPeriph_Lib_V3.5.0  是库函数的全称 2.libraries里面包含的是函数库.C和.H以及CMSIS部分 3.Project里面包含针对MCU各个模块的 ...

  10. jsp内置对象pageContext如何在Servlet中获取值

    pageContext javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据.常用的方法有getServletCont ...