_ 3.1.2 Databaskopplingar Denna uppgift belyser hur man kopplar sig till en databasserver på Internet. __ Uppgift Gör ett program som implementerar en gästbok där användaren ska kunna fylla i följande (tex i fält om man använder GUI): - Namn - Epost - Hemsida - Kommentar Användarens inlägg ska sparas i en databasserver (antingen en egen eller den som kör på DSV). Alla inlägg ska visas (tex i en textarea om man använder GUI). All text ska kontrolleras så att den inte innehåller HTML-kod och om den gör det så ska texten bytas ut mot exempelvis ordet §censur§. De färdiga class-filerna ska packas i en jar-fil tillsammans med det JDBC-gränssnitt mot MySQL som behövs. __ Exempel Ett enkelt exempel kan köras enligt följande: = Hämta filen: §[SQLGuestbook.jar, 05_ass/ip1/3/3.1.2/SQLGuestbook.jar]§ = Kör programmet med: §java -jar SQLGuestbook.jar§ __ Tips Man måste använda en databasserver, se sidan [Kursmaterial, 03_material/ip1.txt]. Man kodar i ett programmeringsspråk (exempelvis Java med hjälp av paketet §java.sql§) oberoende av vilken databas man använder och laddar in ett lämpligt mellanprogram som gör att koden fungerar till en viss databas (exempelvis MySQL). Det finns olika mellanprogram till olika programmeringsspråk och till olika databaser. Ett lämpligt mellanprogram (även kallat JDBC-gränssnitt) för Java och MySQL är: - §[mysql-connector-java-5.0.8-bin.jar, 03_material/pgms/mysql/mysql-connector-java-5.0.8-bin.jar]§ Ladda ner det och packa upp jar-filen i katalogen för denna uppgift. Man programmerar alltså inte direkt till mellanprogrammet utan det enda man gör är att ladda in det till huvudprogrammet: § Class.forName("com.mysql.jdbc.Driver").newInstance(); § Vill man senare byta databas så laddar man bara in ett annan mellanprogram och behöver således bara ändra på kodraden ovan. Anslutningen görs sedan med: § Connection dbConnection = DriverManager.getConnection(url, username, password); § där: - §url§ = §”jdbc:mysql://" + computer + "/" + db_name;§ - §computer§ = Datorns värdnamn, exempelvis §atlas.dsv.su.se§ - §db_name§ = Namnet på den specifika databasen - §username§ = Användarnamnet för §db_name§ - §password§ = Lösenordet för §db_name§ När man ska skapa en jar-fil med alla class-filer inkluderat de från filen §mysql-connector-java-5.0.8-bin.jar§ så kan man först packa upp filen §mysql-connector-java-5.0.8-bin.jar§ med: § jar xf mysql-connector-java-5.0.8-bin.jar § Sedan kan man packa ihop allt, inklusive sina egna class-filer, med: § jar cmf manifest.txt SQLGuestbook.jar *.class org com § Paketet §java.util.regex§ är användbart vid kontrollen av HTML-kod. Man kan exempelvis använda: § Pattern p = Pattern.compile("<.*>"); § __ Hjälp ~ 05_ass/help/01.txt > [Klicka här för hjälp, helper.dsv@gmail.com, Prog Internet: 3.1.2 Databaskopplingar: http://people.dsv.su.se/~pierre/i/i.cgi?href=05_ass/ip1/3.1.2.txt] ½===system_tutoring_message===½ < ~ 05_ass/help/02.txt