java - 如何在java中重复代码
问题描述
所以对于我正在做的一个学校项目,我复制相同的代码并粘贴它,只是更改标识符名称。
if (s1.isSelected()){
System.out.println("Hello");
String query = "update booking set s1 = 0 where bdate ='"+d+"';";
stmt.executeUpdate(query);
}
if (s2.isSelected()){
System.out.println("Hello");
String query = "update booking set s2 = 0 where bdate ='"+d+"';";
stmt.executeUpdate(query);
}
if (s3.isSelected()){
System.out.println("Hello");
String query = "update booking set s3 = 0 where bdate ='"+d+"';";
stmt.executeUpdate(query);
}
如何重复此代码 100-120 次?有没有一种简单的方法可以做到这一点?
谢谢。
解决方案
阅读
void putClientProperty(Object key, Object value);
和
Object getClientProperty(Object key);
几乎每个 GUI 系统,二进制 Win32 也有类似的概念来存储特定数据与/在组件中。这彻底消除了愚蠢的可重复代码、奇怪if
的 s 系列等。例如
List<JCheckBox> boxes = ... ;
for(...){
JCheckBox box = ... // create, add listeners and position component by code
boxes.add(box);
box.putClientProperty("seat", anSeatObject );
}
需要时,在事件侦听器中或在保存阶段可以读取此信息;
附加说明:我个人更喜欢带有 SeatsByDate 的表格,而不是数百列。在您的模型中查询免费座位几乎是不可能的。因为我更喜欢JPA,所以我会做实体
@Enitity
SeatsByDate {
@Id
int id;
@ManyToOne
ReserationDate date;
bool isReserved;
}
接着
SeatsByDate anSeatObject
所以 JPA 是我个人的偏好,ClientProperty
也可能是简单的字符串。
推荐阅读
- c# - 从 Excel 中读取会留下空单元格 C#
- ios - IOS离线缓存WebView内容
- python - 亲子班合理设计
- google-sheets - 工作表给出 importrange 内部错误,但在公式刷新时加载数据
- python - 全面返回python字典的所有可能组合
- rstudio - 无法加载 rgl 包
- firebase - 检查 Flutter App 内的 Firebase Auth 中是否存在电子邮件
- .net - 我在哪里可以找到 Windows Server 上的 X-Frame-Option 值?
- facebook - Facebook Graph API 同步相册
- javascript - 如何在 es6 中使用 module.exports.function?