16. august 2001 - 09:16Der er
13 kommentarer og 1 løsning
applet tilgang til database
Hej alle, håber der er en venlig sjæl der kan give mig en hånd med dette her:
Jeg vil lave en applet der skal tilgå en access-database på serveren, og vise data fra denne i applet\'en.
1) Hvad har jeg brug for af kode
2) Hvilke filer skal ligge på server-siden?
Jeg har strikket noget sammen selv, men det virker ikke godt... Hvis der er nogen der har et minimalt eksempel, der kører, vil det være godt at se kildekoden. Jeg skal bare lige ha\' hul igennem. Mht. 2: Jeg ved at Applet\'en og databasen skal ligge på server-siden, selvfølgelig -- men skal der ellers noget til? En driver? (har ikke meget forstand på JDBC (eller java, for den sags skyld)). Som sagt, har mere brug for et levende eksempel end gode forslag -- selvom jeg ikke afviser det sidste! :-)
Jeg vil lave den anbefaling, som jeg ofte laver. Lav database tilgangen på serveren. fx med en servlet, og så lad appletten kontakte din servlet for at få og skrive data.
Så sparer du at en Applet skal have driveren, og at du ikke skriver brugernavn/pass i din Applet kode, som nemt kan decompiles.
Mja, joe, det er nok muligt, men jeg ville nu gerne have det andet til at virke. Lad mig se om jeg ikke kan præcisere, hvad jeg mener: Jeg har en applet-kode der ser nogenlunde sådan ud:
try { Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); dataConnection = DriverManager.getConnection(\"jdbc:odbc:databasenavn\", \"\", \"\"); } catch etc. etc.
Denne applet henter jeg ned til en browser, der så skal gå tilbage til serveren og spørge til databasen \"databasenavn\". Eller rette, skabe forbindelse vhj. DSN\'en \"databasenavn\". Så langt, så godt. Men -- hvor meget skal serveren ha\' med det hele at gøre? Hvordan ved applet\'en at den skal gå tilbage til serveren ?? -- vil ovenstående kode ikke få applet\'en til at lede efter \"databasenavn\" på klient-siden, i stedet for server-siden? Og hvad med driveren til databasen -- skal den ligge hos klienten, før applet\'en vil virke, eller skal den være installeret på serveren?
Okay... ja. Men lad os så sige at jeg bruger en specifik MSaccess-driver. Denne skal altså ligge på hver klient-maskine, der skal tilgå databasen på serveren?
Okay, ja, så begynder 10-øren at falde... :-) Den ligger på serveren og bliver automatisk (?) downloaded med applet\'en. Men ( :-) ), vil det så være nok? Jeg hører noget med at der også skal være en DSN på serveren, er det korrekt, ved du?
For i øvrigt, tak for hjælp so far -- jeg skal nok sende nogle point din vej, når tråden stopper :-).
Hvis du mener DNS, så er det ikke nødvendigt, hvis du bare referer til den på ip nr. istedet for.
Nu ved jeg ikke hvor bundet op på Access du er, så er en MySql database meget anvendelig til formålet. Den har ihvertfald en driver, som du godt kan bruge fra en applet af.
Jeg har ikke set en driver til Access, der virkede over nettet, da man somregel plejer at pege på en lokal odbc resource.
ja, men det virker kun, hvis du kører på maskinen, ellers skal du bruge din eksterne ip.
Du vil nok også lægge mærke til, at tingene bliver meget nemmere, når du går over til MySql på en linuxplatform, det er et dejligt miljø at arbejde i :)
Jeg er først lige startet på det her Linux, men det tiltaler mig sgu\'. Rig mulighed for at gøre som man lyster, uden mange Windows-restriktioner. Skal have sat en Apache op på min Mandrake -- har du nogle gode erfaringer (links? Gerne inkluderende opsætning af en ASP-engine til Apache, hvis sådan een findes?)?
LB, nu har du hjulpet mig en del allerede -- og jeg fornemmer i hvert fald så meget at det her er noget du har prøvet før!! Så jeg vil spørge dig, har du en hurtig kildekode, hvor du tilgår en MySql db (eller en hvilket som helst anden, for den sags skyld) på en Linux-server? Min prog. stil har nu altid været at få et eksempel til at virke, før jeg kastede mig over mine egne projekter. Så det ville nu være dejligt hvis du havde en stump kode, et eller andet sted?
til ASP er der http://www.chiliasp.com/, har dog ikke prøvet den, og har heller ikke lyst til det. Jeg synes ikke lige det er to ting, der passer sammen:)
Jeg kan ikke lige umiddelbart et link, men et hurtigt stykke kode kunne fx være.
Class.forName(\"org.gjt.mm.mysql.Driver\"); Connection con = DriverManager.getConnection(\"jdbc:mysql://localhost:3306/db\",\"admin\",\"password\"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(\"SELECT name FROM names\");
Jeg har ikke prøvet koden, det var bare lige hvad jeg kunne huske, vær også lige opmærksom på, at ovenstående kode både smider en ClassNotFoundException, og SQLException
Det ser fornemt ud; det kan jeg nok godt få strikket sammen til et kørbart eksempel.
LB, tak for hjælpen. Hvor meget går du op i point? (Er ny her på eksperten -- sparer man sammen til noget?) Sig ordet og jeg opretter et nyt spørgsmål, så jeg kan sende nogle point i din retning... :-)
Blot rolig -- det er ikke løndatabasen, det går på! :-) Det jeg egentlig ville, var såmænd bare at have adgang til en database med mine foretrukne URL\'er; således at hvor end jeg kom hen, kunne jeg altid tilføje og se mine foretrukne sites, i stedet for, som nu, at have forskellige henvisninger til at ligge i \'foretrukne\' på forskellige computere. Så jeg er ikke så bekymret om der er nogen der hacker i den... :-)
God weekend og ha\' det godt,
Morten.
Synes godt om
Ny brugerNybegynder
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.