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:
So und nu das was zwischen <body> und </body> steht:
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:
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]
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]