Poster taggade med ‘mysql’

Sida 1/2:12
Grunden i varje webbprojekt består av en databas. I de flesta fall rör det sig om en klassisk relationsdatabas i form av MySQL eller motsvarande. Denna arkitektur är välkänd, mogen och har tjänat oss väl, men på senaste tiden har uttrycket ”NoSQL” hörts mer och mer. Bakom uttrycket döljer sig en rad olika typer av databaser som bygger på andra paradigm än den klassiska relationsdatabasen, i denna artikel tänker jag ge en översikt av dokumentdatabasen CouchDB. Läs mer >>

Detta inlägg ingår i serien Spring från början och kommer att behandla det transaktionsstöd som finns i springmodulen spring-tx.

Transaktioner är ett sätt att hålla ihop en eller flera operationer. Typiskt gäller principen ”allt eller inget” vilket betyder att alla operationer som ingår i en transaktion ska exekveras utan fel för att transaktionen ska gälla. Det vanligaste fallet är databastransaktioner där exempelvis flera skrivningar måste exekveras utan fel innan en så kallad commit genomförs. Ett exempel på detta är det klassiska bankkontoexemplet med överflyttning av pengar från ett konto till ett annat. En överflyttning sker genom att ett uttag först sker från ett konto och sedan insättning på ett annat konto. Bägge operationerna måste lyckas, annars ska transaktionen inte gälla det vill säga att man ”rullar tillbaka” transaktionen via en så kallad rollback.

Spring erbjuder på ett enhetligt sätt stöd för att kunna hantera transaktioner av olika slag som till exempel JTA, JDBC, Hibernate, JPA och JDO. Transaktionsstödet kan användas på två sätt, deklarativt eller programmatiskt. Det deklarativa sättet är det absolut vanligaste och innebär att metadata kring transaktionslogik inte ligger inbäddad i den faktiska javakoden utan enbart finns deklarerad ”utanför” javakoden via metadata. Metadata kan antingen bestå av externa XML-filer eller annotationer och påverkar alltså inte javakoden, den är så att säga non-intrusive.

Läs mer >>

Om ni använder MySQL så kan det vara intressant att titta på MySQLs nya profilerare, som finns tillgänglig i MySQL 5.0.37 Community Edition (släpptes 27 februari i år). Sedan tidigare finns ju nyckelordet ”EXPLAIN” i MySQL som kan ge information om vilka index etc. som används – dvs. hur en fråga exekveras – men med hjälp av den nya profileraren kan man få ännu mer detaljerad information om var tidsåtgången ligger. Kanske är det när det skapas temporära tabeller, eller när data skickas till klienten – den nya profileraren kan hjälpa er med svaret.

Torben berättade att MySQL 5 just släppts! Det är ju en stor nyhet, så det första man försöker göra är ju att läsa på lite om de nya grejerna. Men klickar du på ”Read the Whitepaper” så får du, istället för snygg och överskådlig information, ett registreringsformulär i ansiktet. Sånt tycker jag är väldigt tråkigt, och jag förstår inte hur ett bolag kan lägga ner så mycket jobb på att hindra folk från att läsa säljinformation om deras produkter…

Det verkar förresten som om jag inte är ensam om mina åsikter om detta

Det är ingen överdrift att säga att objektorienterad systemutveckling är det helt dominerande synsättet för programkonstruktion, och det har det också varit de senaste åren. Men utvecklingen har inte stått stilla för det. Ett exempel på nya hjälpmedel i OO-verktygslådan är designmönster vilka syftar till att ge utvecklaren en katalog med generella lösningar på vanligt återkommande designproblem.

Ett annat sådant hjälpmedel, som ännu inte fått lika mycket uppmärksamhet som designmönster, men som i min åsikt har ännu större potential, är aspektorienterad systemutveckling (Aspect-Oriented Programming). Läs mer >>

Denna artikel beskriver den populära opensourcekomponenten Hibernate. Hibernate är ett s.k. Object Relational Mapping (ORM) verktyg som används för att möjliggöra persistens. Hibernate är ett av de mest aktiva och populära javaprojekten på Sourceforge och kommer garanterat dyka upp mer och mer i javabaserad systemutveckling framöver. Läs mer >>

I denna avslutande del i min artikelserie beskriver jag det slutliga elddopet för mitt försök att implementera en design där persistensmekanismen kan bytas ut utan att klientkoden behöver skrivas om.

Ambitionen var att flytta persistenshantering till en J2EE-server och ge webappen tillgång till denna via en fasad i form av en sessionsböna. Servern jag valde var JBoss 4.0, en open-source server, flitigt använd av Javautvecklare och med en ökande marknadsandel.

Läs mer >>

Detta är del 2 i en artikelserie där jag beskriver hur jag tar min testapplikation ifrån min artikel
om Java Server Faces och bygger vidare på denna. I den första delen beskrev jag den grundläggande designen och hur jag fick enhetstestning och loggning att fungera.

I denna artikel går jag vidare och beskriver hur jag byter persistensmekanism från xml-fil till MySQL och Hibernate.

Läs mer >>

Sida 1/2:12