/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Exception uden "throws"
Fra : Bear


Dato : 11-11-01 02:51

Hvordan kaster man en exception uden at skrive "throws" i metodehovedet? Jeg
har for eksempel en metode som modtager en int som parameter og hvis denne
int er under 0 skal der kastes en exception.

Den skal gerne fungere på samme måde som Integer.parseInt(String), hvor man
heller ikke skal angive en try-catch block.

--
mvh

Bear
ICQ: 2745075



 
 
Brian Matzon (11-11-2001)
Kommentar
Fra : Brian Matzon


Dato : 11-11-01 03:07

"Bear" <bdr@NOSPAM.sol.dk> wrote in message news:9sklhp$frq$1@sunsite.dk...
> Hvordan kaster man en exception uden at skrive "throws" i metodehovedet?
Jeg
> har for eksempel en metode som modtager en int som parameter og hvis denne
> int er under 0 skal der kastes en exception.
>
> Den skal gerne fungere på samme måde som Integer.parseInt(String), hvor
man
> heller ikke skal angive en try-catch block.

Du skal kaste en exception af typen RuntimeException - disse bliver først
fanget
(sjovt nok) på runtime tidspunktet.

/Brian Matzon



Bear (11-11-2001)
Kommentar
Fra : Bear


Dato : 11-11-01 03:25

Tak for det hurtige svar.

--
mvh

Bear
ICQ: 2745075
"Brian Matzon" <brian@matzon.dk> wrote in message
news:3beddd9d$0$25391$edfadb0f@dspool01.news.tele.dk...
> "Bear" <bdr@NOSPAM.sol.dk> wrote in message
news:9sklhp$frq$1@sunsite.dk...
> > Hvordan kaster man en exception uden at skrive "throws" i metodehovedet?
> Jeg
> > har for eksempel en metode som modtager en int som parameter og hvis
denne
> > int er under 0 skal der kastes en exception.
> >
> > Den skal gerne fungere på samme måde som Integer.parseInt(String), hvor
> man
> > heller ikke skal angive en try-catch block.
>
> Du skal kaste en exception af typen RuntimeException - disse bliver først
> fanget
> (sjovt nok) på runtime tidspunktet.
>
> /Brian Matzon
>
>



Martin Ehmsen (12-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 12-11-01 03:59

Brian Matzon wrote:
> Du skal kaste en exception af typen RuntimeException - disse bliver
først
> fanget
> (sjovt nok) på runtime tidspunktet.

Dette er langt fra "sjovt nok", men sikkert nok til formålet. Alle som
vil vide mere opfodres til at læse Java Programmers Reference ( som i
virkeligheden er en dårlig bog, som ikke har andet end hvad der står i
API'en, men som har gode eksempler)

Og alle som vil vide hvad der blev af mit (mere eller mindre) gode
forslag, om et projekt hos sourceforge.net:
Så er det skrinlagt så længe der ikk er flere som vil deltage aktivt i
projektet. Jeg synes der var for få som ville deltage i projektet, til
at jeg ville bruge tiden på det. Jeg undskylder, til alle som syntes
det var en god ide, specielt til Brian Matzon ( jeg har indset at
public domain, var den eneste fornuftige licens ).
Hvis andre vil tage stafetten op, så er de velkomne, jeg vil til hver
en tid deltage konstruktivt i et sådant projekt. Og jeg synes stadigvæk
at en FAQ for gruppen er på sin plads. Hvem har ikke undret sig over
hvordan man laver en exe fil ud af sine class-filer ??

Mvh,
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Jacob Nordfalk (11-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 11-11-01 05:04


Jeg vil gerne være med til at lave en
Ofte Stillede Spørgsmål/OSS/FAQ (og undskyld
at jeg ikke
skrev før), men det forudsætter at
jeg også har lov til bruge noget af resultatet

http://javabog.dk.

Men det er måske også muligt med en "public
domain"-licens?

Som tidligere sagt så bidrager jeg gerne med
den del af min bog der ligger på
http://javabog.dk til en OSS.


Martin Ehmsen wrote:

> Og alle som vil vide hvad der blev af mit (mere eller mindre) gode
> forslag, om et projekt hos sourceforge.net:
> Så er det skrinlagt så længe der ikk er flere som vil deltage aktivt i
> projektet. Jeg synes der var for få som ville deltage i projektet, til
> at jeg ville bruge tiden på det. Jeg undskylder, til alle som syntes
> det var en god ide, specielt til Brian Matzon ( jeg har indset at
> public domain, var den eneste fornuftige licens ).
> Hvis andre vil tage stafetten op, så er de velkomne, jeg vil til hver
> en tid deltage konstruktivt i et sådant projekt. Og jeg synes stadigvæk
> at en FAQ for gruppen er på sin plads. Hvem har ikke undret sig over
> hvordan man laver en exe fil ud af sine class-filer ??

--
Jacob Nordfalk

Jacob Nordfalk (11-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 11-11-01 05:22

Som et eksempel på hvad det er jeg roder med (og ville kunne bidrage
med).

Jeg håber det illustrerer at de tekstmængder og det engagement jeg
arbejder
med.
(rettelser er i øvrigt velkomne).



Omskrivning af appletter til at virke i alle browsere
=====================================

Når man programmerer appletter støder man ofte på problemet at appletten
virker i udviklingsmiljøet men ikke i en browser.
Det skyldes at de fleste browsere kun understøtter en ældre (mindre)
udgave
af Java, oftest version 1.1.5 (mens udviklingsmiljøerne bruger version
1.3
eller senere).
Fra version 1.1 til 1.3 er der sket en kraftig udvidelse af antallet af
klasser og visse klasser har fået tilføjet flere metoder.

Som programmør har du to muligheder:
1)Ændre appletten så den virker i alle browsere.
2)Brugerne installerer en såkaldt "Java Plug-in" med en ny version af
Java.

Første mulighed kræver at du skriver din applet om så den uden videre
kommer
til at virke i alle browsere. Det er umiddelbart den letteste løsning. I
et
større program kan det dog også være at de senere tilføjelser i Java er

vigtige for programmet at du må vælge den anden mulighed, selvom den
kræver
mere arbejde både fra din og brugerens side.


9.6.8 Omskrivning til at virke i alle browsere
-------------------------------------------------------

Lad os starte med at se på muligheden for at skive appletten om, så den
virker i alle browsere. Det sker ved at 'nedgradere' appletten til at
kunne
køre i Java version 1.1 (oftest version 1.1.5 eller 1.1.7), d.v.s. ved
at
fjerne brug af alle klasser og metoder der er kommet til efter version
1.1.
Det er lettest at se hvad problemet er ved at kigge i browserens
Java-konsolvindue og se præcis hvilken fejlmeddelelse der kommer (i
Netscape
findes det under: Communicator/Tools/Java Console).
Swing og andre javax-pakker
Import af alle pakker der begynder med javax skal fjernes, f.eks:

//import javax.swing.*; // fjern
import java.awt.*; // behold

Dette indbefatter brug af Swing-komponeter fra javax.swing, der må
erstattes
af de simplere AWT-komponenter (i pakken java.awt). Heldigvis hedder
komponenterne for det meste det samme, bare med et foranstillet J:
Erstat med
JApplet Applet
JLabel Label
JTextField TextField
.... ...

Alternativt kan man hente en separat JAR-fil med Swing-klasserne til
Java
1.1 på Suns hjemmeside som man kan lægge sammen med appletten (men den
fylder et par megabyte, så man bør overveje om man så ikke lige så godt
kunne få brugeren til at opgradere sin browser til version 1.3 med en
Java
Plug-In som vist nedenfor).
Visse ofte brugte metoder
Visse (ofte brugte) metoder findes ikke i version 1.1 og skal skrives
om.
F.eks.:
int bredde = getWidth(); // dur ikke i 1.1

erstattes med:
int bredde = getSize().width; // dur godt i 1.1

Erstat med
Integer.parseInt(streng) new Integer(streng).intValue()
Double.parseDouble(streng) new Double(streng).doubleValue()
Float.parseFloat(streng) new Float(streng).floatValue()
getWidth() getSize().width
(kaldt på en applet eller en anden komponent)
getHeight() getSize().heigth
(kaldt på en applet eller en anden komponent)

Collections-klasserne
De mere avancerede datastrukturer (Collections-klasserne med iteratorer,
ArrayList, LinkedList, HashSet, TreeSet, HashMap o.s.v) kan ikke bruges.

I stedet må man nøjes med Vector og Hashtable, der kan klare de fleste
opgaver.

Alternativt kan man hente en separat JAR-fil med Collections-klasserne
til
Java 1.1 på Suns hjemmeside som man kan lægge sammen med appletten (den
fylder ca. 1 MB).

Java2D
De mere avancerede grafiktegningsfunktioner (Java2D) kan ikke bruges
under
Java 1.1.

Visse klasser
Pakken java.net: URLDecoder og URLClassLoader.
Pakken java.util: Timer og TimerTask (her må man bruge Thread-klassen
direkte i stedet).



9.6.9 Brug af Java Plug-in
--------------------------------

Hvis de ovenfor nævnte ting er meget svære at undvære i dit program kan
du
vælge at bruge en "Java Plug-in", der tilsidesætter browserens
indbyggede
virtuelle maskine med en nyere version (1.2 eller senere).

Det kræver lidt mere arbejde fra brugerens og fra din side:

Brugeren skal installere plug-in'en første gang han besøger en side der
kræver den.
Som programmør skal du lave om i HTML'en der indlæser appletten.

Dette er beskrevet herunder (ellers læs dokumentationen der følger med
Java
eller på http://www.javasoft.com under 'Products & APIs' vælg 'Java
Plug-in').
Installation og konfiguration hos brugeren.
Brugeren skal have installeret Java, som minimum en JRE (Java Runtime
Environment) på ca. 10 MB. JRE består af en virtuel maskine og de nogle
klasser og værktøjer der er nødvendige i et kørende system (en
programudvikler har altid JRE, da den følger med udviklingsværktøjet).

Dernæst skal alle browsere på maskinen konfigureres så de ved hvor den
separate Java-installation findes.

Under Windows sker det vist nok automatisk når JRE installeres.
Under Linux gøres det i Netscape ved at kopiere jre/bin/javaplugin.so
fra
Java-installationen over i /usr/lib/netscape/plugins (hvis alle brugere
skal
bruge Java Plug-in) eller i $HOME/.netscape/plugins (hvis det kun er
enkelte brugere).

Den enkelte bruger kan ændre nogle egenskaber ved Java Plug-in, f.eks.
om
konsolvinduet skal være synligt, ved at køre programmet
JavaPluginControlPanel.

Hvis brugeren ikke kan få appletten til at fungere efter ændringerne i
HTMLen (så Java Plug-in benyttes - beskrevet nedenfor) så tjek at
JavaScript er aktiveret i browseren.

Ændringer i HTMLen
HTML-koden skal ændres for at fortælle browseren at den skal benytte en
anden udgave af Java end den indbyggede. For at hjælpe med at foretage
disse
ændringer har Javasoft udgivet 'The Java Plug-in HTML Converter', som er
et
værktøj til at konvertere enhver HTML-side der indeholder appletter til
et
format der kan benytte Java Plug-in'en.

Bemærk at hvis du glemmer at konvertere HTML-siden med appletten så vil
browserens bruge sin egen (gamle) Java.
Konverteringsværktøjet kan hentes på
http://java.sun.com/products/plugin/




--
Jacob Nordfalk

Jacob Nordfalk (11-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 11-11-01 05:27

Et andet eksempel (kommentarer er velkomne):


19.5 Avanceret JDBC



19.5.1 Forpligtigende eller ej? (commit)

Normalt er alle SQL-kommandoer gennem JDBC automatisk forpligtigende
(eng.
auto-committing), d.v.s. de kan ikke annulleres hvis en senere
SQL-kommando
går galt.

Ønsker man at slå automatisk forpligtigelse fra kan dette gøres ved at
kalde
setAutoCommit(false) på forbindelsen. Derefter vil transaktioner
(SQL-kommandoer) ikke være forpligtigende, og de kan annulleres ved at
kalde
cancel() på forbindelsen. Når man ønsker at transaktionerne skal træde i
kraft kalder man commit(), og først herefter er transaktionenerne
endeligt
udført på databasen og dermed forpligtigende.

Oftest anvendes denne facilitet i forbindelse med flere transaktioner
der
enten alle skal gennemføres eller alle annulleres, f.eks:

try {
forb.setAutoCommit(false);
Statement stmt = forb.createStatement();

stmt.executeUpdate("insert into KUNDER values('Jacob', -1799)");
stmt.executeUpdate("insert into KUNDER values('Brian', 0)");

// flere transaktioner ...
System.err.println("Alt gik godt, gør ændringerne forpligtigende");
forb.commit();

} catch (Exception e) {
System.err.println("Noget gik galt med databasen! Annulerer
ændringerne...");
e.printStackTrace();
forb.rollback();
} finally {
// Husk at sætte auto-commit tilbage, af hensyn til andre transaktioner
forb.setAutoCommit(true);
}



19.5.2 Metadata
---------------

Metadata betyder egentligt "udenfor data" men kunne lige så godt forstås
som
"data om data". Der findes metadata på to niveauer: Metadata om
databasen
(DatabaseMetaData) og metadata om svaret på en forespørgsel
(ResultSetMetaData).



Metadata om databasen

Disse fås ved at kalde getMetaData() på forbindelsen:

DatabaseMetaData dmd = forb.getMetaData();

Dette objekt har metoder der giver information om
Producenten
getDatabaseProductName(), getDatabaseProductVersion(), getDriverName(),
getDriverVersion(), ...

Databasens begrænsninger og hvad den understøtter
getMaxRowSize(), getMaxStatementLength(), getMaxTableNameLength(), ...

Databasens indhold (skemaer, tabeller, ...) - i form at et ResultSet med
en
liste:
getSchemas(), getCatalogs(), getTableTypes(), getTables(), getColumns(),
....



Metadata om svaret på en forespørgsel

Disse fås ved at kalde getMetaData() på svaret på forespørgslen:

Statement stmt = forb.createStatement();
ResultSet rs = stmt.executeQuery("select * from KUNDER");
ResultSetMetaData rsmd = rs.getMetaData();

ResultSetMetaData-objektet har metoder som beskriver svaret, bl.a.:
int getColumnCount() giver antal kolonner i svaret
String getColumnName(int column) giver navnet på en given kolonne

Der findes ikke en tilsvarende getRowCount() for at få antallet af
rækker i
svaret. Det gøres i stedet ved at gå til sidste række i svaret, spørge

rækkens nummer og så gå op til før første række:

rs.last();
int antalRækker = rs.getRow();
rs.beforeFirst();

Bemærk at det ikke altid er understøttet at hoppe rundt i rækkerne på et
svar.



19.5.3 Optimering
-----------------

Inden du læser videre, så bemærk lige den generelle regel:

Under programudviklingen er det normalt spild af tid at tænke på
optimering
af kørselstiden - det er bedre at koncentrere sig om funktionaliteten og
optimere efter at programmet er skrevet næsten færdigt


Optimering af kørselstiden bør kun ske tidligere hvis:
- det forventes at forårsage større strukturelle ændringer i programmet
- det forventes at give kortere udviklingstid (fordi programtests kan
udføres hurtigere)



På forhånd forberedt SQL

Det er klart at der i koden vist ovenfor bruges noget tid på at fortolke
SQL-kommandoen hver gang kaldet foretages.

I stedet for at oprette en SQL-kommandoprompt med createStatement() kan
man
bruge metoden prepareStatement() hvor man angiver SQL-kommandoen een
gang og
derefter kan udføre kommandoen flere gange:

PreparedStatement indsæt =
forb.prepareStatement("insert into KUNDER values(?, ?)");

PreparedStatement hent =
forb.prepareStatement("select NAVN, KREDIT from KUNDER");

Ovennævnte forberedelser sker typisk kun een gang under opstart af
programmet. Ved selve programudførelsen fyres de forberedte kommandoer
afsted:

indsæt.setString(1, "Jacob")
indsæt.setInt(2, -1799)
indsæt.execute();
indsæt.setString(1, "Brian")
indsæt.setInt(2, 0)
indsæt.execute();

ResultSet rs = hent.executeQuery();
....



Indeksere en kolonne med nummer i stedet for navn

Det er hurtigere at indeksere en kolonne med nummer i stedet for navn.
Husk
blot at første kolonne er nummer 1 (og ikke nummer 0 som man ellers
kunne
forvente).

I stedet for
String navn = rs.getString("NAVN");
double kredit = rs.getDouble("KREDIT");

skriver man
String navn = rs.getString(1);
double kredit = rs.getDouble(2);



Kalde gemte procedurer i databasen

Visse databaser understøtter 'stored procedures' - procedurer gemt i
databasen. Disse procedurer kan udføres hurtigere da databasen på
forhånd
kan optimere hvordan SQL-kaldene skal foregå.

En gemt procedure kan kaldes med et CallableStatement (her forestiller
vi os
at der på forhånd er oprettet procedurerne indsaetkunde og hentkunder i
databasen):

CallableStatement indsætP =
forb.prepareCall("call indsaetkunde(?, ?)");

CallableStatement hentP =
forb.prepareStatement("?= hentkunder");

Resten af arbejdet foregår som med PreparedStatement:

indsætP.setString(1, "Jacob")
indsætP.setInt(2, -1799)
indsætP.execute();
indsætP.setString(1, "Brian")
indsætP.setInt(2, 0)
indsætP.execute();

ResultSet rs = hentP.executeQuery();
....



--
Jacob Nordfalk

Dennis Thrysøe (11-11-2001)
Kommentar
Fra : Dennis Thrysøe


Dato : 11-11-01 15:10

Det er sgu' da snak der er til at forstå ;)

-dennis



Jacob Nordfalk wrote:

> Et andet eksempel (kommentarer er velkomne):
>
>
> 19.5 Avanceret JDBC
>
>
>
> 19.5.1 Forpligtigende eller ej? (commit)
>
> Normalt er alle SQL-kommandoer gennem JDBC automatisk forpligtigende
> (eng.
> auto-committing), d.v.s. de kan ikke annulleres hvis en senere
> SQL-kommando
> går galt.
>
> Ønsker man at slå automatisk forpligtigelse fra kan dette gøres ved at
> kalde
> setAutoCommit(false) på forbindelsen. Derefter vil transaktioner
> (SQL-kommandoer) ikke være forpligtigende, og de kan annulleres ved at
> kalde
> cancel() på forbindelsen. Når man ønsker at transaktionerne skal træde i
> kraft kalder man commit(), og først herefter er transaktionenerne
> endeligt
> udført på databasen og dermed forpligtigende.
>
> Oftest anvendes denne facilitet i forbindelse med flere transaktioner
> der
> enten alle skal gennemføres eller alle annulleres, f.eks:
>
> try {
> forb.setAutoCommit(false);
> Statement stmt = forb.createStatement();
>
> stmt.executeUpdate("insert into KUNDER values('Jacob', -1799)");
> stmt.executeUpdate("insert into KUNDER values('Brian', 0)");
>
> // flere transaktioner ...
> System.err.println("Alt gik godt, gør ændringerne forpligtigende");
> forb.commit();
>
> } catch (Exception e) {
> System.err.println("Noget gik galt med databasen! Annulerer
> ændringerne...");
> e.printStackTrace();
> forb.rollback();
> } finally {
> // Husk at sætte auto-commit tilbage, af hensyn til andre transaktioner
> forb.setAutoCommit(true);
> }
>
>
>
> 19.5.2 Metadata
> ---------------
>
> Metadata betyder egentligt "udenfor data" men kunne lige så godt forstås
> som
> "data om data". Der findes metadata på to niveauer: Metadata om
> databasen
> (DatabaseMetaData) og metadata om svaret på en forespørgsel
> (ResultSetMetaData).
>
>
>
> Metadata om databasen
>
> Disse fås ved at kalde getMetaData() på forbindelsen:
>
> DatabaseMetaData dmd = forb.getMetaData();
>
> Dette objekt har metoder der giver information om
> Producenten
> getDatabaseProductName(), getDatabaseProductVersion(), getDriverName(),
> getDriverVersion(), ...
>
> Databasens begrænsninger og hvad den understøtter
> getMaxRowSize(), getMaxStatementLength(), getMaxTableNameLength(), ...
>
> Databasens indhold (skemaer, tabeller, ...) - i form at et ResultSet med
> en
> liste:
> getSchemas(), getCatalogs(), getTableTypes(), getTables(), getColumns(),
> ...
>
>
>
> Metadata om svaret på en forespørgsel
>
> Disse fås ved at kalde getMetaData() på svaret på forespørgslen:
>
> Statement stmt = forb.createStatement();
> ResultSet rs = stmt.executeQuery("select * from KUNDER");
> ResultSetMetaData rsmd = rs.getMetaData();
>
> ResultSetMetaData-objektet har metoder som beskriver svaret, bl.a.:
> int getColumnCount() giver antal kolonner i svaret
> String getColumnName(int column) giver navnet på en given kolonne
>
> Der findes ikke en tilsvarende getRowCount() for at få antallet af
> rækker i
> svaret. Det gøres i stedet ved at gå til sidste række i svaret, spørge
> på
> rækkens nummer og så gå op til før første række:
>
> rs.last();
> int antalRækker = rs.getRow();
> rs.beforeFirst();
>
> Bemærk at det ikke altid er understøttet at hoppe rundt i rækkerne på et
> svar.
>
>
>
> 19.5.3 Optimering
> -----------------
>
> Inden du læser videre, så bemærk lige den generelle regel:
>
> Under programudviklingen er det normalt spild af tid at tænke på
> optimering
> af kørselstiden - det er bedre at koncentrere sig om funktionaliteten og
> optimere efter at programmet er skrevet næsten færdigt
>
>
> Optimering af kørselstiden bør kun ske tidligere hvis:
> - det forventes at forårsage større strukturelle ændringer i programmet
> - det forventes at give kortere udviklingstid (fordi programtests kan
> udføres hurtigere)
>
>
>
> På forhånd forberedt SQL
>
> Det er klart at der i koden vist ovenfor bruges noget tid på at fortolke
> SQL-kommandoen hver gang kaldet foretages.
>
> I stedet for at oprette en SQL-kommandoprompt med createStatement() kan
> man
> bruge metoden prepareStatement() hvor man angiver SQL-kommandoen een
> gang og
> derefter kan udføre kommandoen flere gange:
>
> PreparedStatement indsæt =
> forb.prepareStatement("insert into KUNDER values(?, ?)");
>
> PreparedStatement hent =
> forb.prepareStatement("select NAVN, KREDIT from KUNDER");
>
> Ovennævnte forberedelser sker typisk kun een gang under opstart af
> programmet. Ved selve programudførelsen fyres de forberedte kommandoer
> afsted:
>
> indsæt.setString(1, "Jacob")
> indsæt.setInt(2, -1799)
> indsæt.execute();
> indsæt.setString(1, "Brian")
> indsæt.setInt(2, 0)
> indsæt.execute();
>
> ResultSet rs = hent.executeQuery();
> ...
>
>
>
> Indeksere en kolonne med nummer i stedet for navn
>
> Det er hurtigere at indeksere en kolonne med nummer i stedet for navn.
> Husk
> blot at første kolonne er nummer 1 (og ikke nummer 0 som man ellers
> kunne
> forvente).
>
> I stedet for
> String navn = rs.getString("NAVN");
> double kredit = rs.getDouble("KREDIT");
>
> skriver man
> String navn = rs.getString(1);
> double kredit = rs.getDouble(2);
>
>
>
> Kalde gemte procedurer i databasen
>
> Visse databaser understøtter 'stored procedures' - procedurer gemt i
> databasen. Disse procedurer kan udføres hurtigere da databasen på
> forhånd
> kan optimere hvordan SQL-kaldene skal foregå.
>
> En gemt procedure kan kaldes med et CallableStatement (her forestiller
> vi os
> at der på forhånd er oprettet procedurerne indsaetkunde og hentkunder i
> databasen):
>
> CallableStatement indsætP =
> forb.prepareCall("call indsaetkunde(?, ?)");
>
> CallableStatement hentP =
> forb.prepareStatement("?= hentkunder");
>
> Resten af arbejdet foregår som med PreparedStatement:
>
> indsætP.setString(1, "Jacob")
> indsætP.setInt(2, -1799)
> indsætP.execute();
> indsætP.setString(1, "Brian")
> indsætP.setInt(2, 0)
> indsætP.execute();
>
> ResultSet rs = hentP.executeQuery();
> ...
>
>
>
> --
> Jacob Nordfalk
>


Bertel Lund Hansen (11-11-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 11-11-01 15:33

Dennis Thrysøe skrev:

>Det er sgu' da snak der er til at forstå ;)

Det er sgu da en citatstil der er umuligt at forstå!

Klip venligst den slags ned til et par linjer.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Jacob Nordfalk (11-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 11-11-01 21:45

Tak for din ros, Dennis (det er nemlig ros der giver
lysten til at skrive


--
Jacob Nordfalk




Jacob Nordfalk (11-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 11-11-01 05:37

Jacob Nordfalk wrote:

> Jeg vil gerne være med til at lave en
> Ofte Stillede Spørgsmål/OSS/FAQ (og undskyld
> at jeg ikke
> skrev før), men det forudsætter at
> jeg også har lov til bruge noget af resultatet
> på
> http://javabog.dk.
>
> Men det er måske også muligt med en "public
> domain"-licens?
>
> Som tidligere sagt så bidrager jeg gerne med
> den del af min bog der ligger på
> http://javabog.dk til en OSS.

Eneste forudsætning er at der ikke er nogen andre der kan tage det
materiale
jeg har bidraget med og bruge det i en anden kommerciel bog.

Det materiale jeg bidrager med vil være sprogligt og teknisk
korrekturlæst,
gennemarbejdet, gennemprøvet og eksemplerne vil være komplette og
garanteret
virke. Det er der gået en masse tid og penge med, og jeg vil ikke have
at
mit materiale bliver klasket sammen i en plagiat-bog der kan sælges
billigere end min fordi forfatteren har stjålet mit materiale.

Jeg skal altså have en eller anden sikkerhed for at det ikke giver
bagslag
for mig at være med.

Jeg ved ikke hvordan vi skal løse det problem?


--
Jacob Nordfalk

Thorbjørn Ravn Ander~ (11-11-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 11-11-01 17:56

Jacob Nordfalk <nordfalk@mobilixnet.dk> writes:

> Eneste forudsætning er at der ikke er nogen andre der kan tage det
> materiale
> jeg har bidraget med og bruge det i en anden kommerciel bog.

Formålet med en OSS vil efter min mening være størst mulig udbredelse
af "ordet". Alt hvad der minder om begrænsning af en sådan, vil efter
min mening være direkte i modstrid med den oprindelige grund til at
lave en OSS.

Min erfaring med OSS'er er at der skal være nogen der tager føringen
og at andre så hjælper til.

Eftersom der allerede findes et hav af engelsksprogede ressourcer
(google giver 840.000 hits på "java faq") på Internettet, vil en
nærliggende indfaldsvinkel være de brugere som er interesseret i en
_dansksproget_ udgave. Især hvis den kan fungere som "portal" for
andre dansksprogede ressourcer.

Jeg har tidligere henvist til FAQ-O-Matic som værende et godt værktøj
til dette, idet det tillader flere brugere at vedligeholde
informationen. Jeg vil godt sætte en sådan op for gruppen, og hoste
den i stil med
"http://www.unixsnedkeren.dk/dk.edb.programmering.perl/" (som nu har
været under opsætning alt for længe, men hvor jeg har skrevet de
moduler som skal sende velkomstmail i ren tekst), med en tilsvarende
URL.

Erfaring viser at det virkeligt vigtige er at få sat en fornuftig
struktur på informationen så det er til at håndtere at "hænge mere på
juletræet".

Et sted at starte kunne være det dokument jeg skrev engang
(http://groups.google.com/groups?selm=379C3097.53FF0974%40unixsnedkeren.dk&output=gplain),
men med hensyn tila t der er meget mere end det. En træstruktur ville
være god.

Hvem vil begynde? Ingen spørgsmål, kun kategorier?

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Mikkel Bundgaard (11-11-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 11-11-01 22:37

Thorbjørn Ravn Andersen <thunderbear@bigfoot.com> wrote in message
news:m2vggh8cx1.fsf@thunderbear.dyndns.dk...
> Jacob Nordfalk <nordfalk@mobilixnet.dk> writes:
>
<SNIP meget fornuftigt>
> Erfaring viser at det virkeligt vigtige er at få sat en fornuftig
> struktur på informationen så det er til at håndtere at "hænge
> mere på juletræet".
>
> Et sted at starte kunne være det dokument jeg skrev engang
>
(http://groups.google.com/groups?selm=379C3097.53FF0974%40unixsnedkere
n.dk&output=gplain),
> men med hensyn til at der er meget mere end det. En
> træstruktur ville være god.
>
> Hvem vil begynde? Ingen spørgsmål, kun kategorier?
>
> --
> Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
> http://bigfoot.com/~thunderbear
Hej Thorbjørn

Her er de kategorier, som jeg lige kunne komme på:

Netværk
* UDP
* TCP/IP
* RMI
* Netværks fejl og problemer

Brugergrænseflade
* De forskellige LayoutManager
* De forskellige Componenter
* Hvordan kan man udvide de eksisterende Componenter

Tråde
* Synkronisering af tråde
* Forskellige Tråd-implementeringer

Keywords
* Meningen af de forskellige keywords i Java (eller måske
bare henvisninger til JLS).

Primitive typer
* Konverteringer mellem de forskellige primitive typer.

IDE's
* Hvilke IDE's findes der
* Deres fordele/ulemper
* Hvor kan de downloades

Begynderspørgsmål
* Hvad betyder denne fejl ? (klassiske begynder fejl)

Henvisninger til
* Gode sites
* Gode bøger
* Gode værktøjer

Klassiske metoder
* toString(), equals(), clone() mm.

Håber i kan bruge dette udkast til noget .
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
ICQ# 116946261
Se SpaceCommunicator - en peer-to-peer chat-applikation i Java




Thorbjørn Ravn Ander~ (12-11-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 12-11-01 10:52

"Mikkel Bundgaard" <mikkelbu@teliamail.dk> writes:

> Her er de kategorier, som jeg lige kunne komme på:

Er der stillet OSS i alle disse kategorier?

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Jacob Nordfalk (13-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 13-11-01 01:55

Mikkel Bundgaard skrev:

[fornuftigt forslag]



Supplerende ideer:


Appletter og grafik

Grafiske brugergrænseflader

Datastrømme og filhåndtering

JDBC - databaseadgang

Programmering på serversiden:
- hvilke servere findes der
- JSP
- servletter
- EJB


Som sagt prøver jeg at lave et dokument med de vigtigste
spm. (+svar) jeg kan se er stillet i gruppen det sidste
stykke tid.



--
Jacob Nordfalk

Jacob Nordfalk (12-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 12-11-01 09:52

> Formålet med en OSS vil efter min mening være størst mulig udbredelse
> af "ordet". Alt hvad der minder om begrænsning af en sådan, vil efter
> min mening være direkte i modstrid med den oprindelige grund til at
> lave en OSS.

Enig.
En OSS består jo også af andres arbejde (nemlig besvarelser
i gruppen), som er samlet i et dokument.


> Min erfaring med OSS'er er at der skal være nogen der tager føringen
> og at andre så hjælper til.

Jeg vil gerne (i slutningen af ugen) trævle de gamle indlæg
igennem og gruppere spørgsmålene og svarene.

(jeg tror ikke jeg er "den der tager føringen" i længden)



> Eftersom der allerede findes et hav af engelsksprogede ressourcer
> (google giver 840.000 hits på "java faq") på Internettet, vil en
> nærliggende indfaldsvinkel være de brugere som er interesseret i en
> _dansksproget_ udgave. Især hvis den kan fungere som "portal" for
> andre dansksprogede ressourcer.

Enig igen.



> Erfaring viser at det virkeligt vigtige er at få sat en fornuftig
> struktur på informationen så det er til at håndtere at "hænge mere på
> juletræet".

Hvad med at starte i et almindeligt tekstbehandlingsdokument,
og så gruppere når man har et overblik over i hvilke kategorier
spørgsmålene falder?

Hvis der ikke er nogen indvendinger gør jeg det i slutningen af ugen.


--
Jacob Nordfalk

Thorbjørn Ravn Ander~ (12-11-2001)
Kommentar
Fra : Thorbjørn Ravn Ander~


Dato : 12-11-01 10:45

Jacob Nordfalk <nordfalk@mobilixnet.dk> writes:

> Hvad med at starte i et almindeligt tekstbehandlingsdokument,
> og så gruppere når man har et overblik over i hvilke kategorier
> spørgsmålene falder?
>
> Hvis der ikke er nogen indvendinger gør jeg det i slutningen af ugen.

Det var klart en mulighed.

Problemet med en OSS i et sådant format er at den person der "ejer"
dokumentet er flaskehalsen for redigering. Hvis du ikke allerede nu
ser dig som hovedvedligeholderen fremover, er det nok ikke en god ide,
andet end som en kladde.

Tendensen er klart henimod gruppevedligeholdte dokumenter.

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"
http://bigfoot.com/~thunderbear

Jacob Nordfalk (12-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 12-11-01 14:33

"Thorbjørn Ravn Andersen" wrote:

> Jacob Nordfalk <nordfalk@mobilixnet.dk> writes:
>
> > Hvad med at starte i et almindeligt tekstbehandlingsdokument,
> > og så gruppere når man har et overblik over i hvilke kategorier
> > spørgsmålene falder?
> >
> > Hvis der ikke er nogen indvendinger gør jeg det i slutningen af ugen.
>
> Det var klart en mulighed.
>
> Problemet med en OSS i et sådant format er at den person der "ejer"
> dokumentet er flaskehalsen for redigering. Hvis du ikke allerede nu
> ser dig som hovedvedligeholderen fremover, er det nok ikke en god ide,
> andet end som en kladde.

Helt enig.

Det var kun ment som et startformat, der lever i et par uger,
indtil overblikket er dannet.

Derefter skal vi hen i et gruppevedligeholdt dokument.

Jacob Nordfalk

Mikkel Bundgaard (12-11-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 12-11-01 16:34

Jacob Nordfalk <nordfalk@mobilixnet.dk> wrote in message
news:3BEFCF90.70AE8C9D@mobilixnet.dk...
> > > Hvad med at starte i et almindeligt
> > > tekstbehandlingsdokument, og så gruppere når man har et
> > > overblik over i hvilke kategorier spørgsmålene falder?
> > >
> > > Hvis der ikke er nogen indvendinger gør jeg det i slutningen
> > > af ugen.
> >
> > Det var klart en mulighed.
> >
> > Problemet med en OSS i et sådant format er at den person
> > der "ejer" dokumentet er flaskehalsen for redigering. Hvis du
> > ikke allerede nu ser dig som hovedvedligeholderen fremover,
> > er det nok ikke en god ide, andet end som en kladde.
>
> Helt enig.
>
> Det var kun ment som et startformat, der lever i et par uger,
> indtil overblikket er dannet.
>
> Derefter skal vi hen i et gruppevedligeholdt dokument.
>
> Jacob Nordfalk
Hej Alle

Måske kan man lave siden som et Wiki Wiki Web, hvor alle kan
oprette, rette mm. i siderne.
http://c2.com/cgi/wiki?WikiWikiWeb
Jeg kan selv godt lide denne form for hjemmeside, men den kan
dog godt blive lidt overskuelig.
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
ICQ# 116946261
Se SpaceCommunicator - en peer-to-peer chat-applikation i Java



Brian Matzon (12-11-2001)
Kommentar
Fra : Brian Matzon


Dato : 12-11-01 17:43


> Måske kan man lave siden som et Wiki Wiki Web, hvor alle kan
> oprette, rette mm. i siderne.
> http://c2.com/cgi/wiki?WikiWikiWeb
> Jeg kan selv godt lide denne form for hjemmeside, men den kan
> dog godt blive lidt overskuelig.

Ja, det er et stort problem med overskuelige sider :))

/Brian Matzon



Martin Ehmsen (12-11-2001)
Kommentar
Fra : Martin Ehmsen


Dato : 12-11-01 11:23

Jacob Nordfalk wrote:

>
> Jeg vil gerne være med til at lave en
> Ofte Stillede Spørgsmål/OSS/FAQ (og undskyld
> at jeg ikke
> skrev før), men det forudsætter at
> jeg også har lov til bruge noget af resultatet
> på
> http://javabog.dk.
>
> Men det er måske også muligt med en "public
> domain"-licens?
>
> Som tidligere sagt så bidrager jeg gerne med
> den del af min bog der ligger på
> http://javabog.dk til en OSS.

Følgende er brugt som licens for OSS'en i dk.edb.internet. Jeg ved ikke
om du kan gå med til de betingelser:

4 Distribuering af denne OSS

Denne OSS udsendes en gang om måneden i gruppen dk.edb.internet.
Den faste webside for OSS'en er
<URL:http://usenet.dk/oss/dk.edb.internet/>.
Såfremt du er interesseret i at hente OSS'en hjem til offline-brug,
kan du hente den i ZIPpet form (ca. 40kb).

Det er tilladt at kopiere og distribuere denne OSS via enhvert medie,
så længe følgende punkter overholdes:

Der må ikke kræves penge for OSS'en
Det er tilladt at lægge denne OSS på en shareware-CD eller andet
medie, såfremt der kun tages penge for kopieringen af dette medie. Det
er derimod ikke tilladt at trykke OSS'en i bogform og derefter udgive
denne bog (såfremt der kræves penge for den).
I tvivl? Så kontakt redaktørerne.
Der må ikke rettes i OSS'en
Du er velkommen til eksempelvis at kopiere denne OSS og lægge den på
din egen webserver, men du må ikke klippe et afsnit ud og nøjes med at
anvende det. Men under alle omstændigheder vil redaktørerne gerne have
en mail om det.
Der skal være tydelig kildehenvisning
Der skal ikke være tvivl om hvorfra materialet stammer.

Vi er selvfølgelig til at tale med og regner heller ikke med at der
vil være nogle problemer forbundet med en evt. distribuering af OSS'en.
Vi har lavet den frivilligt og ønsker blot ikke at nogle skal tjene
penge på vort og andres arbejde.


Mvh.
Martin Ehmsen
--
"Life is good for only two things,
discovering mathematics and teaching mathematics"
Siméon Poisson

Karsten (11-11-2001)
Kommentar
Fra : Karsten


Dato : 11-11-01 16:22

On Mon, 12 Nov 2001 11:22:56 +0100, Martin Ehmsen wrote:

> Det er tilladt at kopiere og distribuere denne OSS via enhvert medie,
> så længe følgende punkter overholdes:
>
> Der må ikke kræves penge for OSS'en
> Det er tilladt at lægge denne OSS på en shareware-CD eller andet
> medie, såfremt der kun tages penge for kopieringen af dette medie. Det
> er derimod ikke tilladt at trykke OSS'en i bogform og derefter udgive
> denne bog (såfremt der kræves penge for den).
> I tvivl? Så kontakt redaktørerne.
> Der må ikke rettes i OSS'en
> Du er velkommen til eksempelvis at kopiere denne OSS og lægge den på
> din egen webserver, men du må ikke klippe et afsnit ud og nøjes med at
> anvende det. Men under alle omstændigheder vil redaktørerne gerne have
> en mail om det.
> Der skal være tydelig kildehenvisning
> Der skal ikke være tvivl om hvorfra materialet stammer.
>
> Vi er selvfølgelig til at tale med og regner heller ikke med at der
> vil være nogle problemer forbundet med en evt. distribuering af OSS'en.
> Vi har lavet den frivilligt og ønsker blot ikke at nogle skal tjene
> penge på vort og andres arbejde.

Det lugter lidt af GPL. Skulle der være noget i vejen for at benytte den
licens på andet end software?

--
/Karsten
Please encrypt. Mail me for key. (do not forget to include your own).

Jacob Nordfalk (12-11-2001)
Kommentar
Fra : Jacob Nordfalk


Dato : 12-11-01 10:06

Jeg synes den er lidt for streng til en OSS.

Jeg måske er det bedre at skille i en fri OSS og i en bog, og
så er det OK at en del af bogen kommer med i OSSen
(så opgiver jeg bare ophavsrettighederne på de afsnit).



Martin Ehmsen wrote:

> Jacob Nordfalk wrote:
>
> >
> > Jeg vil gerne være med til at lave en
> > Ofte Stillede Spørgsmål/OSS/FAQ (og undskyld
> > at jeg ikke
> > skrev før), men det forudsætter at
> > jeg også har lov til bruge noget af resultatet
> > på
> > http://javabog.dk.
> >
> > Men det er måske også muligt med en "public
> > domain"-licens?
> >
> > Som tidligere sagt så bidrager jeg gerne med
> > den del af min bog der ligger på
> > http://javabog.dk til en OSS.
>
> Følgende er brugt som licens for OSS'en i dk.edb.internet. Jeg ved ikke
> om du kan gå med til de betingelser:
>
> 4 Distribuering af denne OSS
>
> Denne OSS udsendes en gang om måneden i gruppen dk.edb.internet.
> Den faste webside for OSS'en er
> <URL:http://usenet.dk/oss/dk.edb.internet/>.
> Såfremt du er interesseret i at hente OSS'en hjem til offline-brug,
> kan du hente den i ZIPpet form (ca. 40kb).
>
> Det er tilladt at kopiere og distribuere denne OSS via enhvert medie,
> så længe følgende punkter overholdes:
>
> Der må ikke kræves penge for OSS'en
> Det er tilladt at lægge denne OSS på en shareware-CD eller andet
> medie, såfremt der kun tages penge for kopieringen af dette medie. Det
> er derimod ikke tilladt at trykke OSS'en i bogform og derefter udgive
> denne bog (såfremt der kræves penge for den).
> I tvivl? Så kontakt redaktørerne.
> Der må ikke rettes i OSS'en
> Du er velkommen til eksempelvis at kopiere denne OSS og lægge den på
> din egen webserver, men du må ikke klippe et afsnit ud og nøjes med at
> anvende det. Men under alle omstændigheder vil redaktørerne gerne have
> en mail om det.
> Der skal være tydelig kildehenvisning
> Der skal ikke være tvivl om hvorfra materialet stammer.


--
Jacob Nordfalk

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste