You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by ho...@apache.org on 2001/12/19 02:48:58 UTC
cvs commit: jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql ResultImpl.java RowImpl.java ResultMetaDataImpl.java
horwat 01/12/18 17:48:58
Modified: standard/examples/web/sql QueryDirect.jsp QueryIterate.jsp
QueryParam.jsp Update.jsp
standard/src/org/apache/taglibs/standard/tag/common/sql
ResultImpl.java RowImpl.java
ResultMetaDataImpl.java
Log:
Implement 0-based indexing (as opposed to the JDBC 1-based indexing) for Rows and Columns to be consistent with the behavior of other JSTL tags. Modify sql web application to reflect changes.
Revision Changes Path
1.2 +23 -22 jakarta-taglibs/standard/examples/web/sql/QueryDirect.jsp
Index: QueryDirect.jsp
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/examples/web/sql/QueryDirect.jsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- QueryDirect.jsp 2001/12/12 21:44:18 1.1
+++ QueryDirect.jsp 2001/12/19 01:48:58 1.2
@@ -20,6 +20,7 @@
/>
<sql:transaction dataSource="$example">
+
<sql:update var="newTable" dataSource="$example">
create table mytable (
nameid int not null,
@@ -37,16 +38,20 @@
<sql:update var="updateCount" dataSource="$example">
INSERT INTO mytable VALUES (3,'Paul van Dyk')
</sql:update>
-</sql:transaction>
+ <sql:query var="deejays" dataSource="$example">
+ SELECT * FROM mytable
+ </sql:query>
-<sql:query var="deejays" dataSource="$example">
- SELECT * FROM mytable
-</sql:query>
+</sql:transaction>
<hr>
<h2>Using the Row index and Column name</h2>
+Row[0].get('nameid'): <c:expr value="$deejays.rows[0].get('nameid')" />
+<br>
+Row[0].get('name'): <c:expr value="$deejays.rows[0].get('name')" />
+<br>
Row[1].get('nameid'): <c:expr value="$deejays.rows[1].get('nameid')" />
<br>
Row[1].get('name'): <c:expr value="$deejays.rows[1].get('name')" />
@@ -55,49 +60,45 @@
<br>
Row[2].get('name'): <c:expr value="$deejays.rows[2].get('name')" />
<br>
-Row[3].get('nameid'): <c:expr value="$deejays.rows[3].get('nameid')" />
-<br>
-Row[3].get('name'): <c:expr value="$deejays.rows[3].get('name')" />
-<br>
<hr>
<h2>Using the Row index and Column object</h2>
-Row[1]Cols[1]: <c:expr value="$deejays.rows[1].columns[1]" />
+Row[0]Cols[0]: <c:expr value="$deejays.rows[0].columns[0]" />
<br>
-Row[1]Cols[2]: <c:expr value="$deejays.rows[1].columns[2]" />
+Row[0]Cols[1]: <c:expr value="$deejays.rows[0].columns[1]" />
<br>
-Row[2]Cols[1]: <c:expr value="$deejays.rows[2].columns[1]" />
+Row[1]Cols[0]: <c:expr value="$deejays.rows[1].columns[0]" />
<br>
-Row[2]Cols[2]: <c:expr value="$deejays.rows[2].columns[2]" />
+Row[1]Cols[1]: <c:expr value="$deejays.rows[1].columns[1]" />
<br>
-Row[3]Cols[1]: <c:expr value="$deejays.rows[3].columns[1]" />
+Row[2]Cols[0]: <c:expr value="$deejays.rows[2].columns[0]" />
<br>
-Row[3]Cols[2]: <c:expr value="$deejays.rows[3].columns[2]" />
+Row[2]Cols[1]: <c:expr value="$deejays.rows[2].columns[1]" />
<br>
<hr>
<h2>Using the Row and Column indexes</h2>
-Row[1].get(1): <c:expr value="$deejays.rows[1].get(1)" />
+Row[0].get(0): <c:expr value="$deejays.rows[0].get(0)" />
<br>
-Row[1].get(2): <c:expr value="$deejays.rows[1].get(2)" />
+Row[0].get(1): <c:expr value="$deejays.rows[0].get(1)" />
<br>
-Row[2].get(1): <c:expr value="$deejays.rows[2].get(1)" />
+Row[1].get(0): <c:expr value="$deejays.rows[1].get(0)" />
<br>
-Row[2].get(2): <c:expr value="$deejays.rows[2].get(2)" />
+Row[1].get(1): <c:expr value="$deejays.rows[1].get(1)" />
<br>
-Row[3].get(1): <c:expr value="$deejays.rows[3].get(1)" />
+Row[2].get(0): <c:expr value="$deejays.rows[2].get(0)" />
<br>
-Row[3].get(2): <c:expr value="$deejays.rows[3].get(2)" />
+Row[2].get(1): <c:expr value="$deejays.rows[2].get(1)" />
<br>
<hr>
<h2>Getting the MetaData from the Column Object</h2>
-Col[1]MetaData: <c:expr value="$deejays.metaData.columns[1].name" />
+Col[0]MetaData: <c:expr value="$deejays.metaData.columns[0].name" />
<br>
-Col[2]MetaData: <c:expr value="$deejays.metaData.columns[2].name" />
+Col[1]MetaData: <c:expr value="$deejays.metaData.columns[1].name" />
<sql:update var="newTable" dataSource="$example">
drop table mytable
1.2 +15 -13 jakarta-taglibs/standard/examples/web/sql/QueryIterate.jsp
Index: QueryIterate.jsp
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/examples/web/sql/QueryIterate.jsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- QueryIterate.jsp 2001/12/12 21:44:18 1.1
+++ QueryIterate.jsp 2001/12/19 01:48:58 1.2
@@ -19,6 +19,7 @@
/>
<sql:transaction dataSource="$example">
+
<sql:update var="newTable" dataSource="$example">
create table mytable (
nameid int not null,
@@ -26,7 +27,6 @@
constraint pk_mytable primary key (nameid)
)
</sql:update>
-</sql:transaction>
<sql:update var="updateCount" dataSource="$example">
INSERT INTO mytable VALUES (1,'Paul Oakenfold')
@@ -39,16 +39,18 @@
</sql:update>
-<sql:query var="deejays" dataSource="$example">
- SELECT * FROM mytable
-</sql:query>
+ <sql:query var="deejays" dataSource="$example">
+ SELECT * FROM mytable
+ </sql:query>
+
+</sql:transaction>
<hr>
<h2>Iterating on each Row using the MetaData</h2>
<table border="1">
- <c:forEach var="rows" begin="1" items="$deejays.rows">
+ <c:forEach var="rows" items="$deejays.rows">
<tr>
<td> id: <c:expr value="$rows.get('nameid')"/> </td>
<td> name: <c:expr value="$rows.get('name')"/> </td>
@@ -60,7 +62,7 @@
<h2>Iterating on each Column getting the MetaData</h2>
-<c:forEach var="metaData" begin="1" items="$deejays.metaData.columns">
+<c:forEach var="metaData" items="$deejays.metaData.columns">
metaData: <c:expr value="$metaData.name"/> <br>
</c:forEach>
@@ -69,9 +71,9 @@
<h2>Iterating over each Row of the result</h2>
<table border="1">
- <c:forEach var="rows" begin="1" items="$deejays.rows">
+ <c:forEach var="rows" items="$deejays.rows">
<tr>
- <c:forEach var="column" begin="1" items="$rows.columns">
+ <c:forEach var="column" items="$rows.columns">
<td><c:expr value="$column"/></td>
</c:forEach>
</tr>
@@ -83,8 +85,8 @@
<h2>Iterating over Columns without knowing the name or index</h2>
<table border="1">
- <c:forEach var="rows" begin="1" items="$deejays.rows">
- <c:forEach var="column" begin="1" items="$rows.columns">
+ <c:forEach var="rows" items="$deejays.rows">
+ <c:forEach var="column" items="$rows.columns">
<tr>
<td>Name: <c:expr value="$column.name"/></td>
<td>Value: <c:expr value="$column"/></td>
@@ -99,13 +101,13 @@
<table border="1">
<tr>
- <c:forEach var="metaData" begin="1" items="$deejays.metaData.columns">
+ <c:forEach var="metaData" items="$deejays.metaData.columns">
<th><c:expr value="$metaData.name"/> </th>
</c:forEach>
</tr>
- <c:forEach var="rows" begin="1" items="$deejays.rows">
+ <c:forEach var="rows" items="$deejays.rows">
<tr>
- <c:forEach var="column" begin="1" items="$rows.columns">
+ <c:forEach var="column" items="$rows.columns">
<td><c:expr value="$column"/></td>
</c:forEach>
</tr>
1.2 +4 -3 jakarta-taglibs/standard/examples/web/sql/QueryParam.jsp
Index: QueryParam.jsp
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/examples/web/sql/QueryParam.jsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- QueryParam.jsp 2001/12/12 21:44:18 1.1
+++ QueryParam.jsp 2001/12/19 01:48:58 1.2
@@ -23,6 +23,7 @@
/>
<sql:transaction dataSource="$example">
+
<sql:update var="newTable" dataSource="$example">
create table mytable (
nameid int not null,
@@ -46,14 +47,14 @@
<sql:param value="$newName"/>
</sql:update>
-</sql:transaction>
-
<sql:query var="deejay" dataSource="$example">
SELECT * FROM mytable
</sql:query>
+</sql:transaction>
+
<table border="1">
- <c:forEach var="rows" begin="1" items="$deejay.rows">
+ <c:forEach var="rows" items="$deejay.rows">
<tr>
<td><c:expr value="$rows.get('nameid')"/></td>
<td><c:expr value="$rows.get('name')"/></td>
1.2 +12 -10 jakarta-taglibs/standard/examples/web/sql/Update.jsp
Index: Update.jsp
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/examples/web/sql/Update.jsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Update.jsp 2001/12/12 21:44:18 1.1
+++ Update.jsp 2001/12/19 01:48:58 1.2
@@ -21,6 +21,7 @@
<hr>
<sql:transaction dataSource="$example">
+
<sql:update var="newTable" dataSource="$example">
create table mytable (
nameid int not null,
@@ -28,7 +29,6 @@
constraint pk_mytable primary key (nameid)
)
</sql:update>
-</sql:transaction>
<h2>Inserting three rows into table</h2>
<sql:update var="updateCount" dataSource="$example">
@@ -44,20 +44,22 @@
<p>DONE: Inserting three rows into table</p>
-<sql:query var="deejays" dataSource="$example">
- SELECT * FROM mytable
-</sql:query>
+ <sql:query var="deejays" dataSource="$example">
+ SELECT * FROM mytable
+ </sql:query>
+
+</sql:transaction>
<table border="1">
<tr>
- <c:forEach var="metaData" begin="1" items="$deejays.metaData.columns">
+ <c:forEach var="metaData" items="$deejays.metaData.columns">
<th><c:expr value="$metaData.name"/> </th>
</c:forEach>
</tr>
- <c:forEach var="rows" begin="1" items="$deejays.rows">
+ <c:forEach var="rows" items="$deejays.rows">
<tr>
- <c:forEach var="column" begin="1" items="$rows.columns">
+ <c:forEach var="column" items="$rows.columns">
<td><c:expr value="$column"/></td>
</c:forEach>
</tr>
@@ -80,13 +82,13 @@
<table border="1">
<tr>
- <c:forEach var="metaData" begin="1" items="$deejays.metaData.columns">
+ <c:forEach var="metaData" items="$deejays.metaData.columns">
<th><c:expr value="$metaData.name"/> </th>
</c:forEach>
</tr>
- <c:forEach var="rows" begin="1" items="$deejays.rows">
+ <c:forEach var="rows" items="$deejays.rows">
<tr>
- <c:forEach var="column" begin="1" items="$rows.columns">
+ <c:forEach var="column" items="$rows.columns">
<td><c:expr value="$column"/></td>
</c:forEach>
</tr>
1.2 +7 -4 jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/ResultImpl.java
Index: ResultImpl.java
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/ResultImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ResultImpl.java 2001/12/11 22:13:51 1.1
+++ ResultImpl.java 2001/12/19 01:48:58 1.2
@@ -66,6 +66,7 @@
* instance for each column in the row.
*
* @author Hans Bergsten
+ * @author Justyna Horwat
*/
public class ResultImpl implements Result {
@@ -96,7 +97,7 @@
while (rs.next()) {
beginRow++;
if (beginRow >= startRow) {
- Column[] columns = new ColumnImpl[noOfColumns + 1];
+ Column[] columns = new ColumnImpl[noOfColumns];
// JDBC uses 1 as the lowest index!
for (int i = 1; i <= noOfColumns; i++) {
@@ -104,7 +105,8 @@
if (rs.wasNull()) {
value = null;
}
- columns[i] = new ColumnImpl(value, resultMD.get(i));
+ // 0-based indexing to be consistent w/JSTL
+ columns[i-1] = new ColumnImpl(value, resultMD.get(i-1));
}
Row currentRow = new RowImpl(columns);
rows.add(currentRow);
@@ -123,12 +125,13 @@
return null;
}
- Row[] rowArray = new Row[rows.size() + 1];
+ Row[] rowArray = new Row[rows.size()];
int index = 0;
Iterator i = rows.iterator();
while (i.hasNext()) {
- index++;
+ // 0-based indexing to be consistent w/JSTL
rowArray[index] = (Row) i.next();
+ index++;
}
return rowArray;
}
1.2 +3 -2 jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/RowImpl.java
Index: RowImpl.java
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/RowImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- RowImpl.java 2001/12/11 22:13:51 1.1
+++ RowImpl.java 2001/12/19 01:48:58 1.2
@@ -64,6 +64,7 @@
* Used by the <code>ResultImpl</code> to cache the result set </p>
*
* @author Hans Bergsten
+ * @author Justyna Horwat
*/
public class RowImpl implements Row {
@@ -87,7 +88,7 @@
* @return the Column object of the named column
*/
public Column get(String name) {
- for (int i=1; i < columns.length; i++) {
+ for (int i=0; i < columns.length; i++) {
try {
if (name.equalsIgnoreCase(columns[i].getName())) {
return columns[i];
@@ -107,7 +108,7 @@
* @return the Column object of the indexed column
*/
public Column get(int index) {
- if ((index > 0) && (index <= columns.length)) {
+ if ((index >= 0) && (index < columns.length)) {
return columns[index];
}
return null;
1.2 +6 -5 jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/ResultMetaDataImpl.java
Index: ResultMetaDataImpl.java
===================================================================
RCS file: /home/cvs/jakarta-taglibs/standard/src/org/apache/taglibs/standard/tag/common/sql/ResultMetaDataImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ResultMetaDataImpl.java 2001/12/11 22:13:51 1.1
+++ ResultMetaDataImpl.java 2001/12/19 01:48:58 1.2
@@ -64,6 +64,7 @@
* of this class are used by the <code>ResultImpl</code> instances.</p>
*
* @author Hans Bergsten
+ * @author Justyna Horwat
*/
public class ResultMetaDataImpl implements ResultMetaData {
private ColumnMetaData[] columnMD;
@@ -76,8 +77,7 @@
*/
public ResultMetaDataImpl (ResultSetMetaData rsmd) throws SQLException {
int noOfColumns = rsmd.getColumnCount();
- // JDBC uses 1 as the lowest index!
- columnMD = new ColumnMetaData[noOfColumns + 1];
+ columnMD = new ColumnMetaData[noOfColumns];
getMetaDataCache(rsmd);
}
@@ -90,7 +90,7 @@
* @return the ColumnMetaData object of the named column
*/
public ColumnMetaData get(String name) {
- for (int i = 1; i <= columnMD.length; i++) {
+ for (int i = 0; i < columnMD.length; i++) {
try {
if (name.equals(columnMD[i].getName())) {
return columnMD[i];
@@ -110,7 +110,7 @@
* @return the ColumnMetaData object of the indexed column
*/
public ColumnMetaData get(int index) {
- if ((index > 0) && (index <= columnMD.length)) {
+ if ((index >= 0) && (index < columnMD.length)) {
return (ColumnMetaData) columnMD[index];
}
return null;
@@ -256,7 +256,8 @@
catch (SQLException e) {
((ColumnMetaDataImpl)md).setClassNameException(e);
}
- columnMD[i] = md;
+ // 0-based indexing to be consistent w/JSTL
+ columnMD[i-1] = md;
}
return;
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>