日期:2014-05-20  浏览次数:20762 次

写了一个注册小程序,用Struts+DAO,在具体实现方法中出了点问题
以下是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;   }
}


------解决方案--------------------
运行后出错?错在哪里啊,贴出来
------解决方案--------------------
你的flag是int型,后面用flag=OK;你return flag后OK是什么型啊?
------解决方案--------------------
return flag=ERROR_USER_EXISTS; 这样return不会有问题吗?
------解决方案--------------------
select name from person where id ' "+person.getName()+ " ' ";
id和 ' "+person.getName()+ " '中间不用符号?
------解决方案--------------------
数据库没连接上??
------解决方案--------------------
得到连接的代码独立出来从连接池取啊
------解决方案--------------------
select name from person where id ' "+person.getName()+ " ' ";
你那个where条件,字段和值之间没有操作符,怎么也得有个等号吧
------解决方案--------------------
感觉好像是数据库链接问题