Har ett problem som är delvis javabaserat.
Problemet ligger i grunden i att jag byter från utveckling, msaccess, till server, mysql. Dvs databas.
Då kan jag ej använda "Select * top x" utan "LIMIT".
Detta kräver då att på nåt ställe kommer koden ej fungera. Hade då någon fundering på ifall man kunda loopa igenom resultsettet, och på den vägen plocka ut tex de 10senaste.
Nåt förslag?
Vad du BORDE ha gjort var att implementera dina databasanrop enlig DAO-mönstret, d.v.s. gjort interface som man anropar från ditt program och som returnerar det du vill ha.
Exempel:
public interface ResultDAO {
public Vector getTopResult();
}
Sedan implementerar du klasser som ärver av detta interface. Olika klasser för olika databaser...
Ex.
public class ResultDAOMySQL implements ResultDAO {
/** Creates a new instance of ResultDAOMySQL */
public ResultDAOMySQL() {
}
public Vector getTopResult() {
//Databaskopplingar och sånt...
String query = "SELECT * FROM table LIMIT 0,10";
}
}
och
public class ResultDAOMSAccess implements ResultDAO {
/** Creates a new instance of ResultDAOMySQL */
public ResultDAOMySQL() {
}
public Vector getTopResult() {
//Databaskopplingar och sånt...
String query = "SELECT * top FROM table";
}
}
Sedan blir det liiite knepigare... Eftersom programmet inte vet vilken klass den egentligen ska använda sig av när du ber den skapa ett visst DAO och du vill ju kunna säga "new ResultDAO()" så får man koda lite till. Det man gör är att skapa en DAOFactory. Här finns det två metoder. Den ena är att göra en generell DAOFactory och en property-fil som talar om vilken klass som hör till vilket DAO-interface och den andra är att ha olika DAOFactories för olika implementeringar och tala om i en propertyfil vilken DAOFactory som skall användas. Jag föredrar den första.
Tar lite mera tid att göra första gången men när man väl har ett eget DAO-ramverk i sin kodbox så sparar man otroligt mycket tid på att slippa implementera om en massa när kunden/projektledaren får för sig att byta databas... för det får dom... alltid... ;-)
/Lime
134 ms totalt · 3 externa anrop · v20260731065814-full.b746b907