求助:请各位老大帮忙看看在JAVA中处理NULL的问题,不盛感激!
我的数据库查询BEAN如下DCBquery.java:
package DCB;
import java.sql.*;
import DBconnect.*;
public class DCBquery{
private String table_name_sql;//定义表名
private ResultSet rs = null;//定义结果集类
DBconnect cc = new DBconnect();
Connection conn= cc.getConnect();//建立连接类
Statement stmt=conn.createStatement();
/**
* 该方法是以传递过来的参数提取该表的记录
* @return
*/
public ResultSet rs_record() {
String sql="select * from "+this.getTable_name_sql();
try{
rs = stmt.executeQuery(sql);
}
catch(Exception e){
System.out.println("rs_record=" +e.getMessage());
}
return rs;
}
public DCBquery() throws Exception {
}
/**
* 该方法返回该表的记录总数
* @return
* @throws Exception
*/
public int sum() throws Exception{
String sql_sum = "select count(rowid) as t from "+this.getTable_name_sql();
rs=stmt.executeQuery(sql_sum);
rs.next();
if(rs != null){
sum = rs.getInt("t");
return sum;
}
else{
return 0;
}
}
/**
* 该方法是获得一个表名或者是一个表名加条件的形式
* 比如:dcb01或者dcb01 where jh='DW112'的格式
* @return
*/
public String getTable_name_sql() {
return table_name_sql;
}
/**
* 该方法是设置一个表名或者是一个表名加条件的形式
* @param table_name_sql 表名或者表名加条件
* 比如:dcb01或者dcb01 where jh='DW112'的格式
*/
public void setTable_name_sql(String table_name_sql) {
this.table_name_sql = table_name_sql;
}
}
下面是通过该查询页面显示的数据D_EJDW.jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="DCB.*"%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>二级单位代码</title>
<link rel=stylesheet href="../sstyle.css" type="text/css">
<script language="JavaScript" src="../js/sys_alert.js"></script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="100%">
<p align="center"><b>二级单位代码</b></td>
</tr>
<tr>
<td width="100%"><font size="2"> <a href="D_EJDWAdd.jsp">录入二级单位代码</a></font></td>
</tr>
<tr>
<td width="100%"> <table border="1" cellpadding="1" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
<tr height="20">
<td width="6%" align="center"><font size="2"><b>代码</b></font></td>
<td width="17%" align="center"><font size="2"><b>单位名称</b></font></td>
<td width="10%" align="center"><font size="2"><b>局级单位代码</b></font></td>
<td width="54%" align="center"><font size="2"><b>备注</b></font></td>
<td width="7%" align="center"><b><font size="2">修改</font></b></td>
<td width="6%" align="center"><b><font size="2">删除</font></b></td>
</tr>
<%
DCBquery D_EJDW=new DCBquery();
D_EJDW.setTable_name_sql("D_EJDW");
int curPages = Pagination.curPages(Pagination.strPage(request,"page"));
Pagination.setRows(10);//每页显示10条
int totalPages = Pagination.getPages(D_EJDW.sum());//取出总页数
if(D_EJDW.sum()>0){
ResultSet rs = Pagination.getPageSet(D_EJDW.rs_record(),curPages);
while(rs.next()){
%>
<tr align="center">
<td><%=rs.getString("DM")%></td>
<td><%=rs.getString("DWMC")%></td>
<td><%=rs.getString("JJDWDM")%></td>
<td><%=rs.getString("BZ")%></td>
</tr>
<%
}
rs.close();
%>
</table></td>
</tr>
</table>
</body>
</html>
我的问题是这样的:当通过上面的查询BEAN:DCBquery.java查询出数据的时候,下面显示的页面,如果字段中有空值NULL的时候,会显示在下面,当然有个比较笨的办法是可以在取出每个字段的数据比如在:rs.getString("DM")之前可以用个IF语句分别判断每个字段,这样可以判断;
如果几张表还可以,如果表多的话,很浪费时间的;我的问题是有没有比较简单的方法,直接在上面的BEAN里面处理一下,直接从select * from 表名;取出的数据处理一下,当然也有的想法是通过VAL这个函数判断,但是这样也会写不少的SQL语句,有没有更简单的方法,请各位高手给小弟指点一下!