Avatar billede andersbl Nybegynder
30. juli 2009 - 10:25 Der er 6 kommentarer og
1 løsning

JavaBean, få variabel med til WHERE betingelse. (har fulgt "arne_v" guide)

Hej
Som skrevet har jeg fulgt arne_v's guide til at lave JSP+Beans.
Han har et eksempel på hvor man sætter noget ind i databasen og kan få vist hele database.
Det jeg har brug for er at få vist databasen men ud fra de valgte betingelser, og ved ikke hvordan jeg kan få den betingelse der er valgt med over i metoden: [ getAll() ].

================= CatsIndexDB.java =====================
// Her er det c.getAccount() som jeg gerne vil have med over, men den er null, da bønnes-variabler ikke kommer med.

package cats;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import dmbd.*;
   

public class CatsIndexDB {
   
        public static List getAll() throws ClassNotFoundException, SQLException {
               
                List res = new ArrayList();
                CatsBean c = new CatsBean();
               
                Connection con = null;
                Statement stmt = null;
                con = DBcon.getConnection();
                stmt = con.createStatement();
               
                ResultSet rs = stmt.executeQuery("SELECT * FROM Cats WHERE Account = '"+c.getAccount()+"'");
                while(rs.next()) {
                    c.setGroup(rs.getString("Book"));
                    c.setAccount(rs.getString("Account"));
                    c.setSpreadDKK(rs.getString("SpreadDKK"));
                    c.setBrokerageDKK(rs.getString("BrokerageDKK"));
                    c.setTotal(rs.getString("Total"));
                    res.add(c);
                }
                rs.close();
                stmt.close();
                con.close();
                return res;
            }
   
}

================ Metode hvor variablen kommer med. ===========
// Her kommer c.getAccount med.

public class CatsIndexDB {
    public static void test(CatsBean c) throws ClassNotFoundException, SQLException {
       
        Connection con = null;
        Statement stmt = null;
        con = DBcon.getConnection();
        stmt = con.createStatement();
       
        stmt.executeUpdate("INSERT INTO Cats(Account) VALUES ('" + c.getAccount() + "')");
       
        stmt.close();
        con.close();
    }
}


Hvordan løses dette problem lettes og enkelst.

Tak for hjælpen
Avatar billede arne_v Ekspert
30. juli 2009 - 12:20 #1
ret:

        public static List getAll() throws ClassNotFoundException, SQLException {
             
                List res = new ArrayList();

til:

        public static List getByAccount(String acccount) throws ClassNotFoundException, SQLException {
             
                List res = new ArrayList();

eller:

        public static CatBean gerByAccount(String account) throws ClassNotFoundException, SQLException {

alt efter om account er primary key eller ej.
Avatar billede arne_v Ekspert
30. juli 2009 - 12:20 #2
(og ved lejlighed skal du skifte til PreparedStatement)
Avatar billede andersbl Nybegynder
30. juli 2009 - 12:53 #3
Det er ikke muligt at skrive:

public static List getAll(CatsBean c) throws
ClassNotFoundException, SQLException

og gette alle variablerne fra den klasse som med fx. c.getAccount()

???
Et andet problem er at siden er delt op i freams så formularen er et sted og indholdet som bliver påvirkert er på en anden side.
har problemer med at session bliver uændert.
Avatar billede andersbl Nybegynder
30. juli 2009 - 13:25 #4
Lige nu kan jeg godt få det til at fungerer, men det virker kun hvis min for er samme side som formen.

<form name="myform" action="Cats.jsp" method="POST">

kan jeg få den til at opdaterer som den gør nu og opdaterer den anden side CatsIndex.jsp.

Så ville det virke
Avatar billede andersbl Nybegynder
31. juli 2009 - 10:35 #5
Vil du have point arne
Avatar billede arne_v Ekspert
01. august 2009 - 05:09 #6
Frames er ikke altid lykken.

Hvis du ved submit i en frame vil have en anden frame opdateret, så skal du nok over i noget JavaScript.

Langt nemmere med noget div og AJAX.
Avatar billede arne_v Ekspert
01. august 2009 - 05:09 #7
Og et svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester