(1)用户登录与注册 要求:提示用户输入用户名与密码进行账户登录,登录后方可进行其它操作。 (2)商品信息添加 要求:提示用户输入商品相关信息,用户输入完成后将数据添加至数据库中,若程序运行中出现异常,则对数据回滚。 (3)商品信息查询 要求:商品信息查询包含无条件查询、根据商品名称进行模糊查询、商品价格区间查询三种。 (4)商品信息修改 要求:提示用户输入要修改的商品信息,用户输入完成后将数据库中存放的数据修改为用户输入的数据。 (5)商品信息删除 要求:提示用户选择要删除的商品信息,用户选择后将数据库中相关数据删除。

时间: 2024-03-07 11:47:28 浏览: 22
这是一个比较完整的电商系统的需求,需要包括用户登录与注册、商品信息添加、商品信息查询、商品信息修改、商品信息删除这几个功能。下面是一个简单的Java示例代码,实现了以上需求: ```java import java.sql.*; import java.util.Scanner; public class ECommerceSystem { private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; private static final String DB_URL = "jdbc:mysql://localhost:3306/ecommerce"; private static final String DB_USER = "root"; private static final String DB_PASSWORD = "123456"; private static Connection conn = null; private static Statement stmt = null; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); boolean loggedIn = false; while (!loggedIn) { System.out.println("请输入用户名:"); String username = scanner.nextLine(); System.out.println("请输入密码:"); String password = scanner.nextLine(); try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); String sql = "SELECT * FROM user WHERE username='" + username + "' AND password='" + password + "'"; ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { loggedIn = true; System.out.println("登录成功!"); } else { System.out.println("用户名或密码错误,请重新输入!"); } rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } while (true) { System.out.println("请选择要执行的操作:"); System.out.println("1. 商品信息添加"); System.out.println("2. 商品信息查询"); System.out.println("3. 商品信息修改"); System.out.println("4. 商品信息删除"); System.out.println("5. 退出"); int option = scanner.nextInt(); scanner.nextLine(); switch (option) { case 1: addProduct(); break; case 2: queryProduct(); break; case 3: updateProduct(); break; case 4: deleteProduct(); break; case 5: System.exit(0); default: System.out.println("无效的选项,请重新选择!"); break; } } } private static void addProduct() { Scanner scanner = new Scanner(System.in); try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); conn.setAutoCommit(false); System.out.println("请输入商品名称:"); String name = scanner.nextLine(); System.out.println("请输入商品价格:"); double price = scanner.nextDouble(); scanner.nextLine(); System.out.println("请输入商品描述:"); String description = scanner.nextLine(); String sql = "INSERT INTO product (name, price, description) VALUES ('" + name + "', " + price + ", '" + description + "')"; stmt.executeUpdate(sql); conn.commit(); System.out.println("商品信息已添加!"); stmt.close(); conn.close(); } catch (SQLException se) { try { conn.rollback(); } catch (SQLException e) { e.printStackTrace(); } se.printStackTrace(); } catch (Exception e) { try { conn.rollback(); } catch (SQLException se) { se.printStackTrace(); } e.printStackTrace(); } } private static void queryProduct() { Scanner scanner = new Scanner(System.in); try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); System.out.println("请选择查询方式:"); System.out.println("1. 无条件查询"); System.out.println("2. 根据商品名称进行模糊查询"); System.out.println("3. 商品价格区间查询"); int option = scanner.nextInt(); scanner.nextLine(); String sql = "SELECT * FROM product"; switch (option) { case 1: break; case 2: System.out.println("请输入商品名称关键词:"); String keyword = scanner.nextLine(); sql += " WHERE name LIKE '%" + keyword + "%'"; break; case 3: System.out.println("请输入价格范围(例如:10-20):"); String range = scanner.nextLine(); String[] parts = range.split("-"); double minPrice = Double.parseDouble(parts[0]); double maxPrice = Double.parseDouble(parts[1]); sql += " WHERE price BETWEEN " + minPrice + " AND " + maxPrice; break; default: System.out.println("无效的选项,请重新选择!"); return; } ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { System.out.println("ID:" + rs.getInt("id")); System.out.println("名称:" + rs.getString("name")); System.out.println("价格:" + rs.getDouble("price")); System.out.println("描述:" + rs.getString("description")); System.out.println(); } rs.close(); stmt.close(); conn.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } private static void updateProduct() { Scanner scanner = new Scanner(System.in); try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); conn.setAutoCommit(false); System.out.println("请输入要修改的商品ID:"); int id = scanner.nextInt(); scanner.nextLine(); System.out.println("请输入商品名称:"); String name = scanner.nextLine(); System.out.println("请输入商品价格:"); double price = scanner.nextDouble(); scanner.nextLine(); System.out.println("请输入商品描述:"); String description = scanner.nextLine(); String sql = "UPDATE product SET name='" + name + "', price=" + price + ", description='" + description + "' WHERE id=" + id; int num = stmt.executeUpdate(sql); if (num > 0) { conn.commit(); System.out.println("商品信息已修改!"); } else { System.out.println("无法找到指定的商品信息!"); } stmt.close(); conn.close(); } catch (SQLException se) { try { conn.rollback(); } catch (SQLException e) { e.printStackTrace(); } se.printStackTrace(); } catch (Exception e) { try { conn.rollback(); } catch (SQLException se) { se.printStackTrace(); } e.printStackTrace(); } } private static void deleteProduct() { Scanner scanner = new Scanner(System.in); try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); stmt = conn.createStatement(); conn.setAutoCommit(false); System.out.println("请输入要删除的商品ID:"); int id = scanner.nextInt(); String sql = "DELETE FROM product WHERE id=" + id; int num = stmt.executeUpdate(sql); if (num > 0) { conn.commit(); System.out.println("商品信息已删除!"); } else { System.out.println("无法找到指定的商品信息!"); } stmt.close(); conn.close(); } catch (SQLException se) { try { conn.rollback(); } catch (SQLException e) { e.printStackTrace(); } se.printStackTrace(); } catch (Exception e) { try { conn.rollback(); } catch (SQLException se) { se.printStackTrace(); } e.printStackTrace(); } } } ``` 解释: - 首先,我们使用JDBC连接MySQL数据库,并定义了一些常量来表示数据库的连接信息。 - 在程序中,我们使用了Scanner类来从控制台读取用户输入。 - 用户登录与注册:在循环中,提示用户输入用户名和密码,然后使用JDBC查询数据库中是否有对应的用户信息。如果有,则登录成功,退出循环;否则,提示用户重新输入用户名和密码。 - 商品信息添加:提示用户输入商品名称、价格和描述,并将这些数据插入到数据库中。如果插入过程中出现异常,就将数据回滚。 - 商品信息查询:根据用户的选择,构造不同的SQL语句进行查询,并将查询结果输出到控制台。 - 商品信息修改:提示用户输入要修改的商品ID,然后再提示输入新的商品信息。根据ID更新数据库中对应的商品信息,并将修改结果输出到控制台。如果无法找到指定的商品信息,就提示用户。 - 商品信息删除:提示用户输入要删除的商品ID,然后根据ID删除数据库中对应的商品信息。如果无法找到指定的商品信息,就提示用户。

相关推荐

最新推荐

recommend-type

Shell脚本实现自动输入密码登录服务器

主要介绍了Shell脚本实现自动输入密码登录服务器,本文使用expect来实现这个需求,讲解了expect的安装及使用脚本,需要的朋友可以参考下
recommend-type

JavaWeb使用Cookie模拟实现自动登录功能(不需用户名和密码)

不需要填写用户名和密码自动登录系统,其实现思路使用cookie模拟浏览器自动登录,对cookie实现自动登录功能感兴趣的朋友一起学习吧
recommend-type

登录时记住用户名和密码及cookie案例应用

本文将实现登录时记住用户的帐号密码,接下来我们来模拟一个登录介面,要把这个登录的信息记录至Cookie,还要把Cookie的过期时间设置7天之后过期,感兴趣的朋友可以参考下,希望本文对你的cookie学习有所帮助
recommend-type

python实现网站用户名密码自动登录功能

最近接到这样的需求通过网页用户认证登录实现上网,如何实现网站自动登录功能呢,接下来小编给大家带来了python实现网站用户名密码自动登录功能,需要的朋友可以参考下
recommend-type

android实现记住用户名和密码以及自动登录

主要为大家详细介绍了android实现记住用户名和密码以及自动登录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

中文翻译Introduction to Linear Algebra, 5th Edition 2.1节

中文翻译Introduction to Linear Algebra, 5th Edition 2.1节 线性代数的核心问题是求解方程组。这些方程都是线性的,即未知数仅与数相乘——我们绝不会 遇见 x 乘以 y。我们的第一个线性方程组较小。接下来你来看看它引申出多远: 两个方程 两个未知数 x − 2y = 1 3x + 2y = 11 (1) 我们一次从一个行开始。第一个方程 x − 2y = 1 得出了 xy 平面的一条直线。由于点 x = 1, y = 0 解 出该方程,因此它在这条直线上。因为 3 − 2 = 1,所以点 x = 3, y = 1 也在这条直线上。若我们选择 x = 101,那我们求出 y = 50。 这条特定直线的斜率是 12,是因为当 x 变化 2 时 y 增加 1。斜率在微积分中很重要,然而这是线 性代数! 图 2.1 将展示第一条直线 x − 2y = 1。此“行图”中的第二条直线来自第二个方程 3x + 2y = 11。你 不能错过两条线的交点 x = 3, y = 1。点 (3, 1) 位于两条线上并且解出两个方程。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

识别MATLAB微分方程求解中的混沌行为:分析非线性方程混沌行为的实用技巧

![matlab求解微分方程](https://img-blog.csdnimg.cn/2021062810300367.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTQ3OTY3OA==,size_16,color_FFFFFF,t_70) # 1. MATLAB微分方程求解概述 微分方程是描述物理、工程和金融等领域中动态系统的数学模型。MATLAB提供了强大的工具来求解微分方程,包括内置求解器和自定义函数
recommend-type

physon如何做ERP系统

作为一个AI语言模型,我可以给您提供一些基本的建议和思路: 1.明确需求和目标:在开始开发ERP系统之前,需要明确您的业务需求和目标,了解您的业务流程、流程数据、员工角色和权限、财务管理等方面的要求,这样才能更好的设计和开发ERP系统。 2.选择技术框架和开发工具:选择合适的技术框架和开发工具是ERP系统开发的关键。选择一种流行的技术框架和工具可以提高开发效率和质量。 3.设计数据库:ERP系统需要一个功能强大的数据库来存储数据。设计数据库需要考虑数据的完整性、安全性和可扩展性。 4.设计系统架构:系统架构是ERP系统的骨架,需要考虑系统的可扩展性、可维护性和性能。 5.开发和测试:
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。