当前位置: 代码迷 >> Java Web开发 >> 用javaBean进行数据库操作(原来的已解决,新又有个问题)
  详细解决方案

用javaBean进行数据库操作(原来的已解决,新又有个问题)

热度:122   发布时间:2007-11-19 16:15:21.0
用javaBean进行数据库操作(原来的已解决,新又有个问题)


新问题:我想查询数据库,内容用自己的参数输入,但老不对,只能输出failed(这是我自己做测试用的,成功的话为success)大家帮忙看看啊

package message;
import java.sql.*;
public class MessageLogin
{
private String name,password;
public void setname(String name){
this.name=name;
}
public String getname(){
return name;
}
public String getpassword(){
return password;
}
public void setpassword(String password){
this.password=password;
}


public String getMessage(String name,String password){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=null;
Statement stmt=null;
ResultSet rs=null;

con=DriverManager.getConnection("jdbc:odbc:netbook","sa","442352");
stmt=con.createStatement();
String str="select *from jacky.dbo.message";
rs=stmt.executeQuery(str);
while(rs.next()){

String na=rs.getString("name");
String ps=rs.getString("password");
System.out.println(na);//这两个都是能正确输出的
System.out.println(ps);

if(na.equals(name)&&password.equals(ps)){
System.out.println("success");
}
else{
System.out.println("failed");
}
}
}
catch(Exception e){

}
}
public static void main(String args[]){
MessageLogin login=new MessageLogin();
String str=login.getMessage("jacky","123");//测试语句
}
}

[此贴子已经被作者于2007-11-20 20:40:55编辑过]

搜索更多相关主题的帖子: 数据库  javaBean  

----------------解决方案--------------------------------------------------------
思想是正确的.
不过你的JAVABEAN似乎并没有写完哦:你写了SQL语句后,怎么没看到有运行的语句呀.

在写好一个BEAN后,最好先测试一下它的正确性,然后再使用它,这样会少很多麻烦.
----------------解决方案--------------------------------------------------------


按ls说的,加了测试语句,运行结果是数据库是增加了“jacky”这个数据,那为什么用到jsp就不行了呢?
package message;
import java.sql.*;
public class MessageData{
private String name,email,title,content;
public void setname(String name){
this.name=name;
}
public String getname(){
return name;
public void add(String name){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(Exception e){}
Connection con=null;
PreparedStatement stmt=null;
ResultSet rs=null;
try{
con=DriverManager.getConnection("jdbc:odbc:netbook","sa","442352");
String str="insert into jacky.dbo.message (name)values(?)";
stmt=con.prepareStatement(str);
//String st=request.getParameter("name");
String st=name;

stmt.setString(1,st);
stmt.executeUpdate();
con.close();

}
catch(Exception e){}
}
public static void main(String args[]){
MessageData data=new MessageData();
data.add("jacky");//新增加的测试语句
}
}


----------------解决方案--------------------------------------------------------
这样做,理论上是没有错的呀.

请问你的MessageData.class放在什么地方.
----------------解决方案--------------------------------------------------------
已经搞通了,TOMCAT跟数据库都要重启才可以的,呵呵,谢谢啊
----------------解决方案--------------------------------------------------------
大家帮帮忙啊
----------------解决方案--------------------------------------------------------
if(na.equals(name)&&password.equals(ps)){
System.out.println("success");
}

请问,你在比较之前,name和password的值是多少。
----------------解决方案--------------------------------------------------------
public static void main(String args[]){
MessageLogin login=new MessageLogin();
String str=login.getMessage("jacky","123");//测试语句

最后这里的主函数有输入的啊

----------------解决方案--------------------------------------------------------
String na=rs.getString("name");
String ps=rs.getString("password");
你在这两句后面再加下面两句试试:
na = na.trim();
ps = ps.trim();
----------------解决方案--------------------------------------------------------
这样果然就可以了,可以说下原因么???
----------------解决方案--------------------------------------------------------
  相关解决方案