if (pwd.equals(cnf_pwd)) { long val = db.addUser(user, pwd); if (val > 0) { Toast.makeText(RegisterActivity.this, "注册成功。", Toast.LENGTH_SHORT).show(); finish(); } else { Toast.makeText(RegisterActivity.this, "注册失败!", Toast.LENGTH_SHORT).show(); } } else { Toast.makeText(RegisterActivity.this, "两次密码输入不一致,请重新输入。", Toast.LENGTH_SHORT).show(); }
时间: 2024-01-11 17:05:19 浏览: 20
这段代码是什么意思?
这段代码是用于注册用户的逻辑判断。首先,如果用户输入的密码和确认密码相同,就调用db.addUser()方法将用户名和密码添加到SQLite数据库中,并将返回的行号val与0进行比较。如果val大于0,则表示注册成功,弹出"注册成功"的提示,并关闭当前的Activity。否则,弹出"注册失败"的提示。如果用户输入的密码和确认密码不一致,则弹出"两次密码输入不一致,请重新输入"的提示。通常,这段代码会在用户点击"注册"按钮后执行,用于判断用户输入的信息是否符合要求,并根据判断结果给予相应的提示。
相关问题
优化这段代码if (ResMeta.PROTOCOL_HTTPS.equals(token.getLoginProtocol()) || ResMeta.PROTOCOL_HTTP.equals(token.getLoginProtocol())) { ssoTicket.setHostDomainName(token.getTargetIp()); ssoTicket.setWebappUrl(token.getLoginProtocol() + "://" + token.getTargetIp()); ssoTicket.setAgreementType(token.getLoginProtocol()); if (!this.fillIssuerInfo(ssoTicket, token.getIssuerId(), token.getIssuerToolId(), token.getResType(), sid)) { String err = "加载应用发布错误"; rv.setDetail(err); rv.setStatus(DataResult.STA_SSO_REGISTER_TICKET_ERR); logger.error(err); return null; } } else if (ResMeta.RESTYPE_CSAPP.equals(token.getResType())){ if (!this.fillIssuerInfo(ssoTicket, token.getIssuerId(), token.getIssuerToolId(), token.getResType(), sid)) { String err = "加载应用发布错误"; rv.setDetail(err); rv.setStatus(DataResult.STA_SSO_REGISTER_TICKET_ERR); logger.error(err); return null; } } else if (ResMeta.PROTOCOL_RDP.equals(token.getLoginProtocol())) { if (ssoAcc != null && ssoAcc.getWinAccType() == AccMeta.WIN_ACC_DOMAIN_TYPE) { this.fillHostDomain(ssoAcc, ssoTicket, token.getAccName()); } else if (resInfo.getHostName() != null && resInfo.getHostName().length() > 0) { ssoTicket.setAcc(resInfo.getHostName() + "\\" + ssoTicket.getAcc()); } } else if (ResMeta.PROTOCOL_SSH2.equals(token.getLoginProtocol()) || ResMeta.PROTOCOL_SSH1.equals(token.getLoginProtocol()) || ResMeta.PROTOCOL_TELNET.equals(token.getLoginProtocol())) { CMDSSOTicket cmdTicket = (CMDSSOTicket) ssoTicket; /* 设置提权(原5.0的扩展策略)如果存在工单号 按工单处理 规则授权暂时不支持设置提权 */ if (token.getWorkId() != null && token.getWorkId().length() > 0) { try { SSOWorkOrderAuthz authz = new SSOWorkOrderAuthz(); authz.setWorkOrderId(token.getWorkId()); authz.setResId(token.getResId()); int suPermission = ssoWorkOrderRepository.findWorkOrderAuthcSuPermission(authz); if (SSORegisterMeta.SU_PERMISSION_YES_VALUE == suPermission && ResMeta.SU_PRIVILEGE_YES_VALUE == resInfo.getSuPrivilege()) { cmdTicket.setSu_cmd(resInfo.getSuCmd()); cmdTicket.setSu_pwd(this.getPasswd(resInfo.getId(), resInfo.getSuManagerAcc())); cmdTicket.setSu_pwd_prompt(resInfo.getSuPwdPrompt()); } } catch (Exception e) { } } else if (token.getAuthzId() != null && token.getAuthzId().length() > 0) { try { int suPermission = ssoResroleRepository.findResroleAuthcSuPermission(token.getAuthzId()); if (SSORegisterMeta.SU_PERMISSION_YES_VALUE == suPermission && ResMeta.SU_PRIVILEGE_YES_VALUE == resInfo.getSuPrivilege()) { cmdTicket.setSu_cmd(resInfo.getSuCmd()); cmdTicket.setSu_pwd(this.getPasswd(resInfo.getId(), resInfo.getSuManagerAcc())); cmdTicket.setSu_pwd_prompt(resInfo.getSuPwdPrompt()); } } catch (Exception e) { } }
这段代码可以进行如下优化:
1. 将重复的代码块提取出来,避免代码重复:
```java
if (!this.fillIssuerInfo(ssoTicket, token.getIssuerId(), token.getIssuerToolId(), token.getResType(), sid)) {
String err = "加载应用发布错误";
rv.setDetail(err);
rv.setStatus(DataResult.STA_SSO_REGISTER_TICKET_ERR);
logger.error(err);
return null;
}
```
可以将其提取为一个方法,减少代码冗余。
2. 使用 switch-case 替代多个 if-else if 语句:
```java
switch (token.getLoginProtocol()) {
case ResMeta.PROTOCOL_HTTPS:
case ResMeta.PROTOCOL_HTTP:
ssoTicket.setHostDomainName(token.getTargetIp());
ssoTicket.setWebappUrl(token.getLoginProtocol() + "://" + token.getTargetIp());
ssoTicket.setAgreementType(token.getLoginProtocol());
break;
case ResMeta.RESTYPE_CSAPP:
if (!this.fillIssuerInfo(ssoTicket, token.getIssuerId(), token.getIssuerToolId(), token.getResType(), sid)) {
String err = "加载应用发布错误";
rv.setDetail(err);
rv.setStatus(DataResult.STA_SSO_REGISTER_TICKET_ERR);
logger.error(err);
return null;
}
break;
case ResMeta.PROTOCOL_RDP:
if (ssoAcc != null && ssoAcc.getWinAccType() == AccMeta.WIN_ACC_DOMAIN_TYPE) {
this.fillHostDomain(ssoAcc, ssoTicket, token.getAccName());
} else if (resInfo.getHostName() != null && resInfo.getHostName().length() > 0) {
ssoTicket.setAcc(resInfo.getHostName() + "\\" + ssoTicket.getAcc());
}
break;
case ResMeta.PROTOCOL_SSH2:
case ResMeta.PROTOCOL_SSH1:
case ResMeta.PROTOCOL_TELNET:
CMDSSOTicket cmdTicket = (CMDSSOTicket) ssoTicket;
if (token.getWorkId() != null && token.getWorkId().length() > 0) {
try {
SSOWorkOrderAuthz authz = new SSOWorkOrderAuthz();
authz.setWorkOrderId(token.getWorkId());
authz.setResId(token.getResId());
int suPermission = ssoWorkOrderRepository.findWorkOrderAuthcSuPermission(authz);
if (SSORegisterMeta.SU_PERMISSION_YES_VALUE == suPermission && ResMeta.SU_PRIVILEGE_YES_VALUE == resInfo.getSuPrivilege()) {
cmdTicket.setSu_cmd(resInfo.getSuCmd());
cmdTicket.setSu_pwd(this.getPasswd(resInfo.getId(), resInfo.getSuManagerAcc()));
cmdTicket.setSu_pwd_prompt(resInfo.getSuPwdPrompt());
}
} catch (Exception e) {
}
} else if (token.getAuthzId() != null && token.getAuthzId().length() > 0) {
try {
int suPermission = ssoResroleRepository.findResroleAuthcSuPermission(token.getAuthzId());
if (SSORegisterMeta.SU_PERMISSION_YES_VALUE == suPermission && ResMeta.SU_PRIVILEGE_YES_VALUE == resInfo.getSuPrivilege()) {
cmdTicket.setSu_cmd(resInfo.getSuCmd());
cmdTicket.setSu_pwd(this.getPasswd(resInfo.getId(), resInfo.getSuManagerAcc()));
cmdTicket.setSu_pwd_prompt(resInfo.getSuPwdPrompt());
}
} catch (Exception e) {
}
}
break;
}
```
使用 switch-case 可以使代码更加简洁和易读。
这些优化可以提高代码的可维护性和可读性。
class BanJi(db.Model): __tablename__ = 'BanJi' id = db.Column(db.Integer, unique=True, primary_key=True) name = db.Column(db.String(124), name='班级名') banzhuren = db.Column(db.String(124), name='班主任') user = db.relationship("User", backref="banji") kecheng = db.relationship("KeCheng", backref="banji") def __repr__(self): return "<{}班级>".format(self.name) class User(db.Model): __tablename__ = 'User' id = db.Column(db.Integer, unique=True, primary_key=True) name = db.Column(db.String(124),name='账号') email = db.Column(db.String(124), name='邮箱') pwd = db.Column(db.String(124), name='密码') 家庭成员数 = db.Column(db.FLOAT) 家庭情况 = db.Column(db.TEXT) banji_id = db.Column(db.Integer, db.ForeignKey('BanJi.id')) chengji = db.relationship("ChengJi", backref="user")注释这段代码
这段代码是一个 Python Flask 应用中的 SQLAlchemy 数据库模型定义,用于定义班级、用户以及成绩等数据表的结构。其中 BanJi 类表示班级,包含 id、name、banzhuren 等属性,同时与 User、KeCheng 类建立了一对多的关系;User 类表示用户,包含 id、name、email、pwd、家庭成员数、家庭情况等属性,同时与 BanJi、ChengJi 类建立了一对多的关系;ChengJi 类表示成绩,包含 id、score、user_id、kecheng_id 等属性,同时与 User、KeCheng 类建立了多对一的关系。这段代码注释清晰,易于理解。