Java 结合 JDBC 实现数据库中优惠券记录的增、改、删操作
为了完成这些任务,你需要与数据库交互,并使用合适的SQL语句来执行这些操作。以下是一个简单的示例,假设你正在使用Java和JDBC来连接数据库(假设数据库为MySQL): 10. 添加一个新的优惠券记录在表中 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class CouponManager { // JDBC连接信息 private static final String URL = "jdbc:mysql://localhost:3306/your_database"; private static final String USER = "your_username"; private static final String PASSWORD = "your_password"; // 添加优惠券记录 public void addCoupon(String couponCode, double price, Date expiryDate) { String sql = "INSERT INTO coupons (coupon_code, price, expiry_date) VALUES (?, ?, ?)"; try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setString(1, couponCode); stmt.setDouble(2, price); stmt.setDate(3, new java.sql.Date(expiryDate.getTime())); int rowsInserted = stmt.executeUpdate(); if (rowsInserted > 0) { System.out.println("A new coupon was inserted successfully!"); } } catch (SQLException e) { e.printStackTrace(); } } } ``` 11. 修改优惠券id=2的记录,将优惠券价格改成50,失效时间延后3天 ```java public void updateCoupon(int couponId, double newPrice, Date newExpiryDate) { String sql = "UPDATE coupons SET price = ?, expiry_date = DATE_ADD(expiry_date, INTERVAL 3 DAY) WHERE id = ?"; try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setDouble(1, newPrice); stmt.setInt(2, couponId); int rowsUpdated = stmt.executeUpdate(); if (rowsUpdated > 0) { System.out.println("Coupon with ID " + couponId + " was updated successfully!"); } } catch (SQLException e) { e.printStackTrace(); } } ``` 12. 删除tony 已过期且优惠价格<20元的优惠券记录 ```java public void deleteExpiredCoupons(String username) { String sql = "DELETE FROM coupons WHERE username = ? AND expiry_date < CURRENT_DATE() AND price < 20"; try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD); PreparedStatement stmt = conn.prepareStatement(sql)) { stmt.setString(1, username); int rowsDeleted = stmt.executeUpdate(); System.out.println(rowsDeleted + " expired coupons deleted for user " + username); } catch (SQLException e) { e.printStackTrace(); } } ``` 请确保替换示例中的数据库连接信息(URL、USER、PASSWORD)以及表名和字段名,以便与你的实际数据库结构匹配。 ######[AI写代码神器 | 1943点数解答 | 2024-06-29 15:28:49]
- 解决数据库“dm.jdbc.driver.dmexception: 数据溢出”问题的全步骤指南(阿里通义 | 598点数解答 | 2024-10-15 15:48:38)330
- 达梦数据库数据溢出问题排查及多维度解决方法(阿里通义 | 403点数解答 | 2024-10-15 15:48:41)1217
- Java 实现复制粘贴功能:打造简易文本复制粘贴程序(GPT | 1497点数解答 | 2024-08-25 09:40:33)429
- 主副表 MySQL 数据库连接配置全揭秘(讯飞星火 | 92点数解答 | 2024-06-26 15:47:44)348
- MySQL主副表数据库配置信息大揭秘:驱动、URL、用户名与密码全知晓 (讯飞星火 | 210点数解答 | 2024-06-26 15:49:53)334
- Python实现Q老师成绩管理任务:修改与查看学生成绩(字节豆包 | 191点数解答 | 2025-12-20 20:55:41)98
- Python 代码助力 Q 老师高效管理班级学生成绩:修改与查看一键搞定(字节豆包 | 326点数解答 | 2025-12-27 20:48:12)104
- 数据库连接报错剖析:SSL 配置不匹配及解决攻略 (字节豆包 | 205点数解答 | 2024-09-04 19:14:42)364
- 卡牌游戏技能“教化”机制全解析:规则、代码与注意要点 (DeepSeek | 353点数解答 | 2025-07-07 15:40:28)179
- Python 模拟无名杀“教化”技能:出牌阶段规则与代码实现及优化建议(字节豆包 | 546点数解答 | 2025-07-07 15:41:02)186
- Java 实现“教化”技能:出牌阶段限两次的牌获取规则代码解析(字节豆包 | 1003点数解答 | 2025-07-07 15:41:54)154
- JavaScript 实现“教化”技能:两次出牌限制与牌型记录逻辑揭秘(字节豆包 | 846点数解答 | 2025-07-07 15:42:46)194