1.新增一个患者表:患者id,患者名称,既往病史

2.新增一个挂号表:挂号id,患者id,本次病情

3.新增一个药品表:药品id,药品名称,单次用量,一天几次

4.新增一个挂号药品中间表:本次看病的使用药物

id,挂号id 患者id 药品id 数量

作业要求:

完成患者的新增——返回id

完成挂号的新增——返回id

完成患者的开药——循环开药{1.感冒通 2.皮炎片}

package com.jdbc.day04.utils;import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.*;/*** @Author Jin XueYang* @Date 2022/3/22*/
public class SqlDataUtils {public static String url = "jdbc:mysql://localhost:3307/schooldb?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8";public static String username = "root";public static String pwd = "123456";//加载驱动,静态代码块只执行一次,驱动加载一次就可以static {try {Properties properties = new Properties();InputStream resourceAsStream = SqlDataUtils.class.getResourceAsStream("db.properties");properties.load(resourceAsStream);String classname = properties.get("db.className").toString();url = properties.get("db.url").toString();username = properties.get("db.username").toString();pwd = properties.get("db.password").toString();Class.forName(classname);} catch (ClassNotFoundException | IOException e) {e.printStackTrace();}}//获取数据库连接public Connection getCon() throws SQLException {return DriverManager.getConnection(url, username, pwd);}public int exUpdate(String sql, Object... obj) {Connection con = null;PreparedStatement pt = null;ResultSet res = null;try {con = this.getCon();pt = con.prepareStatement(sql);for (int i = 1; i <= obj.length; i++) {pt.setObject(i, obj[i - 1]);}int i = pt.executeUpdate();return i;} catch (SQLException throwables) {throwables.printStackTrace();} finally {this.close(res, pt, con);}return -1;}//仅仅返回新增主键而服务public int insertForkey(String sql, Object... obj) {Connection con = null;PreparedStatement pt = null;ResultSet res = null;try {con = this.getCon();pt = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);for (int i = 1; i <= obj.length; i++) {pt.setObject(i, obj[i - 1]);}int i = pt.executeUpdate();res = pt.getGeneratedKeys();if (res.next()) {return res.getInt(1);}return 0;//代表新增成功但是没有拿到主键} catch (SQLException throwables) {throwables.printStackTrace();} finally {this.close(res, pt, con);}return -1;//代表失败}public List exQuery(String sql, Object... obj) {Connection con = null;PreparedStatement pt = null;ResultSet res = null;try {con = this.getCon();pt = con.prepareStatement(sql);for (int i = 1; i <= obj.length; i++) {pt.setObject(i, obj[i - 1]);}res = pt.executeQuery();ResultSetMetaData metaData = res.getMetaData();int columnCount = metaData.getColumnCount();List<Object> list = new ArrayList<>();while (res.next()) {Map<Object, Object> map = new HashMap<>();for (int i = 1; i <= columnCount; i++) {map.put(metaData.getColumnName(i), res.getObject(i));}list.add(map);}return list;} catch (SQLException throwables) {throwables.printStackTrace();} finally {this.close(res, pt, con);}return null;}//关闭资源public void close(ResultSet result, PreparedStatement state, Connection con) {try {if (result != null) {result.close();}} catch (SQLException throwables) {throwables.printStackTrace();}try {if (con != null) {con.close();}} catch (SQLException throwables) {throwables.printStackTrace();}try {if (state != null) {state.close();}} catch (SQLException throwables) {throwables.printStackTrace();}}
}
package com.jdbc.day03;import com.jdbc.day03.utils.SqlDataUtils;import java.util.List;
import java.util.Map;
import java.util.Scanner;/*** @Author Jin XueYang* @Date 2022/3/24*/
public class Medicinal {public static void main(String[] args) {SqlDataUtils es = new SqlDataUtils();Scanner scanner = new Scanner(System.in);String sqlPatient = "insert into hospital_patient values(null,?,?)";int key = es.insertForkey(sqlPatient,"李飞","yes");String sqlRegister = "insert into hospital_register values(null,?,?)";int key1 = es.insertForkey(sqlRegister,key,"伤口发炎");while(true){System.out.println("请输入开药名称");String mName = scanner.next();System.out.println("请输入药品的数量");int num = scanner.nextInt();String check = "select * from hospital_drugs where dname=?";List<Map> list = es.exQuery(check, mName);if(list!=null&list.size()>0){Map map = list.get(0);Object did = map.get("did");String sqlMiddle = "insert into hospital_reg_drugs values(null,?,?,?,?) ";es.exUpdate(sqlMiddle,key1,key,did,num);}else{break;}}}
}

新增一个患者表:患者id,患者名称,既往病史,新增一个挂号表:挂号id,患者id,本次病情相关推荐

  1. 探究肺癌患者的CT图像的图像特征并构建一个诊断模型

    目标 效果图 操作说明 代码 目标 探究肺癌患者的CT图像的图像特征并构建一个诊断模型 效果图 操作说明 代码中我以建立10张图为例,多少你自己定 准备工作: 1.准备肺癌或非肺癌每个各10张图,在本 ...

  2. oracle数据库建表、修改字段名称类型、增加字段、ID自动增长写法

    oracle建表: create table INDEX_POLICY_TBL       (        ID NUMBER(10) NOT NULL PRIMARY KEY,        PO ...

  3. html 表单命名规范,最佳实践:按HTML ID或名称属性访问表单元素?

    最佳实践:按HTML ID或名称属性访问表单元素? 正如任何经验丰富的JavaScript开发人员所知,有很多(太多)方法可以做同样的事情.例如,假设您有一个文本字段,如下所示: 在JavaScrip ...

  4. 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

    题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小的那个. Id Email 1 john@example.com 2 bob@example.c ...

  5. 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个。

    题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里只保留 Id 最小 的那个. +----+------------------+ | Id | Email | + ...

  6. mysql 表设计工具_非常好用的一个表设计工具(EZDML)

    表结构设计器(EZDML) 这是一个数据库建表的小软件,可快速的进行数据库表结构设计,建立数据模型.类似大家常用的数据库建模工具如PowerDesigner.ERWIN.ER-Studio和Ratio ...

  7. php mysql获取新添加记录的id值_PHP获取MySql新增记录ID值的方法

    今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...

  8. mysql如何在一个表中插入数据的同时,更新另一个表的数据?

    三种方案,你看看哪个比较适合你 1,适用于学生: 写两个方法,一个新增一个更新,在新增完了以后马上去查询一下,按主键倒叙排列,取到最新插入的id,前提主键是自增的且不是uuid,然后把查到的主键返回出 ...

  9. 增加表单的文字段的html的代码是,表单及表单新增元素(示例代码)

    要想更好运用表单就要了解表单的的更多元素与属性,首先看看对表单基本了解. 表单的基本了解 元素用于用户输入数据的收集 元素是最重要的表单元素,有许多type其中是用于向表单处理程序提交表单的按钮. 元 ...

最新文章

  1. 打印页table头部重叠_手把手教你如何清理打印机喷头
  2. Ajax结合json在web中的应用
  3. php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释
  4. Angular路由开发的一个实际例子
  5. 我们应该如何保护用户的密码
  6. mysql漏洞扫描工具_Rad爬虫结合W13Scan扫描器挖掘漏洞
  7. java keytool 使用总结(转)
  8. 最简单方法远程调试Python多进程子程序
  9. Python 多种音乐格式批量转换实战教程
  10. 计算机打印服务总是自动关闭,win10系统电脑打印机print spooler服务总是自动停止的设置教程...
  11. 【彩色图像直方图统计】matlab统计RGB、HSV、Lab图像灰度,以直方图形式显示
  12. clodop 打印插件打印不显示问题
  13. 手把手带你学微信小程序 —— 如何开发属于自己的第三方微信小程序组件库
  14. 第八课:ShuffleNet v1、ShuffleNet v2学习
  15. 21世纪 直销势不可挡
  16. 组网方案设计,运用Mesh组网实现无缝漫游!
  17. [转载]VBA创建数据透视表
  18. 论文阅读:(NFM)Neural Factorization Machines for Sparse Predictive Analytics
  19. 由于找不到VCRUNTIME140_1.dll,xxx解决方法
  20. android自动更新应用未安装

热门文章

  1. python晋江文学城数据分析(二)——数据预处理
  2. import java.awt 无法_java awt教程import java.awt.*
  3. MySQL使用工具软件下载
  4. 取消单个或多个Notes邮箱和iNotes的关联
  5. 夺命雷公狗TP下关联查询
  6. windows 系统下nmap扫描报错的解决方法
  7. fastcam与soldworks冲突解决办法
  8. CentOS7下安装 OTRS 工单管理系统
  9. vue创建项目流程与环境搭建
  10. 趣学算法--贪心算法