01: /*
02: * Enhydra Java Application Server Project
03: *
04: * The contents of this file are subject to the Enhydra Public License
05: * Version 1.1 (the "License"); you may not use this file except in
06: * compliance with the License. You may obtain a copy of the License on
07: * the Enhydra web site ( http://www.enhydra.org/ ).
08: *
09: * Software distributed under the License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
11: * the License for the specific terms governing rights and limitations
12: * under the License.
13: *
14: * The Initial Developer of the Enhydra Application Server is Lutris
15: * Technologies, Inc. The Enhydra Application Server and portions created
16: * by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
17: * All Rights Reserved.
18: *
19: * Contributor(s):
20: *
21: * $Id: UserNumSessionsQuery.java,v 1.2 2006-06-15 13:47:00 sinisa Exp $
22: */
23:
24: package com.lutris.appserver.server.sessionEnhydra.persistent;
25:
26: import java.sql.PreparedStatement;
27: import java.sql.ResultSet;
28: import java.sql.SQLException;
29:
30: import com.lutris.appserver.server.sql.DBConnection;
31: import com.lutris.appserver.server.sql.Query;
32: import com.lutris.appserver.server.user.User;
33:
34: /**
35: * Queries the session associated with a user.
36: *
37: * @version $Revision: 1.2 $
38: * @author Kyle Clark
39: */
40: class UserNumSessionsQuery implements Query {
41:
42: private User user;
43: private static final Integer zero = new Integer(0);
44:
45: /**
46: * @param sessionKey
47: * the key for the session that should be retrieved.
48: */
49: UserNumSessionsQuery(User user) {
50: this .user = user;
51: }
52:
53: /**
54: * Method to query objects from the database.
55: *
56: * @param conn Handle to database connection.
57: * @exception java.sql.SQLException If a database access error occurs.
58: */
59: public ResultSet executeQuery(DBConnection conn)
60: throws SQLException {
61: String sql = "select count (*) num from "
62: + PersistentSessionHome.dbTableName
63: + " where userName = ?";
64: PreparedStatement stmt = conn.prepareStatement(sql);
65: stmt.setString(1, user.getName());
66: return conn.executeQuery(stmt, sql);
67: }
68:
69: /**
70: * Return the number of sessions associated with the user.
71: *
72: * @param rs
73: * the result set from which number of user sessions
74: * will be instantiated.
75: * @return an Integer specifying the number of sessions.
76: * @exception SQLException If a database access error occurs.
77: */
78: public Object next(ResultSet rs) throws SQLException {
79: if (rs.next()) {
80: return new Integer(rs.getString("num"));
81: }
82: return zero;
83: }
84:
85: }
|