日期:2014-05-18  浏览次数:20638 次

把用户注册的信息写入Mysql数据库的问题
我做了一个注册会员的JSP网页(tomcat+Mysql),在用户提交信息后,我想让把它写入数据库,在这里为了简化问题,我假设这个表只有三个字段:id(用来唯一标识用户名),name,pwd.   `id`   int(11)   NOT   NULL   auto_increment,`name`   varchar(20)   default   NULL,     `pwd`   varchar(20)default   NULL,PRIMARY   KEY     (`id`)
我已做过测试,tomcat已连上了Mysql数据库.我的设计是假如id为0(即第一注册者遇到的情况,就设其id为1,以后每个的注册者id加1.还有请问实际做成网站,下面的代码中的host中的localhost是不是应该改为我机子的IP?

<%@   page   contentType= "text/html;charset=gb2312 "%>
<%@   page   import= "java.sql.* "   %>        
  <html>    
<%!  
public   String   decodeCode(String   s){  
try{  
if   (s   ==   null)   return   null;  
else   return   new   String(s.getBytes( "gb2312 "), "iso-8859-1 ");  
}  
catch(Exception   e){   }  
return   null;
}  
%>
<%          
try{
String   name=request.getParameter( "name ");
String   pwd=request.getParameter( "pwd ");
String   host= "localhost ";
String   user= "root ";    
String   pw= "11111 ";    
String   db= "myweb ";    
String   tab= "user ";    
Class.forName( "com.mysql.jdbc.Driver ").newInstance();
String   url= "jdbc:mysql:// "+host+ "/ "+db;
Connection   con=DriverManager.getConnection(url,user,pw);
Statement   st=con.createStatement();
ResultSet   rs=st.executeQuery(tab);
rs.last();
if(rs.wasNull()){
String   sql= "INSERT   INTO   "+tab+ "VALUES(1,` "+decodeCode(name)+ "`,` "+decodeCode(pwd)+ "`) ";
st.executeUpdate(sql);
st.close();
con.close();
}
else{
int   i=rs.getInt( "id ");
String   sql= "INSERT   INTO   "+tab+ "VALUES( "+(i+1)+ ",` "+decodeCode(name)+ "`,` "+decodeCode(pwd)+ "`) ";
st.executeUpdate(sql);
st.close();
con.close();
}
}
%>
<%}catch(Exception   e){out.println( "数据库连接不成功 ");}%>
<h1> 注册成功,已写入数据库 </h1>
    </body>
    </html>

------解决方案--------------------
先说一下你的mysql驱动,我不知道你用的是不是合法的jdbc驱动,我连mysql都是用org.gjt.mm.mysql.Driver,还有tab这个变量是指什么呢?怎么不是条sql语句?对于statement不是很清楚,从来都是用preparestatment的,还有,你这明显是编译错误,只会是你的程序的问题
------解决方案--------------------
String url= "jdbc:mysql:// "+host+ "/ "+db?user&pw;

你的语句都不能连接到数据库的

------解决方案--------------------
String sql= "INSERT INTO login VALUES(1, 'jrs05 ', '666 ',1, 'jrs05@163.com ', '我是谁 ', 'qqqqqq ') "后少了分号