网络编程
位置:首页>> 网络编程>> 数据库>> 如何用idea数据库编写快递e站

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

作者:今晚不想睡沙发  发布时间:2024-01-23 08:43:56 

标签:idea,数据库,快递e站
目录
  • 一、IDEA如何连接数据库

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

    • 方法二:

  • 二、方法代码的实现

    • 1.快递员增加快递

    • 2.快递员删除快递

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

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

##成品如下:

如何用idea数据库编写快递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,来帮助快速加载驱动以及释放内存
优点:只需要写一次,用的时候调用即可
缺点:一次要写很多

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

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


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语句即可

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

来源:https://blog.csdn.net/weixin_48305172/article/details/112304491

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com