java获取内容为空_java-从属性获取空值

在Dynamic Web应用程序中,我遇到了一些问题,因此我要发布代码:

这是我的控制器(Servlet):

String select = request.getParameter("select"); // getting proper value

String search = request.getParameter("search"); // getting proper value

request.setAttribute("select", select);

request.setAttribute("search", search);

System.out.println("Select : "+select+" Search : "+search);

int page = 1;

int recordsPerPage = 20;

if(request.getParameter("page") != null)

page = Integer.parseInt(request.getParameter("page"));

SearchDAO searchDAO=new SearchDAO();

List list=searchDAO.searchAllUsers((page-1)*recordsPerPage,recordsPerPage,select,search);

int noOfRecords = searchDAO.getNoOfRecords();

System.out.println("4> NoOfRecords : "+noOfRecords);

int noOfPages = (int) Math.ceil(noOfRecords * 1.0 / recordsPerPage);

System.out.println("5> NoOfPages : "+noOfPages);

request.setAttribute("searchList", list);

System.out.println("6> List : "+list);

request.setAttribute("noOfPages", noOfPages); // Getting null value, 0

request.setAttribute("currentPage", page); // Getting null value, 0

RequestDispatcher view = request.getRequestDispatcher("/jsp/Securex_Anti_Theft_SearchUserList.jsp");

view.forward(request, response);

这是我的DAO(简单的Java类):

public class SearchDAO {

private int noOfRecords;

Connection connection;

Statement stmt;

public List searchAllUsers(int offset ,int noOfRecords,String select,String search){

private static Connection getConnection() throws SQLException,ClassNotFoundException{

Connection con = ConnectionFactory.getInstance().getConnection();

return con; //ConnectionFactory is class for making the connection to DB.

}

String query="select SQL_CALC_FOUND_ROWS * from info where '"+select+

"' like '%"+search+"%' order by serialNo asc limit

" + offset + " , " + noOfRecords;

List list1 = new ArrayList();

User user1=null;

try {

connection = getConnection();

stmt = connection.createStatement();

ResultSet rs=stmt.executeQuery(query);

System.out.println("1> :"+rs);

while(rs.next()){

user1=new User();

user1.setSerial(rs.getInt(1));

System.out.println("I'm inside a loop");

user1.setName(rs.getString(2));

user1.setEmail(rs.getString(3));

list1.add(user1);

}

rs.close();

rs = stmt.executeQuery("SELECT FOUND_ROWS()");

System.out.println("2> :" +rs);

if(rs.next())

this.noOfRecords = rs.getInt(1);

System.out.println("3> :" +this.noOfRecords);

} catch (SQLException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}finally

{

try {

if(stmt != null)

stmt.close();

if(connection != null)

connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

return list1;

}

public int getNoOfRecords() {

return noOfRecords;

}

}

输出为:

1> :com.mysql.jdbc.JDBC4ResultSet@1af8502

2> :com.mysql.jdbc.JDBC4ResultSet@455aa8

3> :0

4> NoOfRecords : 0

5> NoOfPages : 0

6> List : []

我有相同的servlet和类来选择所有用户,并且工作正常,但是从这里获取了空值.即使ResultSet也会返回值,即com.mysql.jdbc.JDBC4ResultSet@88d319,但是无法从DAO到servlet中获取值.

从//属性获取null值,对我来说一切都应该很好,但仍然获取null值,请指出我的错误,如果我做了任何事情

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是AE9系列的java开发包 Fetching data 数据从一张表或者一个layer中查询得出。SeQuery对象则是用于准备并执行一个查询操作,建立并执行一个查询的步骤如下: 1.建立一个SeSqlConstruct对象,这个对象中有想要查询的table/layer的名字。你也可以在SeSqlConstruct的构造函数中指定一个where查询语句。 SeLayer layer = new SeLayer( conn, layerName, spatialColumn ); SeSqlConstruct sqlConstruct = new SeSqlConstruct( layer.getName() ); 2.创建一个String数组以存储要查询的表的列名。 String[] cols = new String[2]; cols[0] = new String("ColumnOneName"); cols[1] = layer.getSpatialColumn(); 3.定义,准备并执行查询。 // Create a query stream between the client and server SeQuery query = new SeQuery( conn, cols, sqlConstruct ); query.prepareQuery(); query.execute(); 4.取查询结果的第一行存入SeRow对象中。 SeRow row = query.fetch(); 5.取得SeRow的列结构。 // Get the definitions of all the columns retrieved SeColumnDefinition[] colDefs = SeRow.getColumns(); 6.先获取第一列的数据类型,然后获取该单元上的数据。 //获取第一列的数据类型。 int colNum = 0; int dataType = colDefs[colNum].getType; //假定数据类型只有String和Shape两种。 //可以自己添加一些语句以支持ArcSDE列的所有数据类型。 // ( See Working with Layers Example ) switch( dataType ) { case SeColumnDefinition.TYPE_STRING: System.out.println(colDef.getName()+ row.getString(colNum)); break; case SeColumnDefinition.TYPE_SHAPE: System.out.println(colDef.getName() ); SeShape shape = row.getShape(colNum); //调用一个函数以获取Shape的属性。 break; } 7.关闭查询。 query.close(); 注意:为了取出查询结果所有的行,可以反复的调用query.fetch直至SeRow对象返回为空值为止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值