如何用idea数据库编写快递e站

用数据库编写快递e站(本文只写了idea方面的代码)

随着快递业的不断发展,快递e站也越来越多,我们来编写一个简单的快递e站小程序,本文就介绍了如何用数据库知识编写快递e站。

##成品如下:

一、IDEA如何连接数据库

第一种方法:直接在方法体中增加连接信息

优点:如果仅使用一次数据库操作可选择
缺点:多次数据库操作每次都需要写,麻烦

public void select() {

  Connection conn = null;
  Statement stmt = null;
  ResultSet rs = null;
  try {
   //1.注册驱动
   Class.forName("com.mysql.jdbc.Driver");
   //2.定义sql
   String sql = "select * from kuaidi";
   //3.获取conn
   conn = DriverManager.getConnection("jdbc:mysql:///kuaidi", "root", "123");
   //4.获取执行sql对象Statement
   stmt = conn.createStatement();
   //5.执行sql
   rs = stmt.executeQuery(sql);
   //6处理结果
   while (rs.next()) {
    int danhao = rs.getInt(1);
    int qujianma = rs.getInt(2);
    String gongsi = rs.getString("gongsi");
    String guizi = rs.getString(4);
    System.out.println("单号为:" + danhao + " " + "取件码为:" + qujianma + " " + "公司是:" + gongsi + " " + "柜子在第" + guizi + "个");
   }

  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  } catch (SQLException throwables) {
   throwables.printStackTrace();
  } finally {
   if (stmt != null) {
    try {
     stmt.close();
    } catch (SQLException throwables) {
     throwables.printStackTrace();
    }
   }

   if (conn != null) {
    try {
     conn.close();
    } catch (SQLException throwables) {
     throwables.printStackTrace();
    }
   }

   if (rs != null) {
    try {
     rs.close();
    } catch (SQLException throwables) {
     throwables.printStackTrace();
    }
   }
  }
 }

方法二:

建立一个JDBCHelper和一个存储数据库账号密码的Properties,来帮助快速加载驱动以及释放内存
优点:只需要写一次,用的时候调用即可
缺点:一次要写很多

释放内存的时候可能传入两个或者三个参数需要释放,所以用重载形式来解决

 private static String url;
 private static String user;
 private static String password;
 private static String driver;

 /**
  * 文件的读取,只需要读取一次即可
  */
 static {
  //读取资源文件,并获取值
  try {
   //1.创建properties集合类
   Properties pro = new Properties();
   //2.加载文件
   //获取src路径下的文件的方式--->ClassLoader类加载器
   ClassLoader classLoader = JDBCHelper.class.getClassLoader();
   URL res = classLoader.getResource("jdbc.properties");
   String path = res.getPath();

   //pro.load(new FileReader("src/jdbc.properties"));
   pro.load(new FileReader(path));

   url = pro.getProperty("url");
   user = pro.getProperty("user");
   password = pro.getProperty("password");
   driver = pro.getProperty("driver");

   Class.forName(driver);
  } catch (IOException e) {
   e.printStackTrace();
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 /**
  * 获取连接
  *
  * @return连接对象
  */
 public static Connection getConnection() throws SQLException {
  return DriverManager.getConnection(url, user, password);
 }
 /**
  * 释放资源
  *
  * @param stmt
  * @param conn
  */
 public static void close(Statement stmt, Connection conn) {
  if (stmt != null) {
   try {
    stmt.close();
   } catch (SQLException throwables) {
    throwables.printStackTrace();
   }
  }
  if (conn != null) {
   try {
    conn.close();
   } catch (SQLException throwables) {
    throwables.printStackTrace();
   }
  }
 }
//释放内存
 public static void close(ResultSet rs, Statement stmt, Connection conn) {
  if (stmt != null) {
   try {
    stmt.close();
   } catch (SQLException throwables) {
    throwables.printStackTrace();
   }
  }
  if (rs != null) {
   try {
    rs.close();
   } catch (SQLException throwables) {
    throwables.printStackTrace();
   }
  }
  if (conn != null) {
   try {
    conn.close();
   } catch (SQLException throwables) {
    throwables.printStackTrace();
   }
  }

 }

二、方法代码的实现

1.快递员增加快递

代码如下:

public class Add {
 Connection conn = null;
 Statement stmt = null;
 Random r= new Random();
 public void addq(int danhao,String gongsi){
  try {
   conn = JDBCHelper.getConnection();
   int qujianma = r.nextInt((999999)+1);
   String guizi = Integer.toString(r.nextInt(100)+1);
   String sql = "insert into kuaidi values(" + danhao + "," + qujianma+",'"+gongsi+"','"+guizi+"')";
   stmt = conn.createStatement();
   int a = stmt.executeUpdate(sql);
   System.out.println("取件码为:"+qujianma);
   if(a>0){
    System.out.println("添加成功");
   }
   else {
    System.out.println("添加失败");
   }
  } catch (SQLException throwables) {
   throwables.printStackTrace();
  }
 }
 }

2.快递员删除快递

代码如下:

public class Delete {

 Connection conn = null;
 Statement stmt = null;

 public void delete(int danhao) {

  try {
   conn = JDBCHelper.getConnection();
   String sql = "delete from kuaidi where danhao = "+danhao;

   stmt = conn.createStatement();
   int a = stmt.executeUpdate(sql);
   if(a>0){
    System.out.println("删除成功");
   }
   else {
    System.out.println("删除失败");
   }

  } catch (SQLException throwables) {
   throwables.printStackTrace();
  }
 finally {
  JDBCHelper.close(stmt,conn);
 }
}

主要内容代码:

public class Imp {
public static void main(String[] args) {
kuaidi();
}
public static void kuaidi() {
 System.out.println("====欢迎使用新职课快递柜====");
 Scanner sc = new Scanner(System.in);
 Random r = new Random();
 while (true) {

  System.out.println("请输入你的身份:1-快递员,2-用户");
  try {
   int a = sc.nextInt();

   if (a < 1 || a > 2) {
    System.out.println("输入有误,请重新输入");
   } else if (a == 1) {
    System.out.println("====欢迎使用新职课快递柜====");
    System.out.println("请选择操作:1-存快递 2-删除快递 3-修改快递信息 4-查看所有快递");
    int b = sc.nextInt();
    switch (b) {
     case 1: {
      System.out.println("====欢迎使用新职课快递柜====");
      System.out.println("请输入快递单号:");
      int danhao = sc.nextInt();
      System.out.println("请输入公司名称:");
      String gongsi = sc.next();
      Add add = new Add();
      add.addq(danhao, gongsi);

      break;
     }
     case 2: {
      System.out.println("====欢迎使用新职课快递柜====");
      System.out.print("请输入要删除的订单号:");
      int dingdan = sc.nextInt();
      Delete delete = new Delete();
      delete.delete(dingdan);
      break;
     }
     case 3: {
      System.out.println("====欢迎使用新职课快递柜====");
      System.out.print("请输入要修改的订单号:");
      int danhao = sc.nextInt();
      Alter al = new Alter();
      boolean q = al.select(danhao);
      if (q = true) {
       System.out.println("请输入更改后的单号");
       int afdanhao = sc.nextInt();
       al.alter(afdanhao, danhao);
      } else {
       System.out.println("请核实订单号");
      }

      break;
     }
     case 4: {
      System.out.println("====欢迎使用新职课快递柜====");
      SelectAll s = new SelectAll();
      s.select();
     }
    }

   } else if (a == 2) {
    System.out.println("====欢迎使用新职课快递柜====");
    System.out.println("请输入取件码");
    int qujianma = sc.nextInt();
    Take t = new Take();
    t.take(qujianma);

   }

  } catch (InputMismatchException e) {
   System.out.println();
   System.out.println("请输入数字序号!!!!!!!!");
   System.out.println();
   kuaidi();
  }
 }

}
}

别的几个代码块都大同小异,只需要修改sql语句即可

如有需要全部代码,或者有疑问的同学私信我就可以了

到此这篇关于如何用idea数据库编写快递e站的文章就介绍到这了,更多相关idea数据库编写快递e站内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

赞 (0)

相关推荐

  • IDEA 连接数据库的实现方法

    [1]添加 database 到右侧栏 (1.1)先看右侧栏有[database]图标没,从我这里可以看到是没有的: (1.2)如图选择[View]-[Tool Windows]-[Database] (1.3) 如图所示,右侧栏就可以看见[Database]一栏了. [2]新建数据库 (2.1)点击这个 + 号,开始准备新建链接 (2.2)选择对应版本数据库,如:这里我选择的是 Mysql 数据库. (2.3)然后在红色方框中填写自己的数据库信息,然后点击[TEST CONNECTION]测试

  • IntelliJ IDEA的数据库管理工具实在太方便了(推荐)

    1. 前言 胖哥是一个有软件洁癖的人,能用现有的软件解决问题的绝不安装新的软件.Java后端开发主要跟数据库打交道,所以数据库图形化界面(GUI)是少不了的.通常图形化操作关系型数据库(RMDBS)大多数人会选择Navicat.如果你用的是Intellij IDEA,不管是旗舰版还是社区版,都不需要Navicat了,旗舰版自带数据库图形界面,社区版你可以通过插件集成图形界面.今天就以旗舰版为例演示一下IDEA的数据库图形管理能力. 2. IDEA 数据库图形管理 在IDEA旗舰版的右侧边栏打开D

  • Intellij IDEA 如何通过数据库表生成带注解的实体类(图文详细教程)

    第一步:新建一个Maven项目.项目的名称为JpaDemo. 我这里是通过idea插件对应的spring项目生成器https://start.spring.io,直接生成项目.如图: 下一步,修改成对应项目的基本信息.如图: 选择相应的依赖jar包. 选择项目的位置 完成创建 温馨提示,之前需要安装好maven. 第二步:配置数据库连接. 选择Mysql. 配置数据库基本信息 其实配置了这个数据库连接之后,是可以直接通过脚本进行导出数据库实体类了,但是这个导出的实体类比较简陋,需要进行修改比较多

  • 如何用idea数据库编写快递e站

    用数据库编写快递e站(本文只写了idea方面的代码) 随着快递业的不断发展,快递e站也越来越多,我们来编写一个简单的快递e站小程序,本文就介绍了如何用数据库知识编写快递e站. ##成品如下: 一.IDEA如何连接数据库 第一种方法:直接在方法体中增加连接信息 优点:如果仅使用一次数据库操作可选择 缺点:多次数据库操作每次都需要写,麻烦 public void select() { Connection conn = null; Statement stmt = null; ResultSet r

  • 如何用Node.js编写内存效率高的应用程序

    前言 软件应用程序在计算机的主存储器中运行,我们称之为随机存取存储器(RAM).JavaScript,尤其是 Nodejs(服务端js)允许我们为终端用户编写从小型到大型的软件项目.处理程序的内存总是一个棘手的问题,因为糟糕的实现可能会阻塞在给定服务器或系统上运行的所有其他应用程序.C 和 C++程序员确实关心内存管理,因为隐藏在代码的每个角落都有可能出现可怕的内存泄漏.但是对于 JS 开发者来说,你真的有关心过这个问题吗? 由于 JS 开发人员通常在专用的高容量服务器上进行 web 服务器编程

  • 基于Python编写一个B站全自动抽奖的小程序

    目录 导语 开发工具 环境搭建 原理简介 导语 应好友邀请,帮他写了个小程序,功能类似于实时监控自己关注的UP主,如果关注的UP主中有人发布了抽奖的动态,就自动参与这个抽奖.这样就能不错过任何一个可以暴富的机会了.写完之后感觉这个想法还是挺有意思的,于是上来分享一波. 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.7.8 相关模块: DecryptLogin模块: 以及一些python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原

  • 如何用FileSystemObject组件来做一个站内搜索?

    searchpage.htm' 搜索页面. <html> <head>        <title>千花飞舞之站内搜索引擎</title>    </head>    <body>        <CENTER>            <FORM METHOD=POST ACTION="searchresult.asp"> <TABLE BGCOLOR="#BLUE"

  • 如何用C语言编写PHP扩展的详解

    1:预定义在home目录,也可以其他任意目录,写一个文件,例如caleng_module.def内容是你希望定义的函数名以及参数:int a(int x,int y)string b(string str,int n) 2:到php源码目录的ext目录#cd /usr/local/php-5.4.0/ext/ 执行命令,生成对应扩展目录#./ext_skel --extname=caleng_module --proto=/home/hm/caleng_module.def 3:修改config

  • 易语言编写mp3播放器教学

    易语言是一款可视全中文的编程语言,由于他有可视化程度高,全中文的特点,深受国人喜爱,下面我为大家讲解如何用易语言编写mp3播放器. 1.打开易语言,新建一个windows窗口程序. 2.在启动窗口上,放上编辑框,按钮,通用对话框等组件. 3.通用对话框的属性中,类型一定要是打开文件. 4.双击按钮1,写入代码如下图所示 5.双击按钮2,写入代码如下图所示. 6.点击运行,点击按钮1,可见通用对话框的功能之一,打开文件,实现了,选择一个mp3文件,点击打开,可见编辑框1的内容就是通用对话框的文件名

  • django mysql数据库及图片上传接口详解

    前言 我们在 django-rest-framework解析请求参数 文章中完成了接口文档到参数解析, 一个完整的流程中还缺少对数据库的操作. 本篇内容为django连接数据库, 并编写一个image表用来存储图片路径, 编写图片上传接口和查看数据库中所有图片路径的接口. 前期准备 django操作图片需要安装一个三方库叫做,Pillow workon python35 pip install pillow pip install pymysql Pillow这个库可以对图片进行操作, 例如生成

  • 易语言怎么编写模块?易语言编写模块步骤教学

    易语言的逐渐普及,让更多的人爱上了编程.然而在开发软件或者写代码的时候,难免会碰到某些代码块需要反复调用的棘手问题,如果每次都直接移植过来的话,势必会造成繁重的工作量及程序代码出错的几率.这个时候,就有必要引入"模块"了.那么,如何用易语言编写模块呢?下面就由笔者为大家揭开"模块"的神秘面纱! 1.打开易语言,选择"程序"→ "新建"→"Windows易语言模块"→"确定"或者双击&qu

  • 详解在spring中使用JdbcTemplate操作数据库的几种方式

    使用JdbcTemplate的步骤 1.设置spring-jdbc和spring-tx的坐标(也就是导入依赖) <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.7.RELEASE</version> </dependency> <dependency&

  • Python中的套接字编程是什么?

    Why use Sockets? 套接字是网络的基础.它们使在两个不同程序或设备之间的信息传输成为可能.例如,当您打开浏览器时,您作为客户端正在与服务器建立连接以进行信息传输. 在深入探讨这种通信之前,让我们首先弄清楚这些插座的确切含义. What are Sockets? 一般而言,套接字是为发送和接收数据而构建的内部端点.单个网络将具有两个套接字,每个通信设备或程序一个.这些套接字是IP地址和端口的组合.根据所使用的端口号,单个设备可以具有n个插槽.不同的端口可用于不同类型的协议.请看以下图

随机推荐