项目审核系统 ---(连接数据库---项目模拟)

本章主要是查询方法和修改方法

  1. 编写查询方法,查询所有项目审核信息并返回查询结果,需实现分页功能,注意必要的异常处理。
  2. 编写查询方法,根据项目编号查询指定项目的审核信息,注意必要的异常处理。
  3. 编写修改方法,修改指定项目的审核状态信息,注意必要的异常处理。

Mysql数据库

  •  project ----表内容

  • project ----设计表

  • entry 包 --- Projectinfo类

属性----必须与数据库里面,我们所调用的表一一对应!!!!

package projectinfo.entry;public class Projectinfo {/*** 项目编号* 项目名称* 项目开始日期* 项目结束日期* 项目申报状态  0--已申报; 1--审核中; 2--已审核*/private Integer pId;private String pName;private String startDate;private String endDate;private Integer status;public Projectinfo() {}public Projectinfo(Integer pId, String pName, String startDate, String endDate, Integer status) {this.pId = pId;this.pName = pName;this.startDate = startDate;this.endDate = endDate;this.status = status;}public Integer getpId() {return pId;}public void setpId(Integer pId) {this.pId = pId;}public String getpName() {return pName;}public void setpName(String pName) {this.pName = pName;}public String getStartDate() {return startDate;}public void setStartDate(String startDate) {this.startDate = startDate;}public String getEndDate() {return endDate;}public void setEndDate(String endDate) {this.endDate = endDate;}public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}@Overridepublic String toString() {return "Projectinfo{" +"pId=" + pId +", pName='" + pName + '\'' +", startDate='" + startDate + '\'' +", endDate='" + endDate + '\'' +", status=" + status +'}';}
}
  • util 包 --- DBhelper类

主要是提取出来的通用方法。

          加载数据库驱动类,获得连接对象

          关闭资源

          增删改  

          查询

package projectinfo.util;import java.lang.reflect.Field;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;public class DBHelper {//提取1+2,获得连接对象public Connection getcon() {Connection con = null;try {Class.forName("com.mysql.cj.jdbc.Driver");String url = "jdbc:mysql://127.0.0.1:3306/project?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";//localhost也可以写成-----127.0.0.1String username = "root";String password = "root";//密码con = DriverManager.getConnection(url, username, password);} catch (ClassNotFoundException | SQLException e) {e.printStackTrace();}return con;}//关闭连接资源(提取第7步)public void closeAll(Connection con, PreparedStatement ps, ResultSet rs) {try {if (con != null) {con.close();}if (ps != null) {ps.close();}if (rs != null) {rs.close();}} catch (SQLException e) {e.printStackTrace();}}//通用的增删改方法:1-7在这里做汇总public int update(String sql, Object... arrs) {//4-5改Connection con = getcon();//1-2PreparedStatement ps = null;int count = 0;try {ps = con.prepareStatement(sql);//4  public int update(String sql,Object...arrs){for (int i = 0; i < arrs.length; i++) {//判断有几个问ps.setObject((i + 1), arrs[i]);//给第几个?赋值}count = ps.executeUpdate();//5} catch (SQLException e) {e.printStackTrace();}closeAll(con, ps, null);//7return count;}//通用的查询方法方法----查询所有表!!!public List query(String sql, Class cla, Object... arrs) {List list = new ArrayList<>();Connection con = getcon();//1-2  获得连接对象PreparedStatement ps = null;ResultSet rs = null;try {ps = con.prepareStatement(sql);//4.获得执行对象for (int i = 0; i < arrs.length; i++) {ps.setObject((i + 1), arrs[i]);}rs = ps.executeQuery();//5.//将rs里的数据存到list集合里去 ---反射while (rs.next()) {Object obj = cla.newInstance(); //实例化对象Field[] fs = cla.getDeclaredFields();//获得属性for (Field f : fs) {//赋值f.setAccessible(true);//允许暴力访问f.set(obj, rs.getObject(f.getName()));}list.add(obj);}} catch (SQLException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} finally {closeAll(con, ps, rs);}return list;}}
  • dao 包 --- ProjectinfoDao接口

package projectinfo.dao;import projectinfo.entry.Projectinfo;import java.util.List;public interface ProjectinfoDao {/*** 查询方法* 查询所有项目审核信息并返回审核结果** @return*/List<Projectinfo> selectAll();/*** 查询方法* 根据项目编号查询指定项目的审核信息,注意必要的异常处理** @param pId* @return*/Projectinfo selectByPId(Integer pId);/*** 修改方法* 修改指定项目的审核状态信息,注意必要的异常处理** @param projectinfo* @return*/int updateStatus(Projectinfo projectinfo);}
  • dao包 --- impl 包 --- ProjectinfoDaoImpl类

package projectinfo.dao.impl;import projectinfo.dao.ProjectinfoDao;
import projectinfo.entry.Projectinfo;
import projectinfo.util.DBHelper;import java.util.List;public class ProjectinfoDaoImpl implements ProjectinfoDao {private DBHelper db = new DBHelper();/*** 查询方法* 查询所有项目审核信息并返回审核结果** @return*/@Overridepublic List<Projectinfo> selectAll() {String sql = "select * from projectinfo";return db.query(sql, Projectinfo.class);}/*** 查询方法* 根据项目编号查询指定项目的审核信息,注意必要的异常处理** @param pId* @return*/@Overridepublic Projectinfo selectByPId(Integer pId) {String sql = "select * from projectinfo where pId=?";List<Projectinfo> list = db.query(sql, Projectinfo.class, pId);return list.size() > 0 ? list.get(0) : new Projectinfo();}/*** 修改方法* 修改指定项目的审核状态信息,注意必要的异常处理** @param projectinfo* @return*/@Overridepublic int updateStatus(Projectinfo projectinfo) {String sql = "update projectinfo set status=? where pId=?";Object[] obj = {projectinfo.getStatus(), projectinfo.getpId()};return db.update(sql, obj);}
}
  • service 包 --- ProjectinfoService接口

package projectinfo.service;import projectinfo.entry.Projectinfo;import java.util.List;public interface ProjectinfoService {/*** 查询方法* 查询所有项目审核信息并返回审核结果** @return*/List<Projectinfo> findAll();/*** 查询方法* 根据项目编号查询指定项目的审核信息,注意必要的异常处理** @param pId* @return*/Projectinfo findByPId(Integer pId);/*** 修改方法* 修改指定项目的审核状态信息,注意必要的异常处理** @param projectinfo* @return*/boolean modifyStatus(Projectinfo projectinfo);}
  • service 包 --- impl 包 --- ProjectinfoServiceImpl类

package projectinfo.service.impl;import projectinfo.dao.ProjectinfoDao;
import projectinfo.dao.impl.ProjectinfoDaoImpl;
import projectinfo.entry.Projectinfo;
import projectinfo.service.ProjectinfoService;import java.util.List;public class ProjectinfoServiceImpl implements ProjectinfoService {private ProjectinfoDao proDao = new ProjectinfoDaoImpl();/*** 查询方法* 查询所有项目审核信息并返回审核结果** @return*/@Overridepublic List<Projectinfo> findAll() {return proDao.selectAll();}/*** 查询方法* 根据项目编号查询指定项目的审核信息,注意必要的异常处理** @param pId* @return*/@Overridepublic Projectinfo findByPId(Integer pId) {return proDao.selectByPId(pId);}/*** 修改方法* 修改指定项目的审核状态信息,注意必要的异常处理** @param projectinfo* @return*/@Overridepublic boolean modifyStatus(Projectinfo projectinfo) {return proDao.updateStatus(projectinfo) >= 0;}
}
  • controller 包 --- ProjectinfoCotroller类

package projectinfo.cotroller;import com.sun.xml.internal.ws.api.ha.StickyFeature;
import projectinfo.entry.Projectinfo;
import projectinfo.service.ProjectinfoService;
import projectinfo.service.impl.ProjectinfoServiceImpl;import java.util.List;
import java.util.Scanner;public class ProjectinfoCotroller {private ProjectinfoService proService = new ProjectinfoServiceImpl();private Scanner input = new Scanner(System.in);/*** 主菜单*/public void mainMenu() {System.out.println("********************************************************************************");System.out.println("************************************项目审核系统**********************************");System.out.println("********************************************************************************");System.out.println("1---全部项目");System.out.println("2---搜索项目");System.out.println("3---修改项目状态");System.out.println("4---退出");System.out.println("********************************************************************************");System.out.println("请选择:");int index = input.nextInt();switch (index) {case 1:System.out.println("<----全部项目---->");methodSelectAll();break;case 2:System.out.println("<----搜索项目---->");methodSelectByPId();break;case 3:System.out.println("<----修改项目状态---->");methodUpdate();break;case 4:System.out.println("谢谢使用!");System.exit(0);}/* System.out.println("********************************************************************************");System.out.println("输入0返回:");int num = input.nextInt();if (num == 0) {mainMenu();}*/}/*** 查询方法* 查询所有项目审核信息*/public void methodSelectAll() {try {List<Projectinfo> list = proService.findAll();System.out.println("********************************************************************************");System.out.println("项目编号 \t\t\t项目名称 \t\t\t项目开始日期 \t\t\t项目结束日期 \t\t\t项目申报状态");if (list.isEmpty()) {System.out.println("没有项目数据");} else {for (Projectinfo p : list) {String status = getStatys(p.getStatus());System.out.println(p.getpId() + "\t\t" +p.getpName() + "\t\t" +p.getStartDate() + "\t\t" +p.getEndDate() + "\t\t" +status);}}} catch (Exception e) {throw new RuntimeException(e);}System.out.println("********************************************************************************");System.out.println("1---搜索项目");System.out.println("2---修改项目状态");System.out.println("3---退出");System.out.println("请选择:");int index = input.nextInt();switch (index) {case 1:System.out.println("<----搜索项目---->");methodSelectByPId();break;case 2:System.out.println("<----修改项目状态---->");methodUpdate();break;case 3:System.out.println("谢谢使用!");System.exit(0);}}/*** status判断  0--已申报   1--审核中  2--已审核*/public String getStatys(int status) {switch (status) {case 0:return "已申报";case 1:return "审核中";case 2:return "已审核";default:return "未知状态";}}/*** 查询方法* 根据项目编号查询指定项目的审核信息,注意必要的异常处理*/public void methodSelectByPId() {System.out.println("********************************************************************************");System.out.println("请输入要查询的项目的编号(pId):");try {int pId = input.nextInt();Projectinfo p = proService.findByPId(pId);if (p != null) {System.out.println("项目编号 \t\t\t项目名称 \t\t\t项目开始日期 \t\t\t项目结束日期 \t\t\t项目申报状态");String status = getStatys(p.getStatus());System.out.println(p.getpId() + "\t\t" +p.getpName() + "\t\t" +p.getStartDate() + "\t\t" +p.getEndDate() + "\t\t" +status);}} catch (Exception e) {throw new RuntimeException(e);}System.out.println("********************************************************************************");System.out.println("1---全部项目");System.out.println("2---修改项目状态");System.out.println("3---退出");System.out.println("********************************************************************************");System.out.println("请选择:");int index = input.nextInt();switch (index) {case 1:System.out.println("<----全部项目---->");methodSelectAll();break;case 2:System.out.println("<----修改项目状态---->");methodUpdate();break;case 3:System.out.println("谢谢使用!");System.exit(0);}}/*** 修改方法* 修改指定项目的审核状态信息*/public void methodUpdate() {System.out.println("********************************************************************************");System.out.println("请输入要修改申报状态的项目编号:");int pId = input.nextInt();Projectinfo p = proService.findByPId(pId);if (p != null) {String status = getStatys(p.getStatus());System.out.println("当前项目的项目申报状态为" + "\t\t" + status);boolean b = proService.modifyStatus(p);System.out.println("请输入修改后该项目的申报状态(已申报//已审核//审核中):");String statusStr = input.next();int status1 = getStatus1(statusStr);if (status1 != -1) {if (status1 == p.getStatus()) {System.out.println("申报状态与原来一一致,不需要更改!即将回到主页面");System.out.println("================================================================================");mainMenu();} else {p.setStatus(status1);proService.modifyStatus(p);System.out.println("该项目申报状态已成功修改为" + "\t\t" + statusStr);System.out.println("即将回到主页面");System.out.println("================================================================================");mainMenu();}} else {System.out.println("输入错误,请重新操作");System.out.println("即将回到主页面");System.out.println("================================================================================");mainMenu();}}}/*** status1判断  0--已申报   1--审核中  2--已审核*/public int getStatus1(String status1) {switch (status1) {case "已申报":return 0;case "审核中":return 1;case "已审核":return 2;default:return -1;}}}
  • test 包 --- ProMain类

package projectinfo.test;import projectinfo.cotroller.ProjectinfoCotroller;public class ProMain {public static void main(String[] args) {ProjectinfoCotroller projectinfoCotroller = new ProjectinfoCotroller();projectinfoCotroller.mainMenu();}
}

  • 结果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4028.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第524题通过删除字母匹配到字典里最长单词

题目&#xff1a; 题解&#xff1a; char * findLongestWord(char * s, char ** d, int dSize){char *result "";int max -1;for (int i 0; i < dSize; i) {char *p s, *q d[i];int j 0, k 0;while (p[j] ! \0 && q[k] ! \0) {if (p[j] q[k]) {k…

Git详细使用

本地项目托管到码云中教程 1. 使用git init 命令&#xff0c;git init命令用于在目录中创建新的 Git 仓库。 在目录中执行git init就可以创建一个 Git 仓库了。 2. 使用git status命令查看未提交的文件 3. 使用git add . 命令将所有文件添加到暂存区 4. 使用git commit -m &qu…

开源办公软件 ONLYOFFICE 深入探索

文章目录 引言1. ONLYOFFICE 创建的背景1. 1 ONLYOFFICE 项目启动1. 2 ONLYOFFICE 的发展历程 2. 核心功能介绍2. 1 桌面编辑器2. 1. 1 文档2. 1. 2 表格2. 1. 3 幻灯片 2. 2 协作空间2. 3 文档编辑器 - 本地部署版 3. 技术介绍4. 安装5. 优势与挑战6. 个人体验7. 强大但不止于…

Day95 Docker

Docker的使用 1、Docker是什么 docker是一个用来管理镜像的容器 容器(container)&#xff1a;可以装东西 镜像( image )&#xff1a;所谓的镜像&#xff0c;你可以认为就是一个虚拟机 虚拟机&#xff1a;用软件代理硬件来模拟整个计算机的这样一套软件就成为 虚拟机 镜像说白了…

WPF中如何简单的使用CommunityToolkit.Mvvm创建一个项目并进行 增删改查

目录 开始前准备的数据库dbblog如下&#xff1a; 第一步&#xff1a;创建项目后下载四个NuGet程序包 第二步&#xff1a;删除原本的MainWindow.XAML文件 并创建如下的目录结构 然后在View文件夹下面创建Login.XAML和Main.XAML 并且在App.XAML中将启动项改为Login.XA…

多模态PaliGemma——Google推出的基于SigLIP和Gemma的视觉语言模型

前言 本文怎么来的呢&#xff1f;其实很简单&#xff0c;源于上一篇文章《π0——用于通用机器人控制的流匹配VLA模型&#xff1a;一套框架控制7种机械臂(改造了PaliGemma和ACT的3B模型)》中的π0用到了PaliGemma 故本文便来解读下这个PaliGemma 第一部分 PaliGemma 1.1 Pal…

微服务day03

导入黑马商城项目 创建Mysql服务 由于已有相关项目则要关闭DockerComponent中的已开启的项目 [rootserver02 ~]# docker compose down WARN[0000] /root/docker-compose.yml: version is obsolete [] Running 4/4✔ Container nginx Removed …

IAPP仿源码大师主界面UI

仿源码大师首页主界面的布局 首页&#xff0c;分类&#xff0c;需求&#xff0c;我的 就只有这几个界面内容而已 资源静态 没有任何动画和功能 纯UI布局 纯UI布局 https://pan.baidu.com/s/1Hc5nWQCZ_ckQlXXV82OYpA?pwd7826 https://caiyun.139.com/m/i?2i2MoYbkdze41 来源…

mmpretrainmmdetection环境配置

mmpretrain&mmdetection环境配置 适用于cuda11.3torch12.1的mmpretrain&mmdetection环境配置&#xff1a; 第一步&#xff1a;根据官网说明&#xff0c;找到对应cuda版本的torch&#xff0c;安装好torch&#xff1a; pip install torch1.12.1cu113 torchvision0.13.…

【数据湖及大数据方案】数据湖建设方案|数据源|数据流|元数据|数据仓库|指标池|数据清洗

建设大数据湖一体化平台旨在应对数据分散、管理混乱及利用低效等挑战。通过集中存储与管理跨平台数据&#xff0c;打破信息孤岛&#xff0c;实现数据资产的高效整合与利用。该平台强化数据标准、质量控制、开发运维及安全保障&#xff0c;提升数据治理成熟度。此外&#xff0c;…

搭建企业私有云 只需一台设备 融合计算、存储与K8s

Infortrend老牌存储厂商推出 KS 企业私有云产品&#xff0c;将计算节点、存储与Kubernetes整合在一套系统中&#xff0c;为企业提供高效稳定的专属本地私有云平台。 KS 同时内置 Kubernetes 平台和虚拟机管理程序&#xff0c;既能运行云原生容器化应用程序&#xff0c;例如大数…

[Redis] Redis主从复制模式

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

计算机毕业设计Hadoop+PySpark深度学习游戏推荐系统 游戏可视化 游戏数据分析 游戏爬虫 Scrapy 机器学习 人工智能 大数据毕设

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

iOS SmartCodable 替换 HandyJSON 适配记录

前言 HandyJSON群里说建议不要再使用HandyJSON&#xff0c;我最终选择了SmartCodable 来替换&#xff0c;原因如下&#xff1a; 首先按照 SmartCodable 官方教程替换 大概要替换的内容如图&#xff1a; 详细的替换教程请前往&#xff1a;使用SmartCodable 平替 HandyJSON …

16、论文阅读:Mamba YOLO:用于目标检测的基于 SSM 的 YOLO

Mamba YOLO: SSMs-Based YOLO For Object Detection 总结前言感受野为什么Transformer 的结构被引入&#xff0c;显著扩展了模型的感受野&#xff1f;状态空间模型SSM 介绍相关工作实时目标检测端到端目标检测器视觉状态空间模型 方法预处理整体架构ODSS BlockLocalSpatial Blo…

微信小程序 uniapp+vue老年人身体监测系统 acyux

文章目录 项目介绍具体实现截图技术介绍mvc设计模式小程序框架以及目录结构介绍错误处理和异常处理java类核心代码部分展示详细视频演示源码获取 项目介绍 过此方式促进老年人辅助程序信息流动和数据传输效率&#xff0c;提供一个内容丰富、功能多样、易于操作的老年人辅助程序…

Intellij IDE报错:[Information:java:javacTask:源发行版8需要目标发行版1.8]

Intellij IDE报错:[Information:java:javacTask:源发行版8需要目标发行版1.8] 处理方法 File->Settings->Build,execution,Deployment->Compiler->Java Compiler 进入该目录下&#xff0c;修改Per-module bytecode version&#xff0c;将该项目修改为8 合理的创…

Pr 沉浸式视频 - 自动 VR 属性

自动 VR 属性 Auto VR Properties是所有 VR 视频效果和视频过渡效果的通用选项。 默认勾选。此选项使效果自动适应 VR 素材的属性&#xff0c;确保在 360 全景环境中无缝显示。 当处理 VR/360 素材时&#xff0c;保持勾选以避免接缝。 当处理非 VR 素材或需要手动设置 VR 属性时…

[项目] C++基于多设计模式下的同步异步日志系统

[项目] C基于多设计模式下的同步&异步日志系统 文章目录 [项目] C基于多设计模式下的同步&异步日志系统日志系统1、项目介绍2、开发环境3、核心技术4、日志系统介绍4.1 日志系统的价值4.2 日志系统技术实现4.2.1 同步写日志4.2.2 异步写日志 5、相关技术知识5.1 不定参…

ubuntu下使用pocketsphinx进行语音识别

文章目录 前言一、pocketsphinx的介绍二、ubuntu下编译三、使用示例1.模型选择2.代码示例3.自定义字典 四、交叉编译总结 前言 由于工作需要语音识别的功能&#xff0c;环境是在linux arm版上&#xff0c;所以想先在ubuntu上跑起来看一看&#xff0c;就找了一下语音识别的开源…