实现验证用户名是否存在、若不存在插入数据库

dw1178769973 2011-04-23 11:10:32
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<%@ include file="conn.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
<!--
.STYLE1 {
font-size: 18px;
font-family: "华文行楷";
}
-->
</style>
</head>

<%
String name=(String)request.getParameter("name");
String pass=(String)request.getParameter("password");
String qrpass=(String)request.getParameter("qrpass");
String admin_name="";

Statement sts=conn.createStatement();
String sql1="select username from admin";
ResultSet rst=sts.executeQuery(sql1);
while(rst.next()){
admin_name=rst.getString(1);

if(name.equals(admin_name))
{
%>
<p> </p>
<p> </p>
<p> </p>
<table width="500" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#00CC99">
<tr>
<td height="30" bgcolor="#00CC99"> </td>
</tr>
<tr>
<td height="35">      
<div align="center">该用户名已存在,请重新输入,<a href="reg.jsp">点此跳转回注册页面</a></div></td>
</tr>
</table>



<%

}

else{
String sql="insert into admin values('"+name+"','"+pass+"')";
int rs=st.executeUpdate(sql);
if(rs!=0){
out.println("注册成功");

}
else{
out.println("注册失败");
}

}
}

%>
</html>
想实现验证用户名是否存在、若不存在插入数据库、,以上代码有何问题、我找不出来啊
...全文
560 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
whut_lcy 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhaohu_love 的回复:]
Statement sts=conn.createStatement();
String sql1="select username from admin";
ResultSet rst=sts.executeQuery(sql1);
while(rst.next()){
admin_name=rst.getString(1);

if(name.equals(admin_name))……
[/Quote]geliable
dragonsky_w 2011-05-12
  • 打赏
  • 举报
回复
首先你要判断输入的用户名是否存在,就要到数据库中去查:
"select userName from tablename where userName = " + userName
如果查到有数据则提示用户不能重复添加同一个userName,如果没有查到该数据的话,就直接insert into ……
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dw1178769973 的回复:]

org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/regok.jsp at line 54

51:
52: else{
53: String sql="insert into admin values('"+name+"','"+pass+"')";
54: ……
[/Quote]

判断用户存在,总得把那么传进去吧:
String sql1="select username from admin"+" where username='"+name+"'";
dw1178769973 2011-04-23
  • 打赏
  • 举报
回复
org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/regok.jsp at line 54

51:
52: else{
53: String sql="insert into admin values('"+name+"','"+pass+"')";
54: int rs=st.executeUpdate(sql);
55: if(rs!=0){
56: out.println("注册成功");
57:


以及说主键必唯一、我设的用户名为主键、
AcHerat 2011-04-23
  • 打赏
  • 举报
回复
你要说明你现在出的问题是怎么回事!
dw1178769973 2011-04-23
  • 打赏
  • 举报
回复
主要是、在用户注册时需要一个判定啊、判断该用户名是否存在的问题
dw1178769973 2011-04-23
  • 打赏
  • 举报
回复
当然加了id、只是现在有id将用户名作为主键了啊
zhuming12345 2011-04-23
  • 打赏
  • 举报
回复
建议LZ建主键的话已一个序列ID作为主键,因为这是基本常识。
dw1178769973 2011-04-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhaohu_love 的回复:]
Statement sts=conn.createStatement();
String sql1="select username from admin";
ResultSet rst=sts.executeQuery(sql1);
while(rst.next()){
admin_name=rst.getString(1);

if(name.equals(admin_name))……
[/Quote]
那hasname如何定义啊
littleJP 2011-04-23
  • 打赏
  • 举报
回复
话说输入java code 是什么样的标签来着??
littleJP 2011-04-23
  • 打赏
  • 举报
回复
以LZ的想法判断用户名是否存在,应该等所有的循环都和name匹配之后,没找到相同的,才执行插入。LZ这个是发现和其中一个不相等就执行插入……
[java-code]
while(rst.next()){
admin_name=rst.getString(1);
if(name.equals(admin_name))
{
hasSame = true ;
break;
}
}
if(hasSame){
//有相同的,就说已经存在
}else{
//插入
}
[/java-code]
不过建议LZ直接用当前的name查询,会更快些吧。就是3L说的那样
zhaohu_love 2011-04-23
  • 打赏
  • 举报
回复
Statement sts=conn.createStatement();
String sql1="select username from admin";
ResultSet rst=sts.executeQuery(sql1);
while(rst.next()){
admin_name=rst.getString(1);

if(name.equals(admin_name))
{
你查询的用户名是很多的,那么你这个IF判断怎么可以让他直接等呢?这也是个“一对多”的问题啊!

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧