java制造null异常,java nullpointexception

场景:

java.lang.NullPointException异常

点击右边红色标题查看本文完整版:java.lang.NullPointException异常

package test;

import java.sql.*;

import testbean.beantest;

public class test

{

private int pwdcheck(String name,String Pwd)

{

int flag=0;

String pass= " ";

ResultSet rs=null;

beantest checkPwd=new beantest();

String strsql= "select UserPwd from login where UserId= ' "+name+ " ' or UserName= ' "+name+ " ' ";

rs=checkPwd.GetRs(strsql);

try

{

while (rs.next())

{

pass=rs.getString( "UserPwd ");

}

rs.close();

if (pass.equals(Pwd))

flag=2;//密码正确

else

flag=3;//密码错误

}

catch (SQLException e)

{

flag=0;

}

return flag;

}

public int checklogin(String name,String Pwd){

ResultSet rs=null;

int count=0;

int flag=0;

beantest namecheck=new beantest();

String strsql= "select count(*) as recount from login where UserId= ' "+name+ " ' or UserName= ' "+name+ " ' ";

rs=namecheck.GetRs(strsql);

try{

while(rs.next())

{

count=rs.getInt( "recount ");

}

rs.close();

if(count==0)

flag=1;//用户存在

else{

if(pwdcheck(name,Pwd)==2)

flag=2;//密码正确

else

flag=3;//密码不正确

}

}

catch(SQLException e){return 0;}

return flag;

}

public static void main(String args[]){

test dd=new test();

System.out.println(dd.checklogin( "ss ", "ss "));

}

}

----------------------运行结果-----------

Exception in thread "main " java.lang.NullPointException

at test.test.checklogin <50>50>

at test.test.checklogin <77>77>

----------------------------------------该怎么改啊----

------解决方法--------------------

at test.test.checklogin <50>50>

数啊,test.java文件的第50行,你有对象没有new过

------解决方法--------------------

==========Beantest类都有问题

代码帮你整理了下,前面那个测试类,自己弄吧

感觉好乱..

package testbean;

import java.sql.*;

public class beantest

{

String driver= "com.microsoft.jdbc.sqlserver.SQLSercerDriver ";

String url= "jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=test ";

String user= "sa ";

String pass= " ";

Connection Conn=null;

Statement stmt=null;

ResultSet rs=null;

public beantest()

{

DbConn();

}

private void DbConn()

{

try{

Class.forName(driver);

Conn=DriverManager.getConnection(url,user,pass);

}

catch(Exception e){

}

}

public String GetRs(String strsql)

{

try

{

stmt=Conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

rs=stmt.executeQuery(strsql);

return rs;

}

catch (SQLException e)

{

return null;

}

}

------解决方法--------------------

select count(*) 以这个开头的永远会返回一行结果集

哪怕没有满足你后面where条件的一个数据库行

另外把as recount 这个去掉在看看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值