Problème connexion mysql et tomcat
filipe
-
SOPHISTE Messages postés 1 Statut Membre -
SOPHISTE Messages postés 1 Statut Membre -
Bonjour,
je suis débutant en jsp et je teste une connexion avec une base de donnée mysql.
donc j'ai créer un nouveau projet contenant un repertoire WEB-INF avec classes et lib
j'ai créer une classe DBTest que j'ai mis dans WEB-INF/classes/foo/ :
package foo;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class DBTest {
String nom;
int id;
Connection conn;
public void init() {
try{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select ID,Nom from produit where ID=1");
while(rst.next()) {
nom=rst.getString("Nom");
id=rst.getInt("ID");
}
conn.close();
}catch(Exception e) { e.printStackTrace();}
}
public String getNom() { return nom; }
public int getID() { return id;}
}
j'ai modifier le fichier server.xml de C:\jakarta-tomcat-4.1.31\conf\ j'ai rajouté :
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>username</name>
<value>javauser</value>
</parameter>
<parameter>
<name>password</name>
<value>javadude</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/produits</value>
</parameter>
</ResourceParams>
</Context>
j'ai aussi créer une page testdb.jsp qui utilise ma classe DBTest :
<html>
<head>
<title>DB Test</title>
</head>
<body>
<%
foo.DBTest tst = new foo.DBTest();
tst.init();
%>
<h2>Resultats</h2>
idproduit <%= tst.getID() %><br/>
Nom <%= tst.getNom() %>
</body>
</html>
en exécutant le programme cela me renvoi :
Resultats
idproduit 0
Nom null
alors que ma table contient bien le champs demandé.
la base mysql marche bien car avec d'autres programmes il n'y a pas de souci.
je ne comprend pas, j'arrête pas de tester, de modifier .... rien ne marche
si quelqu'un pouvais m'aider ça serait sympa.
merci
je suis débutant en jsp et je teste une connexion avec une base de donnée mysql.
donc j'ai créer un nouveau projet contenant un repertoire WEB-INF avec classes et lib
j'ai créer une classe DBTest que j'ai mis dans WEB-INF/classes/foo/ :
package foo;
import javax.naming.*;
import javax.sql.*;
import java.sql.*;
public class DBTest {
String nom;
int id;
Connection conn;
public void init() {
try{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select ID,Nom from produit where ID=1");
while(rst.next()) {
nom=rst.getString("Nom");
id=rst.getInt("ID");
}
conn.close();
}catch(Exception e) { e.printStackTrace();}
}
public String getNom() { return nom; }
public int getID() { return id;}
}
j'ai modifier le fichier server.xml de C:\jakarta-tomcat-4.1.31\conf\ j'ai rajouté :
<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/TestDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>username</name>
<value>javauser</value>
</parameter>
<parameter>
<name>password</name>
<value>javadude</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/produits</value>
</parameter>
</ResourceParams>
</Context>
j'ai aussi créer une page testdb.jsp qui utilise ma classe DBTest :
<html>
<head>
<title>DB Test</title>
</head>
<body>
<%
foo.DBTest tst = new foo.DBTest();
tst.init();
%>
<h2>Resultats</h2>
idproduit <%= tst.getID() %><br/>
Nom <%= tst.getNom() %>
</body>
</html>
en exécutant le programme cela me renvoi :
Resultats
idproduit 0
Nom null
alors que ma table contient bien le champs demandé.
la base mysql marche bien car avec d'autres programmes il n'y a pas de souci.
je ne comprend pas, j'arrête pas de tester, de modifier .... rien ne marche
si quelqu'un pouvais m'aider ça serait sympa.
merci
A voir également:
- Problème connexion mysql et tomcat
- Gmail connexion - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
- D'où peut venir un problème de connexion internet sur un ordinateur ? - Guide
- Site inaccessible n'autorise pas la connexion - Guide