Используйте базу данных идей, чтобы написать экспресс-электронную станцию

Используйте базу данных, чтобы написать экспресс-станцию ​​(в этой статье написан только код идеи)


С непрерывным развитием индустрии экспресс-доставки появляется все больше и больше экспресс-станций. Давайте напишем простой апплет для экспресс-станций. В этой статье рассказывается, как использовать знания базы данных для написания экспресс-электронных станций.

## Готовый продукт выглядит следующим образом:Вставьте описание изображения сюда


1. Как 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();
                }
            }


        }
    }

Метод 2:
создайте JDBCHelper и свойства для хранения учетной записи базы данных и пароля, чтобы помочь быстро загрузить драйвер и освободить память.
Преимущества: нужно писать только один раз, вызывать его при использовании.
Недостатки: много писать за раз
Вставьте описание изображения сюда

При освобождении памяти могут быть переданы два или три параметра, которые необходимо освободить, поэтому используйте перегруженную форму для решения


    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);
    }
}

Код основного содержания:

публичный класс Imp { публичный статический недействительный основной (String [] аргументы) { 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

Если вам нужен весь код или у вас есть вопросы, вы можете отправить мне личное сообщение

рекомендация

отblog.csdn.net/weixin_48305172/article/details/112304491
рекомендация