怎样用idea数据库编写快递e站

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

怎样用idea数据库编写快递e站

今晚不想睡沙发   2021-01-10 我要评论
这篇文章主要介绍了如何用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语句即可

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

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们