Article View: es.comp.lenguajes.java
Article #732Re: hola tengo una pregunta, como se cuando mysql tiene una tabla vacia?
From: Carl
Date: Tue, 06 Feb 2007 23:16
Date: Tue, 06 Feb 2007 23:16
56 lines
3542 bytes
3542 bytes
On Feb 6, 12:24 pm, "omm79" <omm1...@gmail.com> wrote:
> Estoy haciendo una aplicacion en java-mysql pero mi problema es que
> necesito saber cuando una tabla esta vacia en mysql, ya he ejecutado
> una consulta asi:
> ..............
> rs = MysqlConect.consultar("SELECT "+campo+" FROM "+tabla);
> if (rs != null) {
> System.out.println("La tabla NO esta vacia");
> return rs;
> }
> else {
> System.out.println("La tabla esta vacia");
> return null;
> }
> .............
> y cuando recupero el valor que me devuelve el metodo me dice que si
> hay elementos y me devuelve valores como estos:
> com.mysql.jdbc.ResultSet@7c6768, pero realmente en la tabla no existe
> nada y ya he intentado tambien con if (rs.wasNull()) pero me devuelve
> tambien elementos, entonces la pregunta especificamente seria que
> metodo o como tengo que recuperar la informacion de la tabla, para que
> me devuelva solamente si esta vaicia o no en java. Agradeceria mucho
> la ayuda.
El valor que estas mirando no tiene nada que ver con los elementos de
el resultado, son los datos de el objeto ResultSet. El metodo
wasNull() solo resulta si el ultimo intento de usar un del los get*()
metodos de le ResultSet resulto en un valor de NULL.
Para saber si la tabla esta vacia, le preguntas a el ResultSet por el
proximo groupo de datos (Record/Row).
Por exemplo:
rs = MysqlConect.consultar("SELECT "+campo+" FROM "+tabla);
if (rs != null && rs.next() ) {
// si llegamos aqui, es porque hay por lo menos un resultado...
System.out.println("Encontre: " + rs.getString(1) ); // te da el
valor de el primer campo
} else {
System.out.println("La tabla esta vacia o me encontrรฉ un error!");
}
En realidad, yo creo que seria mejor saber cuantos resultados hay,
pero esto posiblemente hace _un_poco_ mas trabajo para la base de
datos:
rs = stmt.executeQuery("SELECT count(nid) as rec_count FROM node");
if (null != rs && rs.next()) {
int recCount = rs.getInt("rec_count");
System.out.println("Encontre " + recCount + " records");
if (recCount == 0) {
// no... hay...nada!
}
}
Un saludo,
Carl.
Technical Details
Message-ID:
<1170803782.169641.206350@l53g2000cwa.googlegroups.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!l53g2000cwa.googlegroups.com!not-for-mailReferences:
<1170793484.079758.23890@j27g2000cwj.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,2e50da9d7e7b21b3 X-Google-Attributes: gid1116f3,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news2.google.com!postnews.google.com!l53g2000cwa.googlegroups.com!not-for-mail From: "Carl" <c.groner@gmail.com> Newsgroups: es.comp.lenguajes.java Subject: Re: hola tengo una pregunta, como se cuando mysql tiene una tabla vacia? Date: 6 Feb 2007 15:16:22 -0800 Organization: http://groups.google.com Lines: 57 Message-ID: <1170803782.169641.206350@l53g2000cwa.googlegroups.com> References: <1170793484.079758.23890@j27g2000cwj.googlegroups.com> NNTP-Posting-Host: 67.117.56.65 Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1170803787 28624 127.0.0.1 (6 Feb 2007 23:16:27 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 6 Feb 2007 23:16:27 +0000 (UTC) In-Reply-To: <1170793484.079758.23890@j27g2000cwj.googlegroups.com> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1,gzip(gfe),gzip(gfe) X-HTTP-Via: 1.1 WHITNEY Complaints-To: groups-abuse@google.com Injection-Info: l53g2000cwa.googlegroups.com; posting-host=67.117.56.65; posting-account=M4zEWw0AAACNHKppx29kJq4w8DYbzmCI