Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: java en eclipse, mysql  (gelezen 6422 keer)

java en eclipse, mysql
« Gepost op: 2008/06/06, 19:58:08 »
Ik heb sinds  ruim 2 jaar Ubuntu op mijn computer staan. Ik volg nu een avondcursus programmeren. Daar is Windows alles wat de klok slaat.
We hebben daar een inleiding in C++ gekregen, verder is vooral C# aan bod gekomen (met Visual Studio) en SQL voor database. Ik zou graag programma's schrijven die werken in verschillende besturingssystemen. Ik dacht daarbij aan java. Is dat een een goede keuze?
Ik heb via synaptic Eclipse geïnstalleerd, dat is release 3.1.2. In Windows (die in dual boot op mijn computer staat) heb ik ook Eclipse geïnstalleerd, dat is daar release 3.3.0, die toch een meerwaarde biedt.
Kan ik ook in Ubuntu (momenteel Dapper) een recentere release installeren? Kan dat via Synaptic (zonder synaptic iets installeren is me nog nooit gelukt)?
Verder zou ik ook graag met een database werken. Kan ik Mysql installeren met synaptic? Via welk programma kan ik die database dan aanspreken?

Offline dvdmeer

  • Lid
    • Python-RandR :: dvdmeer.nl
java en eclipse, mysql
« Reactie #1 Gepost op: 2008/06/06, 23:05:40 »
Hoi,

voor Linux is zelfs versie 3.3.2 beschikbaar. Zie http://www.eclipse.org/downloads/.
Echter gebruik je nog Dapper, waar je vast wel je redenen voor hebt (welke?), via Synaptic zal je die versie dus niet binnenkrijgen.

Je kan hem wel via de eerder gegeven link downloaden.
Directe link voor de normale versie: Klik
Er is ook aparte versie voor C/C++: Klik
Je krijgt dan een tar.gz bestand binnen. Die uitpakken, en je kan het programma al draaien. (de starter zit in de uitgepakte map).
Als je er wel/niet uitkomt, laat het even weten.

Offline idefix

  • Lid
java en eclipse, mysql
« Reactie #2 Gepost op: 2008/06/07, 08:38:04 »
Ik moet eerlijk bekennen (en het zal volledig aan mij liggen): ik heb nooit Java en Mysql met elkaar kunnen doen praten.
Met Python en Mysql was dit op 5 minuten geklonken.
Python is ook makkelijker te leren dan Java, maar aangezien je nu een C-achtergrond hebt, heb je een voorsprong met Java...;
Support bacteria. They're the only culture some people have.

Nizzle

  • Gast
java en eclipse, mysql
« Reactie #3 Gepost op: 2008/06/07, 13:46:10 »
Ik programmeer java met eclipse en gebruik ook mysql en mssql
heb thuis en op mijn werk ook een ubuntu pc waar eclipse op draait

op school doe ik dit ook maar dan met een mac laptopje
het grootste gedeelte van de klas heeft een windows laptop..

en tot nu toe werkte altid alles gelijk op de verschillende OS
wel is het op mijn werk zo dat ik vaak wel even via remote desktop naar een windows pc ff ga testen.. gewoon voor de zekerheid

java en eclipse, mysql
« Reactie #4 Gepost op: 2008/06/07, 16:00:35 »
Ik zal nog wat hulp nodig hebben. In welke map moet ik eclipse downloaden. Uitpakken met archiefbeheer? En wat is een starter?

Offline bram103

  • Lid
java en eclipse, mysql
« Reactie #5 Gepost op: 2008/06/07, 16:41:05 »
Ik heb Eclipse (meerdere versies) gewoon in een directory 'bin' onder mijn home dir gezet daar staan ook diverse versies van Tomcat en Java, werkt goed.

Een starter is het uitvoerbare programma waarmee je Eclipse opstart, voor de Linux versie is dat eclipse en staat in de root van eclipse directory boom.

java en eclipse, mysql
« Reactie #6 Gepost op: 2008/06/07, 18:30:13 »
OK, dat is gelukt. Ik heb ook eclipse ook in het menu kunnen toevoegen.
Ik veronderstel dat ik ook een recenter java JRE nodig heb ( nu is dat 1.4.2).
Zo werkt bv een colorchooser niet.
Bij Systeem, Voorkeuren is ook sprake van Sun Java 5.0 plugin control panel. Wil dat zeggen dat er ook een recentere versie op mijn computer staat (1.5.0 ?). Hoe kom ik dan te weten waar die ergens staat (om die aan een project toe te voegen)?
Ik heb nu Dapper. Doe ik er goed aan een recentere Ubuntu te installeren? Ik heb een beetje schrik dat het ten koste van de snelheid gaat gaan (ik heb 512 MB RAM).

Offline kennywest

  • Lid
    • http://kennywest.blogspot.com
java en eclipse, mysql
« Reactie #7 Gepost op: 2008/06/07, 18:47:50 »
- Om de meest recente versie van Java te installeren op Dapper, volg deze post:
http://kennywest.blogspot.com/2007/08/linux-installing-sun-java-6u2-debian.html
Heeft blijkbaar al een aantal mensen geholpen.
- De meest recente versie van Eclipse kan je ook van eclipse.org halen. Gewoon uitpakken en klaar. Je kan dit uitpakken waar je wil. Ik dacht dat de laatste versie van Eclipse minstens java 1.5 nodig heeft.
- Om een Java applicatie te schrijven die gegevens opslaat in een databank gebruik je best hibernate (http://hibernate.org/), samen met Spring (http://springframework.org/). Wees wel bereid om veel te lezen en bij te leren. Applicaties programmeren (in eender welke taal) vraagt nu eenmaal veel kennis van zaken en frameworks (zoals hibernate en Spring).
- Als Dapper lekker draait op 512 MB, blijf bij Dapper. Dapper was de stabielste Ubuntu die ik tot nu toe gezien heb.

Als je nog vragen hebt of opmerkingen, stel ze gerust :)

Nizzle

  • Gast
java en eclipse, mysql
« Reactie #8 Gepost op: 2008/06/08, 20:01:44 »
Citaat van: kennywest
- Om een Java applicatie te schrijven die gegevens opslaat in een databank gebruik je best hibernate (http://hibernate.org/), samen met Spring (http://springframework.org/). Wees wel bereid om veel te lezen en bij te leren. Applicaties programmeren (in eender welke taal) vraagt nu eenmaal veel kennis van zaken en frameworks (zoals hibernate en Spring).
hoeft niet natuurlijk.. kan wel handig zijn maar niet verplicht :P

Offline idefix

  • Lid
java en eclipse, mysql
« Reactie #9 Gepost op: 2008/06/09, 09:57:45 »
Weet iemand een duidelijke handleiding staan voor installatie en vooral CONFIGURATIE van Connector/J? Er van uitgaande dat MySQL en Java werken natuurlijk...
Ik krijg dat echt niet aan de praat...
PS: dit draadje verschuiven naar nieuw subforum?
Support bacteria. They're the only culture some people have.

Offline markba

  • Lid
    • http://markbaaijens.nl/
java en eclipse, mysql
« Reactie #10 Gepost op: 2008/06/09, 10:44:50 »
Kwam dit net tegen, een vergelijking van verschillende frameworks voor het ontwikkelen van web-based applicaties in samenwerking met een database: http://oodt.jpl.nasa.gov/better-web-app.mov

Zeer verhelderend: java wordt afgeserveerd als te moeilijk, complex, etc., zeker als het vergeleken wordt met moderne frameworks als Ruby-on-Rails, Django, Zope. Het aardige van het filmpje is dat dit verschil naar voren komt aan de hand van een praktische test: dezelfde functionaliteit ontwikkelen met java (servletts) duurde 225 min., onder Zope (python) 7 min., Django 16 min., etc.

Mijn favoriet is Django, van het weekend in een kwartier een database web-app gemaakt (inclusief installatie). Django is gebaseerd op Python, een laagdrempelige maar tegelijkertijd zeer krachtige scripting-taal. Ben lang aan het twijfelen geweest om met java iets te doen (heb intussen een open source project in java geschreven), maar ben nu definitief 'om' voor Django/python: snel, eenvoudig, cross-platform, goede documentatie, etc. Om een indruk te geven: Django wordt binnen de Google App Engine als applicatie aangeboden: het is al langer bekend dat Google zeer veel met pyhon doen, maar dit is toch wel significant.
http://code.google.com/appengine/docs/whatisgoogleappengine.html

Maar goed, bekijk het filmpje eens en trek je eigen conclusie.

java en eclipse, mysql
« Reactie #11 Gepost op: 2008/06/09, 16:17:05 »
Ik ben gaan kijken naar de link van kennywest, De instructies schrikten me wel af. Mijn (weinige) ervaring met zo'n werk in de terminal, leert me dat het meestal niet werkt als ik zelf niet snap waar ik mee bezig ben.
Maar Java 1.5.0. stond blijkbaar al op mijn computer, alleen vond Eclipse dat niet automatisch. Ik veronderstel dat Eclipse nu werkt zoals ik het al in windows had gezien.
Ik zou ook graag met MySQL starten. Staat daar standaard iets van op de computer, hoe kan ik dat zien, kan ik via synaptic installeren?
Kan ik een database creëren via de terminal, of is daar ook een GUI bij?

Offline kennywest

  • Lid
    • http://kennywest.blogspot.com
java en eclipse, mysql
« Reactie #12 Gepost op: 2008/06/09, 21:36:53 »
@markba: Ik heb het filmpje heel aandachtig bekeken en als Java ontwikkelaar moet ik toegeven dat sommige dingen inderdaad juist zijn. Maar voor andere dingen gaat ie echt wel heel kort door de bocht. Door de komst van verschillende frameworks, zoals Spring en Hibernate, wordt de complexiteit verlegd van het schrijven van ettelijke lijnen code naar het prullen in XML configuratie bestanden. Als je natuurlijk, net als de auteur van de presentatie, gebruik maakt van Emacs om code te schrijven, dan ontbreekt uiteraard elke vorm van validatie met de resulterende hoofdpijn tot gevolg. Als je echter gebruik maakt van een degelijke en geïntegreerde IDE (zoals Eclipse, NetBeans, InteliJ IDEA) dan gaat het bewerken van die XML bestanden veel sneller en zonder fouten. Het schrijven van gewone code in die IDEs is uiteraard ook zeer eenvoudig. James Goshling (de vader van Java) vertelde dit jaar op JavaPolis dat Emacs een goede editor was ... 20 jaar geleden :) Gebruik aub de tools waarvoor ze gemaakt zijn en gebruik voor het ontwikkelen van code deftige IDEs.
Verder is het filmpje ook een beetje aan de verouderde kant. Er wordt niets verteld over Spring en Spring maakt het ontwikkelen van webapps en RCP applicaties (Rich Client Platform) een echte peulenschil.
De voorbeeld applicatie is ook niet echt realistisch. Misschien duurt het inderdaad 225 minuten om een Time Log applicatie te schrijven. Maar ik kan me best voorstellen dat mocht je in de voorgestelde frameworks een echte enterprise applicatie schrijven, de codeertijd bijna even groot zal worden. MS probeert ook al jaren de n-Tier architectuur overboord te gooien en ontwikkelaars te lijmen met wizards om snel code te schrijven. Dit levert misschien snel een applicatie op, maar dit gaat ten kost van uitbreidbaarheid en flexibiliteit van code.
Niet alles kan je zomaar genereren. En gegenereerde applicaties zijn niet noodzakelijk even schaalbaar als zijn n-Tier tegengangers.
Anyway, het is niet mijn bedoeling om een flamewar te starten, maar ik wou toch even de Java wereld in een beter daglicht plaatsen dan het filmpje. En ja EJB zuigt (vandaar dat wij het al jaren niet meer gebruiken) :)

java en eclipse, mysql
« Reactie #13 Gepost op: 2008/06/10, 19:34:06 »
OK, kon MySQL installeren via synaptic, en een database aanmaken via de terminal.

Offline idefix

  • Lid
java en eclipse, mysql
« Reactie #14 Gepost op: 2008/06/10, 20:30:16 »
Citaat van: kennywest
@markba: Ik heb het filmpje heel aandachtig bekeken en als Java ontwikkelaar moet ik toegeven dat sommige dingen inderdaad juist zijn. Maar voor andere dingen gaat ie echt wel heel kort door de bocht. Door de komst van verschillende frameworks, zoals Spring en Hibernate, wordt de complexiteit verlegd van het schrijven van ettelijke lijnen code naar het prullen in XML configuratie bestanden. Als je natuurlijk, net als de auteur van de presentatie, gebruik maakt van Emacs om code te schrijven, dan ontbreekt uiteraard elke vorm van validatie met de resulterende hoofdpijn tot gevolg. Als je echter gebruik maakt van een degelijke en geïntegreerde IDE (zoals Eclipse, NetBeans, InteliJ IDEA) dan gaat het bewerken van die XML bestanden veel sneller en zonder fouten. Het schrijven van gewone code in die IDEs is uiteraard ook zeer eenvoudig. James Goshling (de vader van Java) vertelde dit jaar op JavaPolis dat Emacs een goede editor was ... 20 jaar geleden :) Gebruik aub de tools waarvoor ze gemaakt zijn en gebruik voor het ontwikkelen van code deftige IDEs.
Verder is het filmpje ook een beetje aan de verouderde kant. Er wordt niets verteld over Spring en Spring maakt het ontwikkelen van webapps en RCP applicaties (Rich Client Platform) een echte peulenschil.
De voorbeeld applicatie is ook niet echt realistisch. Misschien duurt het inderdaad 225 minuten om een Time Log applicatie te schrijven. Maar ik kan me best voorstellen dat mocht je in de voorgestelde frameworks een echte enterprise applicatie schrijven, de codeertijd bijna even groot zal worden. MS probeert ook al jaren de n-Tier architectuur overboord te gooien en ontwikkelaars te lijmen met wizards om snel code te schrijven. Dit levert misschien snel een applicatie op, maar dit gaat ten kost van uitbreidbaarheid en flexibiliteit van code.
Niet alles kan je zomaar genereren. En gegenereerde applicaties zijn niet noodzakelijk even schaalbaar als zijn n-Tier tegengangers.
Anyway, het is niet mijn bedoeling om een flamewar te starten, maar ik wou toch even de Java wereld in een beter daglicht plaatsen dan het filmpje. En ja EJB zuigt (vandaar dat wij het al jaren niet meer gebruiken) :)
Java is toch de meest gebruikte (of één van de meest gebruikte) programmeertalen ter wereld, dacht ik. Dat zegt genoeg. En idd, van die tools, dat klopt wel. Ik had het alleen zelf ook nog niet zo bekeken.

Anyway, ik vind Java te complex voor mezelf: als je eens kijkt hoeveel verschillende types  streams er zijn: meer dan 60! (C heeft 1 (!) type). Dat is echt om in te verdwalen. Ik heb dat boek liggen van Ivor Horton: "Beginning Java 2 JDK 5 Edition": 1470 pagina's. Ik ben er vol goede moed aan begonnen, maar ik heb opgegeven rond pagina 500: er waren al 150 pagina's alleen over streams en ik ben gestopt. Ik dacht: "Dit kan ik nooit onthouden".
Nu, achteraf denk ik ook dat het niet de bedoeling is alles te onthouden, maar voor mij was het teveel.

Maar nogmaals: dit geldt voor mezelf. Ik vind het een indrukwekkende taal. En de API's zijn zeer talrijk. Er bestaan volgens mij geen gebieden waar Java niet kan werken.

Maar als je het echt goed wil kennen, moet je bereid zijn er een echte hobby van te maken en VEEL tijd in te steken.
Support bacteria. They're the only culture some people have.

Offline kennywest

  • Lid
    • http://kennywest.blogspot.com
java en eclipse, mysql
« Reactie #15 Gepost op: 2008/06/13, 19:42:21 »
Idd, toegegeven, Java is een heel uitgebreide taal, maar je hoeft niet alles te kennen om aan de slag te kunnen. Ik ken ook niet alle streams en gebruikt van die 60 streams een 5-tal ofzo. De rest leer je gaandeweg wel bij. Belangrijker is kennis van frameworks, zoals degene die ik eerder al vernoemd heb. Kennis van deze frameworks is noodzakelijk om als Java ontwikkelaar aan de slag te kunnen. Deze frameworks vereenvoudigen immers het leven van een programmeur drastisch.
Welke taal je ook kiest om te leren programmeren ... elke taal die een beetje volwassen is en waar een gedreven community achter zit is zeer uitgebreid en biedt tal van frameworks/libraries om het programmeren te vereenvoudigen. Dus voor je een library/API zelf gaat ontwikkelen, kijk je best eens op het Internet of iemand dergelijke problematiek reeds tegenkwam en daar een library voor ontwikkeld heeft.
Een voorbeeld hiervan is het nagaan of een String al dan niet leeg is. Normaal doe je het zo:
if (string != null && string.length > 0) {
    // doe iets met string
}
Dankzij Jakarta Commons kan het zo:
if (StringUtils.isNotEmpty(string)) {
    // doe iets met string
}
Als je wil nagaan of de gebruiker niet gewoon spaties heeft ingetokkeld, kan het zo:
if (StringUtils.isNotBlank(string)) {
    // doe iets met string
}
Dit voorbeeld lijkt onnozel, maar het gebruik van al die kleine, handige libraries maakt mijn leven heel wat minder complex :)

Offline idefix

  • Lid
java en eclipse, mysql
« Reactie #16 Gepost op: 2008/06/14, 12:23:06 »
Merci KennyWest, voor de heel heldere uitleg!!
Ik denk dat deze draad mag verschoven worden naar "programmeren"
Support bacteria. They're the only culture some people have.

java en eclipse, mysql
« Reactie #17 Gepost op: 2008/06/16, 00:30:32 »
Ik heb nu Eclipse en MySQL aan de praat. Nu moet ik nog een verbinding tussen beide tot stand brengen.
Ik heb in synaptic 'libmysql.jdbc-java' geïnstalleerd (MySQL Connector is a Type-4 JDBC driver). Mijn code in Java ziet er o.a. zo uit:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbnaam","user", "ww");
Statement state = con.createStatement();
ResultSet set = state.executeQuery("select naam, voornaam from persoon");
enz.
Ik krijg volgende Exception:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver.
Moet ik ergens een pad instellen? Is dit de juiste driver?
Ik weet ook niet hoe het zit met het poortnummer(3306?).

Offline kennywest

  • Lid
    • http://kennywest.blogspot.com
java en eclipse, mysql
« Reactie #18 Gepost op: 2008/06/16, 07:59:50 »
Ik denk dat je eerst wat zal moeten lezen en jezelf vertrouwd maken met hoe java werkt. Om libraries te vinden maakt java gebruik van een classpath. Je moet ervoor zorgen dat de JDBC driver van MySQL in uw classpath staat. In de properties van uw project (in eclipse) voeg je onder Java Build Path -> Libraries de JDBC driver toe.

java en eclipse, mysql
« Reactie #19 Gepost op: 2008/06/17, 19:28:04 »
Ik ben er intussen in geslaagd connectie te maken met mijn database vanuit Java.
Ik denk dat de driver die ik geïnstalleerd had niet geschikt is voor java 1.5.
Vanaf http://dev.mysql.com/downloads/ heb ik volgende driver gedownload:
mysql-connector-java-5.0.8. In Eclipse heb ik het path ernaar toe ingesteld in Project -> Properties -> Java Build Path -> Libraries -> Add External JARs naar mysql-connector-java-5.0.8-bin.jar.
Ik heb de database 'boekhouding' gemaakt als anonymous (unnamed) user op de  server die op mijn eigen computer staat (local host). Als user moet ik dan 'root' opgeven en geen paswoord (wat ik eigenaardig vind, want als ik mysql opstart moet ik wel mijn paswoord ingeven).
Met volgende code lukt de connectie:

String url = "jdbc:mysql://localhost/boekhouding";
try{
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   Connection con = DriverManager.getConnection(url,"root","");
   Statement state = con.createStatement();
   ResultSet set = state.executeQuery("select naam, voornaam from persoon");
   while(set.next()){
      String naam = set.getString("naam");
      String voornaam = set.getString("voornaam");
      textarea.append(naam+" "+voornaam+"\n");
   }         
   con.close();
}
catch (Exception ex){
   System.out.println("probleem: "+ex);
}

Offline kennywest

  • Lid
    • http://kennywest.blogspot.com
java en eclipse, mysql
« Reactie #20 Gepost op: 2008/06/18, 08:11:44 »
In synaptic zou je een administratieve UI moeten vinden voor MySQL. Ik dacht dat het mysql-admin of mysql-admin-ui was. Dit vergemakkelijkt het aanmaken van extra gebruikers en databank schema's voor mensen die niet vertrouwd zijn met de command line tools om MySQL te beheren.
Als je echt van plan bent een applicatie te schrijven in Java bovenop een databank, zoals MySQL, loont het echt wel de moeite om eens te kijken naar Hibernate (zie eerder posts van mij). Via Hibernate kan je gewoon objecten (zoals Persoon, Adres, ...) wegschrijven naar een databank zonder dat je SQL queries moet schrijven. Er zijn weinig mensen die nog gebruik maken van plain SQL om opjecten te persisteren naar een databank. ORM tools zoals Hibernate kunnen dat veel beter :)

java en eclipse, mysql
« Reactie #21 Gepost op: 2008/06/19, 08:47:12 »
Bedankt voor de tips. Die mysql-admin ziet er best handig uit (alhoewel ik al niet zo direkt vond hoe je een nieuwe database aanmaakt).
Ik heb insert, update, delete, select operaties en stored procedures uitgeprobeerd vanuit java, dat lukte allemaal. Ik heb dus voorlopig niet echt behoefte aan nieuwe tools of bibliotheken. Het probleem met tools als Hibernate is dat je ze eerst moet leren.
Hetzelfde geldt trouwens ook voor Eclipse met al zijn mogelijkheden ... en onhebbelijkheden. Voor het programmeren van Java kan ik wel moeilijk zonder een goede omgeving met contexthulp omdat er zo ontzettend veel  klassen en methoden zijn. Maar voor sql of bv. html kan een eenvoudige omgeving volstaan.
Ik was een tijd geleden met een gridview in C# aan de slag. Dat is om een punthoofd van te krijgen, zovele eigenschappen en methoden. Dan verlang je toch naar iets eenvoudigers. Ik heb dan zelf een gridview proberen te maken, wat natuurlijk ook veel werk vraagt, maar dan weet je tenminste toch wat ie doet (of niet doet).

Offline kennywest

  • Lid
    • http://kennywest.blogspot.com
java en eclipse, mysql
« Reactie #22 Gepost op: 2008/06/19, 14:50:44 »
Welja, voor Hibernate was elke DAO aangewezen op het implementeren van een aantal CRUD methodes die dan de nodige operaties in SQL gingen doen (CRUD = create,retrieve,update,delete). Bijkomend probleem is het onderhouden van relaties. Stel het object Persoon heeft een lijst van meerdere Adres objecten (om bijvoorbeeld thuis adres en werk adres te bewaren). Om een persoon samen met zijn adressen te bewaren / onderhouden en dit op een consistente manier te doen én dan nog eens transactioneel zal je heel wat SQL mogen schrijven. In hibernate doe je gewoon:
   
Persoon p = new Persoon("kennywest");
Adres thuis = new Adres(...);
Adres werk = new Adres(...);
p.addAdres(thuis);
p.addAdres(werk);
save(p);
De save methode in bovenstaand voorbeeld zal dan gewoon een Hibernate sessie openen, een transactie starten, via de sessie de persoon bewaren, commit, gedaan. Aangezien Persoon een one-to-many relatie zal hebben naar Adres kan je Hibernate vertellen dit mee te bewaren / op te halen.
Toegegeven, de leercurve van Hibernate is misschien wat steil, maar het maakt de applicatie zelf véél eenvoudiger en Hibernate wordt door iedereen en overal gebruikt. Er is zelfs een .NET versie.