实体: 1、管理员(admin)属性:账号(id)、姓名(name)、密码(password) 2、水电信息(crzz)属性:编号(id)、收费项目(name) 3、历史记录(history)属性:住宿编号(id)、姓名(name)、房源号(room)、租房时间(registertime)、结账时间(exittime)、租金(money)、备注(remarks) 4、缴费信息(message)属性:缴费用户(fromid)、缴费序号(toid)、房源(room) 5、房源(room)属性:房源号(id)、级别(grade)、租金(price)、状态(state)、备注(remarks) 6、住户(tenant)属性:账号(id)、密码(password)、姓名(name)、身份证(card)、房源号(room)、租房时间(time)、性别(sex)、籍贯(hometown) 使用SQL语言创建3个以上触发器,并在程序运行过程中触发使其执行,请用文字描述其功能
时间: 2023-08-15 20:06:49 浏览: 65
1. 当管理员表中有新的账号被插入时,触发器会检查密码是否符合要求(比如长度是否足够),如果不符合则自动将密码设置为默认值。
2. 当缴费信息表中有新的记录被插入时,触发器会检查该用户是否已经缴纳过该房源的水电费用,如果已经缴纳过则自动更新该记录的缴费状态为“已缴纳”。
3. 当历史记录表中有记录被更新时,触发器会检查结账时间是否早于租房时间,如果是则自动将结账时间设置为租房时间加上租期。
4. 当房源表中有记录被删除时,触发器会检查该房源是否已经被租户租走,如果是则自动将该租户的房源号设置为0。
5. 当住户表中有记录被修改时,触发器会检查该租户是否已经拥有房源,如果没有则自动将房源号设置为0。
这些触发器的功能是在数据库操作过程中自动执行一些数据校验和业务逻辑处理,减少了程序员的工作量,提高了数据的准确性和完整性。
相关问题
实体: 1、管理员(admin)属性:账号(id)、姓名(name)、密码(password) 2、水电信息(crzz)属性:编号(id)、收费项目(name) 3、历史记录(history)属性:住宿编号(id)、姓名(name)、房源号(room)、租房时间(registertime)、结账时间(exittime)、租金(money)、备注(remarks) 4、缴费信息(message)属性:缴费用户(fromid)、缴费序号(toid)、房源(room) 5、房源(room)属性:房源号(id)、级别(grade)、租金(price)、状态(state)、备注(remarks) 6、住户(tenant)属性:账号(id)、密码(password)、姓名(name)、身份证(card)、房源号(room)、租房时间(time)、性别(sex)、籍贯(hometown) 用DML语句完成系统运行涉及的相关增删改查操作(10条以上),请将操作的内容用文字描述,操作的过程用SQL代码实现,
1. 添加管理员账号信息:
描述:向管理员表中添加一个新的管理员账号信息。
SQL代码:INSERT INTO admin (id, name, password) VALUES ('001', '张三', '123456');
2. 修改管理员密码:
描述:将管理员账号为001的密码修改为654321。
SQL代码:UPDATE admin SET password='654321' WHERE id='001';
3. 删除水电信息:
描述:从水电信息表中删除编号为001的收费项目信息。
SQL代码:DELETE FROM crzz WHERE id='001';
4. 查询历史记录:
描述:查询住户名为李四的所有租房历史记录。
SQL代码:SELECT * FROM history WHERE name='李四';
5. 添加缴费信息:
描述:向缴费信息表中添加一条新的缴费记录,缴费用户为001,缴费序号为002,房源为101。
SQL代码:INSERT INTO message (fromid, toid, room) VALUES ('001', '002', '101');
6. 修改房源状态:
描述:将房源号为101的房源状态修改为已租。
SQL代码:UPDATE room SET state='已租' WHERE id='101';
7. 查询住户信息:
描述:查询账号为002的住户信息。
SQL代码:SELECT * FROM tenant WHERE id='002';
8. 删除管理员账号信息:
描述:从管理员表中删除账号为002的管理员账号信息。
SQL代码:DELETE FROM admin WHERE id='002';
9. 修改房源租金:
描述:将房源号为101的租金修改为2000元。
SQL代码:UPDATE room SET price=2000 WHERE id='101';
10. 查询所有房源信息:
描述:查询所有房源的房源号、级别、租金、状态和备注信息。
SQL代码:SELECT id, grade, price, state, remarks FROM room;
编写管理员类Admin,其属性包括用户名、密码,要求: (1) 实现对属性“用户名”、“密码”的封装; (2) 添加成员方法实现对私有成员用户名、密码的访问; (3) 在测试类Test01中创建管理员对象并实例化,然后输出管理员信息。 提示:使用关键字private对属性用户名、密码进行封装,禁止外界随意访问。在Admin类中提供以下公共的方法: setName():设置管理员姓名 getName():获取管理员姓名 setPassword():设置管理员密码 getPassword():获取管理员密码
好的,以下是Admin类的代码实现:
```java
public class Admin {
private String username; // 管理员用户名
private String password; // 管理员密码
public void setName(String name) {
this.username = name;
}
public String getName() {
return this.username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return this.password;
}
}
```
在以上代码中,我们使用了关键字`private`对用户名和密码进行了封装,这样就可以防止外界随意访问。同时,我们提供了公共的方法来实现对这两个属性的访问和修改。
以下是Test01类的代码实现,用于测试Admin类:
```java
public class Test01 {
public static void main(String[] args) {
Admin admin = new Admin();
admin.setName("admin");
admin.setPassword("123456");
System.out.println("管理员信息:");
System.out.println("用户名:" + admin.getName());
System.out.println("密码:" + admin.getPassword());
}
}
```
在以上代码中,我们创建了一个Admin对象,并使用`setName()`和`setPassword()`方法来设置管理员的用户名和密码。最后,我们使用`getName()`和`getPassword()`方法来获取管理员的信息,并将其输出到控制台上。