Men eftersom du i exemplet ovan kör exakt samma sats, utan några skillnader i sökvilkoret så är det bara onödigt att anropa databasen om och om igen, då är det bättre att du initialt kör frågan och sedan lagrar den i lämpligt objekt och sedan använder detta objekt när du senare i koden vill ha ut resultatet igen.
I detta fall så ersätter du första ? med 153833.00 och det andra ? med 110592. Dessa värden kommer pstmt att ha tills du ändrar dom.
Kollade hur det görs när man använder SQLServer 2000 och där skapas en "stored procedure" när man anropar med PreparedStatement första gången. Det är annars en bra idé...
Om det är två olika frågor så kan du inte använda PreparedStatement. Eller kan och kan... Det är onödigt.
Om det är två olika frågor så kan du inte använda PreparedStatement. Eller kan och kan... Det är onödigt.
Det är i princip aldrig onödigt att använda PreparedStatement, åtminstone inte om SQL-frågan tar parametrar och/eller skall köras flera gånger.
Kollade hur det görs när man använder SQLServer 2000 och där skapas en "stored procedure" när man anropar med PreparedStatement första gången.
Det har jag mycket svårt att tänka mig. Det som görs vid skapandet av ett PreparedStatement är att SQL-frågan parsas, kompileras och optimeras så att den är färdig att exekveras mot databasen.
De tre första stegen (parse, kompilering och optimering) behöver sedan inte köras för påföljande körningar av prepared statementet vilket är fallet om man använder Statement.
Men att en stored procedure skulle skapas om man använder SQLServer för varje PreparedStatement tror jag inte på. Du blandar antagligen ihop PreparedStatement med CallableStatement.
Du har ju i princip fått svar på frågan ovan, men jag kör igen:
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection visaConn = DriverManager.getConnection("jdbc:mysql:///steget?user=hmm&password=hmm");
PreparedStatement visaStmt = null;
visaStmt = visaConn.prepareStatement("SELECT en sak");
ResultSet förstarslt = visaStmt.executeQuery();
visaStmt = visaConn.prepareStatement("SELECT en annan sak");
ResultSet andranyrslt = visaStmt.executeQuery();
Men lägg inte databaslogik i JSP-sidan, det är typ 5 lager för högt upp i strukturen. JSP-sidorna skall hantera presentationslogiken, databaslogiken skall ligga långt som fan nere i källaren.
Men att en stored procedure skulle skapas om man använder SQLServer för varje PreparedStatement tror jag inte på. Du blandar antagligen ihop PreparedStatement med CallableStatement.
Du har givetvis helt rätt sgtpepper. Jag blandar ihop dessa.
273 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849