使用idea数据库编写一个快递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,来帮助快速加载驱动以及释放内存
优点:只需要写一次,用的时候调用即可
缺点:一次要写很多
释放内存的时候可能传入两个或者三个参数需要释放,所以用重载形式来解决
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(); } } } }
关于使用idea数据库编写一个快递e站就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。