Java是否要时常检查null_java,检查一个字符串是否不为null而且不空?

在我的web应用程序中,我有一个搜索字段,里面有一些字符串和组合框。

所以,我发送两个参数到远程函数中。

我想检查用户输入不是null,不是空的。因此,我可以构造一个准确的查询。

public ArrayList findEmployees(String str, int dep)

throws ClassNotFoundException, SQLException{

System.out.println("List IN");

ArrayList list = new ArrayList();

java.sql.Statement stmt;

java.sql.ResultSet rs;

Class.forName("com.mysql.jdbc.Driver");

String url = "jdbc:mysql://localhost:3306/general";

java.sql.Connection con = DriverManager.getConnection(url, "root", "1234");

System.out.println("URL: " + url);

System.out.println("Connection: " + con);

stmt = con.createStatement();

stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

String qry = "SELECT * FROM PERSON ";

String werstr = "WHERE";

if(str!= null && str != "**here i want to check the 'str' is empty or not." )

{

qry += werstr + " NAME LIKE '%"+str+"%'";

System.out.println(qry);

werstr = "AND";

}

if(dep != 0)

{

qry += werstr + "dept="+dep;

}

qry += ";";

System.out.println(qry);

rs = stmt.executeQuery(qry);

while (rs.next()) {

Employee employee = new Employee();

String name = rs.getString(2);

employee.setName(name);

int id = rs.getInt(1);

employee.setId(id);

int dept = rs.getInt(4);

employee.setDept(dept);

int age = rs.getInt(3);

employee.setAge(age);

list.add(employee);

}

System.out.println("List Out");

return list;

}

做这件事的最好方法是什么?

isEmpty() 方法怎么样?

if(str != null && !str.isEmpty())

一定要在这个以使用部分&&,因为如果第一部分失败,java将不会进行评估第二部分,从而保证如果str是null,你不会从结构str.isempty()中获得空指针异常。

当心,这只是从java SE 1.6起可用的。在以前的版本中你必须检查结构length() = = 0。

并且忽略空白:

if(str != null && !str.trim().isEmpty())

包装在一个方便的功能:

public static boolean empty( final String s ) {

// Null-safe, short-circuit evaluation.

return s == null || s.trim().isEmpty();

}

public static boolean empty( final String s ) {

// Null-safe, short-circuit evaluation.

return s == null || s.trim().isEmpty();

}

成为:

if( !empty( str ) )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值