写了一个注册小程序,用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条件,字段和值之间没有操作符,怎么也得有个等号吧
------解决方案--------------------感觉好像是数据库链接问题