getMaxRow

Status
Nicht offen für weitere Antworten.

taraku

Mitglied
Hallo leute,
Ich hab im forum nichts gefunden also eröffne ich nu dieses thema:
ehm ich habe eine datenbank erstellt mit mehreren tabellen.
nu will ich von einer bestimmten tabelle dieser DB wissen, wieviele Datensaetze die tabelle hat.
ich hab es mit maxrow versucht aber irgendwie funktioniert das nicht.
hier der code:
comments.jsp

erstmal die methoden Deklaration:
Code:
<%@ page import="java.io.*, taraku.clanpage.databases.news.*,java.util.*, taraku.clanpage.writehelper.*"%>
<%! void getNews(int id, JspWriter out)throws IOException{
	out.println("
");
	out.println("<table width=\"760\" border=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\" bgcolor='#CDCDCD'>");
	NewsDB NDBCon = new NewsDB("sa", "");
	String titel = NDBCon.getTitle(id);
	NDBCon = new NewsDB("sa", "");
	String date = NDBCon.getDate(id);
	NDBCon = new NewsDB("sa", "");
	String author = NDBCon.getAuthor(id);
	NDBCon = new NewsDB("sa", "");
	out.println("<tr><td colspan=\"3\" 
style='background-image:url(
[url]http://mitglied.lycos.de/taraku/dieguten/images/tbnback.png[/url])'>");
	out.println("<font size='5'>[b] " + titel + "[/b]</font>");
	out.println("</td></tr>");
	out.println("<tr><td colspan=\"3\">");
	out.println("

<font size='4'> " + titel + "</font>
");
	out.println(" " + date + " von " + author + "</p>");
	out.println("<font size='4'>");
	Scanner scan = new Scanner(NDBCon.getContent(id));
	out.println("

");
	while(scan.hasNextLine()){
		SmileWriter.writeln(scan.nextLine(), out);
	}
	out.println("</p>");
	out.println("</font></td></tr>");
	out.println("<tr>");
	out.println("<font size ='4'><td style='background-image:url([url]http://mitglied.lycos.de/taraku/dieguten/images/tbnback2.png[/url])' height='20'><center>Kommentare</center></td><td 
style='background-image:url([url]http://mitglied.lycos.de/taraku/dieguten/images/tbnback2.png[/url])' 
height='20'><center>[url='recommendn.jsp']Empfehlung senden[/url]</center></td><td style='background-image:url([url]http://mitglied.lycos.de/taraku/dieguten/images/tbnback2.png[/url])' height='20'>
<center>[url='printver.jsp?nid=" + String.valueOf(id) + "']Druckbare Version[/url]</center></td></font>");
	out.println("</td></table>");
}
void getComments(JspWriter out, int id, String tablenum)throws IOException{
	CommentsDB CDBCon = new CommentsDB("sa", "");
	String author = CDBCon.getData(id, 3, "CDB" + tablenum);
	CDBCon = new CommentsDB("sa", "");
	String content = CDBCon.getData(id, 4, "CDB" + tablenum);
	CDBCon = new CommentsDB("sa", "");
	out.println("<tr><td>");
	out.println("

Geschrieben von: " + author + " am " + CDBCon.getData(id, 2, "CDB" + tablenum));
	out.println("<hr width='755'>");
	Scanner scan = new Scanner(content);
	while(scan.hasNextLine()){
		SmileWriter.writeln(scan.nextLine(), out);
	}
	out.println("</p></tr></td>");
}
int getMaxRow(String tablenum){
	CommentsDB CDBCon = new CommentsDB("sa", "");
	return CDBCon.getLastRow(String.valueOf(Integer.parseInt(tablenum) + 1));
}%>

So und nu das was zwischen <body> und </body> steht:

Code:
<TABLE WIDTH="870" HEIGHT="844"  BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR><TD align="center" width='810' valign="top" style='background-image:url([url]http://mitglied.lycos.de/taraku/dieguten/images/decoUnder.png[/url])'>
			<center>
			[img]http://mitglied.lycos.de/taraku/dieguten/images/decoAbove.png[/img]
			<%getNews(new Integer(request.getParameter("newsid")), out); %>
			

			<table width="760" border="1" cellpadding="0" cellspacing="0" bgcolor='#CDCDCD'>
			<tr><td 
style='background-image:url([url]http://mitglied.lycos.de/taraku/dieguten/images/tbnback.png[/url])'>

				<font size='4'>Kommentare</font>
			</td></tr>
			<%for(int i = 0; i <= getMaxRow(request.getParameter("newsid")) + 2; i++){
				getComments(out, i, String.valueOf(Integer.parseInt(request.getParameter("newsid")) + 1));
			}%>
			</table>
			<form name='csubmit' method="GET" action="addcomments.jsp">
				<table width='760' border='0' cellpadding="0" cellspacing='0' bgcolor="#CDCDCD">
					<tr><td colspan="2" 
style='background-image:url([url]http://mitglied.lycos.de/taraku/dieguten/images/tbnback.png[/url])'>
						

<font size='4'>[b]Kommentar schreiben[/b]</font></p>
					</td></tr>
					<tr>
					<td width="100">
						

<font size="4">Autor</font></p>
					</td>
					<td width="660">
						<input type="text" id="author" name="author">
					</td>
					</tr>
					<tr>
					<td width="100">
						<p valign="top"><font size="4">Kommentar</font></p>
					</td>
					<td>
						<input type="hidden" value="<%=request.getParameter("newsid")%>" 
name="newsid" id="newsid">
						<textarea cols="40" rows="12" wrap ="physical" name="comment" 
id="comment"></textarea>

						<input type="submit" value="Senden" name="submit"><input type="reset" 
name="reset" value="Zurücksetzen">
					</td>
					<td>
					</td>
					</tr>
				</table>
			</form>
			</center>
			</td></tr></table></td></td>

ich hab hier nur das wichtigste reingetan also nur der teil wo java-code ist..html hab ich alles richtich..also muesst ihr das nich beachten

so und nun Die datenbank:

Code:
package taraku.clanpage.databases.news;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class CommentsDB {
	public Connection connection;
	public CommentsDB(String username, String password){
		try{
			Class.forName("org.hsqldb.jdbcDriver");
			connection = DriverManager.getConnection("jdbc:hsqldb:users/taraku/databases/ClanDatabases/news/commentsdb/CommentsDB", 
username, password);
		}
		catch(ClassNotFoundException cnfex){
			System.out.println("Treiberklasse nicht gefunden\n" +
					cnfex);
		}
		catch(SQLException sqlex){
			System.out.println("Es konnte kein Verbindung hergestellt werden.");
		}
	}
	public void executeQuery(String query){
		try{
			Statement statement = connection.createStatement();
			ResultSet resultset = statement.executeQuery(query);
			statement.close();
		}
		catch(SQLException sqlex){
			System.out.println("Der befehl konnte nicht ausgefuehrt werden.");
		}
		finally{
			try{
				connection.close();
			}
			catch(SQLException sqlex){
				System.out.println("Datenbank konnte nicht geschlossen werden");
			}
		}
	}
	public String executeQuery(String query, boolean b) throws SQLException{
		try{
			Statement statement = connection.createStatement();
			ResultSet resultset = statement.executeQuery(query);
			String result = resultset.toString();
			statement.close();
			return result;
		}
		finally{
			try{
				connection.close();
			}
			catch(SQLException sqlex){
				System.out.println("Datenbank konnte nicht geschlossen werden");
			}
		}
	}
	public String getData(int id, int objectplace, String table){
		try{
			Object recc = null;
			Statement statement = connection.createStatement();
			ResultSet resultset = statement.executeQuery("SELECT * FROM " + table + " WHERE id=" + new Integer(id).toString());
			if(!resultset.next()){
				return "nichts gefunden";
			}
			recc = resultset.getObject(objectplace);
			statement.close();
			return recc.toString();
		}
		catch(SQLException sqlex){
			System.out.println("Der befehl konnte nicht ausgefuehrt werden.");
		}
		finally{
			try{
				connection.close();
			}
			catch(SQLException sqlex){
				System.out.println("Datenbank konnte nicht geschlossen werden");
			}
		}
		return null;
	}
	public String addFullDatas(String content, String author, String table){
		try{
			Date date = new Date();
			DateFormat heute = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.GERMAN);
			PreparedStatement statement = connection.prepareStatement("INSERT INTO " + table + "(date, author, content) " +
					"VALUES('" + heute.format(date) + "','" + author + "','" + content + "')");
			ResultSet resultset = statement.executeQuery();
			String result = resultset.toString();
			statement.close();
			return result;
		}
		catch(SQLException sqlex){
			System.out.println("Der befehl konnte nicht ausgefuehrt werden.");
		}
		finally{
			try{
				connection.close();
			}
			catch(SQLException sqlex){
				System.out.println("Datenbank konnte nicht geschlossen werden");
			}
		}
		return null;
	}
	public int getLastRow(String tablenum){
		try{
			Statement statement = connection.createStatement();
			ResultSet resultset = statement.executeQuery("Select * FROM CDB" + tablenum);
			return statement.getMaxRows();
		}
		catch(SQLException sqlex){
			System.out.println("Der befehl konnte nicht ausgefuehrt werden.");
		}
		finally{
			try{
				connection.close();
			}
			catch(SQLException sqlex){
				System.out.println("Datenbank konnte nicht geschlossen werden");
			}
		}
		return 0;
	}
	public void finalize() throws SQLException{
		connection.close();
	}
}

ich danke euch für die hilfe im voraus^^....naja ehm wer aber auch so eine lösung hat kann sie ruhig nennen^^...müsst euch bei der erstellung der anwort nich auf meinen quelltext richten...oder so...naja danke im voraus

[Edit by foobar: Zeilenumbrueche eingefuegt]
 

AlArenal

Top Contributor
Es empfiehlt sich keine 5 Meter breiten Texte zu posten ;)

Es empfiehlt sich weiterhin sich mit SQL zu beschäftigen.

Code:
SELECT COUNT(*) AS anzahl FROM `tabelle`
 

foobar

Top Contributor
SQL-Code in Jsp einbetten gehört zu den schlimmsten Vergehen eines Javaentwicklers. Hast du früher PHP entwickelt?
SCNR
 

taraku

Mitglied
ich hab gar kein sql code in jsp dateien eingebettet^^
Die DB Klasse ist in ner klasse(lol)...-.-...naja schlecht ausgedrückt aber was solls...
bitte nich böse sein...bin neu im java server pages und servlets bereich...
 

taraku

Mitglied
ok gut danke^^ ehm ich kenn mich auch nich mit neuen bibliotheken aus^^...naja zumindest ich mit struts...wie macht man das?aso also ich meine eher wie bindet man das in eclipse ein?naja ausser dieser frage ist das thema abgehakt...danke euch.
 

foobar

Top Contributor
Es gibt im MyEclipse einen Strutsdesigner, ansonsten mußt du die Configs von Hand pflegen.
Einbindung in Eclipse ist so wie immer Jar hinzufügen, in Classpath aufnehmen und los gehts. Guck dir mal die Tutorials auf der Website von denen an.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben