以下是registration的impl类的具体代码!按我自己理解的写的,运行后出错!请各位大侠执教!!!!!
public class RDAOImpl implements RDAO {
public int flag;
    String name;
public int save(Person person)throws Exception {

 Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/myproject", "root", "libonan");

Statement st=conn.createStatement();
String sql="select name from person where id'"+person.getName()+"'";
System.out.println(sql);
//st.setString(1, person.getName());  //
ResultSet rs=st.executeQuery(sql);
if(rs.next()){                         //如果结果集里有结果,证明该用户名已存在,返回错误信息
return flag=ERROR_USER_EXISTS;
}else{                                 //否则执行插入语句,创建新用户
//st.clearParameters();
st=conn.prepareStatement("insert into person values('"+person.getName()+"','"+person.getId()+"','"+person.getPassword()+"')");
//st.setString(1, person.getName());
//st.setString(2, person.getPassword());
name=person.getName();
flag=OK;
}
rs.close();
st.close();
conn.close();
return flag;     
    
}
public String getUserid(){ return name; }
}

解决方案 »

  1.   

    你的flag是int型,后面用flag=OK;你return flag后OK是什么型啊?
      

  2.   

    return flag=ERROR_USER_EXISTS; 这样return不会有问题吗?
      

  3.   

    select name from person where id'"+person.getName()+"'";
    id和'"+person.getName()+"'中间不用符号?
      

  4.   

    以下是错误信息:
    ** BEGIN NESTED EXCEPTION ** java.net.ConnectException
    MESSAGE: Connection refused: connectSTACKTRACE:java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.shuye100.impl.RDAOImpl.save(RDAOImpl.java:17)
    at org.shuye100.struts.action.RegistAction.execute(RegistAction.java:47)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    ** END NESTED EXCEPTION **Last packet sent to the server was 0 ms ago.
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2820)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.shuye100.impl.RDAOImpl.save(RDAOImpl.java:17)
    at org.shuye100.struts.action.RegistAction.execute(RegistAction.java:47)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
      

  5.   

    OK也是整形的!以下是接口定义:
    public interface RDAO {
    public static final int OK = 0;
    public static final int ERROR_USER_EXISTS = 1;
    public static final int ERROR_UNKNOWN = 2; public int save(Person person)throws Exception; public String getUserid();
    }
      

  6.   

    select name from person where id'"+person.getName()+"'";
    你那个where条件,字段和值之间没有操作符,怎么也得有个等号吧