Jeg kan ikke lige få det til at spille sammen med en JSP side. Er der nogen, der har et simpelt eksempel på en JSP side, der henter data via denne connection pool ?
Hvad sker der, får du en fejlbesked, eller ingen resultater eller hvad?
Den hyppigste fejl der opstår i starten er en ClassNotFoundException, den skyldes at du mangler en JDBC-driver til databasen, eller at denne ligger forkert.
Hvis du fortæller lidt om havd du har gjort, og hvad der sker, er det lettere at hjælpe.
Jeg benytter en MYSQL database, og jeg kan få kontakt til den ved bare at lave en forbindelse, og lukke den igen når jeg har sendt min forespørgsel. Så min JDBC driver mm fungerer. Men det ville være smartere at benytte en connection pool til at holde styr på forbindelserne. Jeg har set, at der er en del, der benytter ovennævnte connection pool, og tænkte, at der var nogen der havde et hurtigt og simpelt eksempel liggende til denne Connection Pool.
Det jeg gerne ville have var en simlel JSP side, der benytter connection poolen til f.eks en forespørgsel i en tabel
Du tager fra deres servlet eksempel og bruger det i en JSP side:
<%
DBConnectionManager connMgr = DBConnectionManager.getInstance(); Connection con = connMgr.getConnection("idb"); if (con == null) { out.println("Can't get connection"); return; } ResultSet rs = null; Statement stmt = null; try { stmt = con.createStatement(); rs = stmt.executeQuery("SELECT navn FROM EMPLOYEE"); while (rs.next()) { %> Navn = <%=res.getString("navn")%> <% } } stmt.close(); rs.close(); } catch (SQLException e) { e.printStackTrace(out); } connMgr.freeConnection("idb", con);
%>
du skal så også have en config fil, som er defineret ud fra det her:, den skal hedde 'db.properties ' og være i classpath set fra serveren, så spiller det bare.
drivers A space separated list of JDBC driver class names logfile The absolute path for a log file
Another set of properties are used for each pool. The property name starts with the name of the connection pool:
<poolname>.url The JDBC URL for the database <poolname>.maxconn The max number of connections in the pool. 0 means no limit. <poolname>.user The user name for the pool <poolname>.password The corresponding password
Den var der næsten disky. Jeg kan godt få servletten fra eksemplet til at fungere. Men når jeg laver en JSP-fil, så går det galt ! Jeg tilføjer det kode du angiver herover, og importerer så java.sql.* samt DBConnectionManager (hvorfor kan jeg forresten ikke tilføje denne som en bønne i stedet ?)
Når jeg kører det får jeg følgende fejl:
"frontpage.jsp": Error #: 300 : method printStackTrace(javax.servlet.jsp.JspWriter) not found in class java.sql.SQLException at line 55
og det nytter ikke noget at importere at importere denne klasse. Dette skyldes vel at linien "e.printStackTrace(out);" i din Catch kun kan benyttes i en servlet ?
eller er der nogen fordel ved at bruge printStackTrace i stedet ?
Havde du forresten nogen ide om hvorfor jeg ikke kunne indsætte DBConnectionManageren som en bønne, som jeg havde forsøgt (men udkommenteret i ovenstående) ?
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.