当前位置:   article > 正文

挂号就医|基于JavaWeb实现挂号就医信息管理系统_jawa web 的就医管理系统的设计与实现

jawa web 的就医管理系统的设计与实现

作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助

收藏点赞不迷路  关注作者有好处

文末获取源码 

项目编号:BS-YL-025

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术:Javaweb开发技术

二,项目简介

本文基于Javaweb开发技术实现医院就医挂号管理平台。系统设计用户角色有三类:用户、医生、管理员。用户在前端注册登录后可以实现在线查看医院信息、科室信息、医生信息、公告新闻信息、在线留言、在线挂号等操作,在个人中心处可以管理自己的挂号信息以及医院发送的就医提醒信息。医生登录系统后可以查看自己的排班信息,预约自己的挂号信息和就医提醒信息,查看相关药品信息等,并可以管理个人的基本信息。管理员登录系统后可以管理人员信息、医院信息、科室信息、排班信息、挂号信息、留言信息、管理药品信息等等相关业务模块,发布在线公告和行业资讯,进行系统数据管理等。具体见下面展示。

三,系统展示

系统前端展示

科室信息

医生信息

预约挂号

公告资讯

医院信息

个人中心

医生登录系统

查个个人排班信息

查看预约信息

医药信息查询

管理员登录系统

其它不在一一展示

四,核心代码展示

  1. package dao;
  2. import com.jntoo.db.utils.StringUtil;
  3. import java.sql.*;
  4. import java.util.*;
  5. import javax.servlet.http.HttpServletRequest;
  6. import util.Info;
  7. /**
  8. * 数据库连接类
  9. */
  10. public class CommDAO {
  11. // 数据库名称
  12. public static final String database = "jspm12836sytyyghxt";
  13. // 数据库账号
  14. public static final String username = "root";
  15. // 数据库密码
  16. public static final String pwd = "root";
  17. // 是否为 mysql8.0及以上、如果是则把 false 改成 true
  18. public static final boolean isMysql8 = false; // 是否为mysql8
  19. public static Connection conn = null;
  20. /**
  21. * 创建类时即连接数据库
  22. */
  23. public CommDAO() {
  24. conn = this.getConn();
  25. }
  26. /**
  27. * 数据库链接类
  28. * @return
  29. */
  30. public static Connection getConn() {
  31. try {
  32. if (conn == null || conn.isClosed()) {
  33. String connstr = getConnectString();
  34. conn = DriverManager.getConnection(connstr, username, pwd);
  35. }
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. }
  39. return conn;
  40. }
  41. public static String getConnectString() {
  42. try {
  43. String connstr;
  44. if (!isMysql8) {
  45. Class.forName("com.mysql.jdbc.Driver");
  46. connstr = String.format("jdbc:mysql://localhost:3306/%s?useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true", database);
  47. } else {
  48. Class.forName("com.mysql.cj.jdbc.Driver");
  49. connstr =
  50. String.format(
  51. "jdbc:mysql://localhost:3306/%s?useUnicode=true&characterEncoding=UTF-8&useSSL=FALSE&serverTimezone=UTC&useOldAliasMetadataBehavior=true",
  52. database
  53. );
  54. }
  55. return connstr;
  56. } catch (Exception e) {
  57. e.printStackTrace();
  58. }
  59. return "";
  60. }
  61. /**
  62. * 根据表ID 获取数据
  63. * @param id 数值
  64. * @param table 表名称
  65. * @return
  66. */
  67. public HashMap getmap(String id, String table) {
  68. List<HashMap> list = new ArrayList();
  69. try {
  70. Statement st = conn.createStatement();
  71. //System.out.println("select * from "+table+" where id="+id);
  72. ResultSet rs = st.executeQuery("select * from " + table + " where id=" + id);
  73. ResultSetMetaData rsmd = rs.getMetaData();
  74. while (rs.next()) {
  75. HashMap map = new HashMap();
  76. int i = rsmd.getColumnCount();
  77. for (int j = 1; j <= i; j++) {
  78. if (!rsmd.getColumnName(j).equals("ID")) {
  79. String str = rs.getString(j) == null ? "" : rs.getString(j);
  80. if (str.equals("null")) str = "";
  81. map.put(rsmd.getColumnName(j), str);
  82. } else map.put("id", rs.getString(j));
  83. }
  84. list.add(map);
  85. }
  86. rs.close();
  87. st.close();
  88. } catch (SQLException e) {
  89. // TODO Auto-generated catch block
  90. e.printStackTrace();
  91. }
  92. return list.get(0);
  93. }
  94. /**
  95. * 根据sql 语句获取一行数据
  96. * @param sql
  97. * @return
  98. */
  99. public HashMap find(String sql) {
  100. HashMap map = new HashMap();
  101. //List<HashMap> list = new ArrayList();
  102. try {
  103. Statement st = conn.createStatement();
  104. System.out.println(sql);
  105. ResultSet rs = st.executeQuery(sql);
  106. ResultSetMetaData rsmd = rs.getMetaData();
  107. while (rs.next()) {
  108. //HashMap map = new HashMap();
  109. int i = rsmd.getColumnCount();
  110. for (int j = 1; j <= i; j++) {
  111. if (!rsmd.getColumnName(j).equals("ID")) {
  112. String str = rs.getString(j) == null ? "" : rs.getString(j);
  113. if (str.equals("null")) str = "";
  114. map.put(rsmd.getColumnName(j), str);
  115. } else map.put("id", rs.getString(j));
  116. }
  117. //list.add(map);
  118. break;
  119. }
  120. rs.close();
  121. st.close();
  122. } catch (SQLException e) {
  123. // TODO Auto-generated catch block
  124. //e.printStackTrace();
  125. int code = e.getErrorCode();
  126. String message = e.getMessage();
  127. System.err.println("SQL execute Error");
  128. System.err.println("code:" + code);
  129. System.err.println("Message:" + message);
  130. }
  131. return map;
  132. }
  133. /**
  134. * 根据某字段的值获取一行数据
  135. * @param nzd 字段名称
  136. * @param zdz 条件值
  137. * @param table 表
  138. * @return
  139. */
  140. public HashMap getmaps(String nzd, String zdz, String table) {
  141. List<HashMap> list = new ArrayList();
  142. try {
  143. Statement st = conn.createStatement();
  144. //System.out.println("select * from "+table+" where "+nzd+"='"+zdz+"'");
  145. ResultSet rs = st.executeQuery("select * from " + table + " where " + nzd + "='" + zdz + "'");
  146. ResultSetMetaData rsmd = rs.getMetaData();
  147. while (rs.next()) {
  148. HashMap map = new HashMap();
  149. int i = rsmd.getColumnCount();
  150. for (int j = 1; j <= i; j++) {
  151. if (!rsmd.getColumnName(j).equals("ID")) {
  152. String str = rs.getString(j) == null ? "" : rs.getString(j);
  153. if (str.equals("null")) str = "";
  154. map.put(rsmd.getColumnName(j), str);
  155. } else map.put("id", rs.getString(j));
  156. }
  157. list.add(map);
  158. }
  159. rs.close();
  160. st.close();
  161. } catch (SQLException e) {
  162. // TODO Auto-generated catch block
  163. e.printStackTrace();
  164. }
  165. return list.get(0);
  166. }
  167. /**
  168. * 获取前台提交的数据将数据写成Map<String , String> 形式,方便写入数据库
  169. * @param request
  170. * @return 返回值类型为Map<String, String>
  171. */
  172. public static HashMap getParameterStringMap(HttpServletRequest request) {
  173. Map<String, String[]> properties = request.getParameterMap(); //把请求参数封装到Map<String, String[]>中
  174. HashMap returnMap = new HashMap<String, String>();
  175. String name = "";
  176. String value = "";
  177. for (Map.Entry<String, String[]> entry : properties.entrySet()) {
  178. name = entry.getKey();
  179. String[] values = entry.getValue();
  180. if (null == values) {
  181. value = "";
  182. } else {
  183. value = StringUtil.join(",", values); //用于请求参数中请求参数名唯一
  184. }
  185. returnMap.put(name, value);
  186. }
  187. return returnMap;
  188. }
  189. /**
  190. * 插入数据库
  191. * @param request
  192. * @param tablename
  193. * @param extmap
  194. * @return
  195. */
  196. public String insert(HttpServletRequest request, String tablename, HashMap extmap) {
  197. extmap.put("addtime", Info.getDateStr()); // 设置添加时间为当前时间
  198. Query query = new Query(tablename); // 新建查询模块
  199. HashMap post = getParameterStringMap(request); // 获取前台提交的数据将数据写成Map对象
  200. post.putAll(extmap); // 扩展的数据以覆盖方式写到提交的数据中
  201. return query.add(post); // 将数据生成sql insert语句,并执行,可以查看输出控制台中执行的SQL语句
  202. }
  203. /**
  204. * 删除数据
  205. * @param request
  206. * @param tablename 表名称
  207. */
  208. public void delete(HttpServletRequest request, String tablename) {
  209. int i = 0;
  210. try {
  211. String did = request.getParameter("did");
  212. if (did == null) did = request.getParameter("scid");
  213. if (did == null) did = request.getParameter("id");
  214. if (did != null) {
  215. if (did.length() > 0) {
  216. Statement st = conn.createStatement();
  217. System.out.println("delete from " + tablename + " where id=" + did);
  218. st.execute("delete from " + tablename + " where id=" + did);
  219. st.close();
  220. }
  221. }
  222. } catch (SQLException e) {
  223. // TODO Auto-generated catch block
  224. //e.printStackTrace();
  225. int code = e.getErrorCode();
  226. String message = e.getMessage();
  227. System.err.println("SQL execute Error");
  228. System.err.println("code:" + code);
  229. System.err.println("Message:" + message);
  230. }
  231. }
  232. /**
  233. * 获取某表一列数据
  234. * @param table
  235. * @return
  236. */
  237. public String getCols(String table) {
  238. String str = "";
  239. Connection conn = this.getConn();
  240. try {
  241. Statement st = conn.createStatement();
  242. ResultSet rs = st.executeQuery("select * from " + table);
  243. ResultSetMetaData rsmd = rs.getMetaData();
  244. int i = rsmd.getColumnCount();
  245. for (int j = 2; j <= i; j++) {
  246. str += rsmd.getColumnName(j) + ",";
  247. }
  248. } catch (SQLException e) {
  249. int code = e.getErrorCode();
  250. String message = e.getMessage();
  251. System.err.println("SQL execute Error");
  252. System.err.println("code:" + code);
  253. System.err.println("Message:" + message);
  254. //e.printStackTrace();
  255. }
  256. str = str.substring(0, str.length() - 1);
  257. return str;
  258. }
  259. /**
  260. * 更新数据
  261. * @param request
  262. * @param tablename
  263. * @param extmap
  264. * @return
  265. */
  266. public String update(HttpServletRequest request, String tablename, HashMap extmap) {
  267. Query query = new Query(tablename);
  268. HashMap post = getParameterStringMap(request);
  269. post.putAll(extmap);
  270. if (query.save(post)) {
  271. return String.valueOf(post.get("id"));
  272. }
  273. return "";
  274. }
  275. /**
  276. * 执行sql 语句
  277. * @param sql
  278. * @return
  279. */
  280. public long commOper(String sql) {
  281. System.out.println(sql);
  282. long autoInsertId = -1;
  283. try {
  284. Statement st = conn.createStatement();
  285. st.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
  286. ResultSet rs = st.getGeneratedKeys();
  287. while (rs.next()) {
  288. autoInsertId = rs.getLong(1);
  289. }
  290. rs.close();
  291. st.close();
  292. } catch (SQLException e) {
  293. // TODO Auto-generated catch block
  294. //e.printStackTrace();
  295. int code = e.getErrorCode();
  296. String message = e.getMessage();
  297. System.err.println("SQL execute Error");
  298. System.err.println("code:" + code);
  299. System.err.println("Message:" + message);
  300. }
  301. return autoInsertId;
  302. }
  303. /**
  304. * 执行多条SQL语句
  305. * @param sql
  306. */
  307. public void commOperSqls(ArrayList<String> sql) {
  308. try {
  309. conn.setAutoCommit(false);
  310. for (int i = 0; i < sql.size(); i++) {
  311. Statement st = conn.createStatement();
  312. System.out.println(sql.get(i));
  313. st.execute(sql.get(i));
  314. st.close();
  315. }
  316. conn.commit();
  317. } catch (SQLException e) {
  318. try {
  319. conn.rollback();
  320. } catch (SQLException e1) {
  321. //e1.printStackTrace();
  322. int code = e1.getErrorCode();
  323. String message = e1.getMessage();
  324. System.err.println("SQL execute Error");
  325. System.err.println("code:" + code);
  326. System.err.println("Message:" + message);
  327. }
  328. e.printStackTrace();
  329. } finally {
  330. try {
  331. conn.setAutoCommit(true);
  332. } catch (SQLException e) {
  333. int code = e.getErrorCode();
  334. String message = e.getMessage();
  335. System.err.println("SQL execute Error");
  336. System.err.println("code:" + code);
  337. System.err.println("Message:" + message);
  338. //e.printStackTrace();
  339. }
  340. }
  341. }
  342. /**
  343. * 根据SQL语句获取数据行
  344. * @param sql
  345. * @return
  346. */
  347. public List select(String sql) {
  348. System.out.println(sql);
  349. List<HashMap> list = new ArrayList();
  350. try {
  351. Statement st = conn.createStatement();
  352. ResultSet rs = st.executeQuery(sql);
  353. ResultSetMetaData rsmd = rs.getMetaData();
  354. while (rs.next()) {
  355. HashMap map = new HashMap();
  356. int i = rsmd.getColumnCount();
  357. for (int j = 1; j <= i; j++) {
  358. if (!rsmd.getColumnName(j).equals("ID")) {
  359. String str = rs.getString(j) == null ? "" : rs.getString(j);
  360. if (str.equals("null")) str = "";
  361. map.put(rsmd.getColumnName(j), str);
  362. } else map.put("id", rs.getString(j));
  363. }
  364. list.add(map);
  365. }
  366. rs.close();
  367. st.close();
  368. } catch (SQLException e) {
  369. // TODO Auto-generated catch block
  370. if (sql.equals("show tables")) list = select("select table_name from INFORMATION_SCHEMA.tables"); else {
  371. int code = e.getErrorCode();
  372. String message = e.getMessage();
  373. System.err.println("SQL execute Error");
  374. System.err.println("code:" + code);
  375. System.err.println("Message:" + message);
  376. }
  377. //e.printStackTrace();
  378. }
  379. return list;
  380. }
  381. public void close() {}
  382. /**
  383. * 执行一条查询sql,以 List<hashmap> 的形式返回查询的记录,记录条数,和从第几条开始,由参数决定,主要用于翻页
  384. * pageno 页码 rowsize 每页的条数
  385. */
  386. public List select(String sql, int pageno, int rowsize) {
  387. List<HashMap> list = new ArrayList();
  388. List<HashMap> mlist = new ArrayList();
  389. try {
  390. list = this.select(sql);
  391. int min = (pageno - 1) * rowsize;
  392. int max = pageno * rowsize;
  393. for (int i = 0; i < list.size(); i++) {
  394. if (!(i < min || i > (max - 1))) {
  395. mlist.add(list.get(i));
  396. }
  397. }
  398. } catch (RuntimeException re) {
  399. re.printStackTrace();
  400. throw re;
  401. }
  402. return mlist;
  403. }
  404. public static void main(String[] args) {}
  405. }

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/734849
推荐阅读
相关标签
  

闽ICP备14008679号