21. maj 2001 - 12:44Der er
9 kommentarer og 1 løsning
ResultSet igen!!!
Er det muligt at serialisere et resultset? da jeg har applet, som via en servlet, kalder en db-klasse som tilgår en db. Min applet skal herefter kunne modtage et ResultSet objekt.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Dit ResultSet er et interface, som beskriver en struktur i de underliggende database klasser, som sikkert i dit tilfælde er ligegyldigt. Eller sagt på en anden måde. Alt hvad der ellers ligger i din specifikke ResultSet klasse (som f.eks. OracleResultSet) har du ingen grund til at sende over et netværk, kun dine data.
Det du nok bør gøre, er at aflæse data ind i en datastruktur, og så flytte den over til din applet.
En passende datastruktur kunne f.eks. være et Object[][], hvis dit indhold ikke er kendt, eller du kan indkapsle i din egen implementering af et ResultSet (Men så er der så frygtelig mange metoder, der skal impl.).
Om 5 minutter kan jeg vise dig et eksempel (skal lige skrive det først)
Her \"Wrapper\" jeg indhold af et ResultSet ind i en klasse, som er Serializable
På den anden side, skal man bare så bare udlæse data, og har så et Object[][] med indholdet.
Bemærk jeg har ikke optimeret i forhold til store datamængder etc, det er udelukkende en herognu løsning.
public class MyData implements java.io.Serializable { private Object[][] data;
public MyData(ResultSet rs) { ResultSetMetaData rsmd = rs.getMetaData(); int cols = rsmd.getColumnCount(); ArrayList al = new ArrayList(); while(rs.next()) { Object[] line = new Objecct[cols]; for (int i = 0 ; i < cols ; i++) line[i] = rs.get(i+1); al.add(line); } data = new Object[al.size()] [cols]; for (int i = 0 ; i < al.size() ; i++) { Object[] each = al.get(i); data[i] = each; } }
fedt, logical. Det lyder som den rigtige løsning. Thomas
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.