1:Waar plaats je mysql-connector-java-5.1.13-bin
in de Tomcat-map? Moet ik het onder Tomcat 6.0\webapps\myapp\WEB-INF\lib
plaatsen ?
Dat hangt af van waar de verbindingen moeten worden beheerd. Normaal gesproken zou u een JNDI-gegevensbron met verbinding willen maken om de verbindingsprestaties te verbeteren. In dat geval beheert Tomcat de verbindingen en moet hij toegang hebben tot het JDBC-stuurprogramma. U moet dan het JAR-bestand neerzetten in Tomcat/lib
.
Maar als je het op de basismanier doet met DriverManager#getConnection()
, dan maakt het eigenlijk niet uit of je het in Tomcat/lib
neerzet of YourApp/WEB-INF/lib
. U moet zich echter realiseren dat die in Tomcat/lib
geldt voor alle geïmplementeerde webapps en die in YourApp/WEB-INF/lib
overschrijft die in Tomcat/lib
alleen voor de specifieke webapp.
2:Moet ik context.xml
configureren of server.xml
bestanden?
Dat hangt af van waar de verbindingen moeten worden beheerd. Bij gebruik van een JNDI-gegevensbron volstaat het om deze te configureren met YourApp/META-INF/context.xml
als volgt (maak gewoon een bestand aan als het niet bestaat):
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/yourdb" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
url="jdbc:mysql://localhost:3306/yourdb"
driverClassName="com.mysql.jdbc.Driver"
username="yourname" password="yourpass"
/>
</Context>
en de YourApp/WEB-INF/web.xml
als volgt:
<resource-env-ref>
<resource-env-ref-name>jdbc/yourdb</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
Als je het doet, de basis DriverManager
manier, dan is het allemaal aan jou. Hardcoded, eigenschappenbestand, XML-bestand, enzovoort. Je moet het zelf regelen. Tomcat zal (en kan) niets nuttigs voor je doen.
Opgemerkt moet worden dat de YourApp/META-INF/context.xml
is specifiek voor Tomcat en klonen. Elke servletcontainer/appserver heeft zijn eigen manier om JNDI-bronnen te definiëren. In Glassfish bijvoorbeeld, zou je dat willen doen via de webgebaseerde beheerdersinterface.
3:Moet ik web.xml
write schrijven bestand en moet onder Tomcat 6.0\webapps\myapp\WEB-INF
worden geplaatst ? Zo ja, wat moet dan de inhoud van het bestand zijn?
Je moet er altijd een aanleveren. Het is niet alleen om bronnen te configureren, maar ook om servlets, filters, listeners en dat soort verplichte dingen te definiëren om je webapp uit te voeren. Dit bestand maakt deel uit van de standaard Servlet API.
Zie ook:
- Is het veilig om een statische java.sql.Connection-instantie te gebruiken in een multithreaded systeem?
- Hoe moet ik verbinding maken met de JDBC-database / gegevensbron in een op servlet gebaseerde toepassing?
- Waar moet ik de JDBC-driver voor de Tomcat-verbinding plaatsen zwembad?
- DAO-zelfstudie - eenvoudige JDBC/DAO-zelfstudie, gericht op Tomcat/JSP/Servlet