Fridimette
Messages postés12Date d'inscriptionmercredi 19 mars 2008StatutMembreDernière intervention21 avril 2008
-
10 avril 2008 à 11:17
Fridimette
Messages postés12Date d'inscriptionmercredi 19 mars 2008StatutMembreDernière intervention21 avril 2008
-
10 avril 2008 à 11:19
Bonjour,
Je galère depuis deux trois jours sur la connexion à ma base de donnée (qui est installée en local sur mon ordi ) à travers ma servlet (tomcat 5.5 qui est aussi en local)
Je me suis dis: "puis que ca marche pas le tien trouve un code qui marche et testes le"
C'est ce que j'ai fait et j'ai trouvé ceci sur votre site :
http://www.javafr.com/codes/CONNECTION-SERVLET-AVEC-BASE-DONNEES-MYSQL-UTILISATION-EXPRESSIONS_37026.aspx
Bon j'ai juste modifié mon port et mon host par :
java.sql.Connection conn = java.sql.DriverManager.getConnection(
car pour moi lorsqu'on se connecte À LA BASE on ne peut pas faire une recherche d'ID : pour moi ca ne me semble pas logique : c'est sur une TABLE qu'on fait la recherche d'ID.
Enfin bref : voilà mon script :
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.sql.*;
import java.lang.String;
import java.util.regex.* ;
public class Omar extends HttpServlet
{
Statement stmt = null;
ResultSet rs = null;
private static Pattern pattern;
private static Matcher matcher;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
//Nom de mon pilote
String pilote = "com.mysql.jdbc.Driver";
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("");
//test des xpressions rgulires
try
{
pattern = Pattern.compile("[a-z]");
matcher = pattern.matcher("abc");
out.println("---------Test des xpressions rgulires--------
");
int i=0;
out.println("Le nombre des groupes: "+matcher.groupCount()+"
");
while(matcher.find())
{
out.println("Le texte ""+matcher.group(i)+"" dbute "+matcher.start()+" et termine "+matcher.end()+"
");
i++;
}
/*String s = matcher.replaceAll("chocolat");
out.println(s);
while(matcher.find())
{
out.println("Trouv !
");
}*/
out.println("
");
}
catch(PatternSyntaxException e)
{
out.println("Expressions rguliere"+e);
}
catch(Exception e)
{
}
try
{
Class.forName(pilote);
java.sql.Connection conn = java.sql.DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/BIOTECH","root","root");
stmt = conn.createStatement();
String req="SHOW TABLES";
rs = stmt.executeQuery(req);
// or alternatively, if you don't know ahead of time that
// the query will be a SELECT...
if (stmt.execute(req))
{
rs = stmt.getResultSet();
}
out.println("---------Test de la base--------
");
while(rs.next())
{
out.println("Id: "+rs.getInt("id"));
}
}
catch(Exception e)
{
out.println("Connection rate: "+e);
}
out.println("");
out.println("</html>");
}
}
j'ai le message d'erreur suivant :
---------Test des éxpressions régulières--------
Le nombre des groupes: 0
Le texte "a" débute à 0 et termine à 1
Connection ratée: com.mysql.jdbc.CommunicationsException:
Communications link failure due to underlying exception: ** BEGIN
NESTED EXCEPTION ** java.net.SocketException
MESSAGE: java.security.AccessControlException: access denied
(java.net.SocketPermission 127.0.0.1:3309 connect,resolve)
STACKTRACE:
java.net.SocketException: java.security.AccessControlException: access
denied (java.net.SocketPermission 127.0.0.1:3309 connect,resolve) at
com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
at com.mysql.jdbc.Connection.(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
Voilà: j'ai cherché sur Google mais la plupart des réponses (proposés à cette erreur )correspondent au fait que le server et la base ne se situent pas sur le même ordinateur : alors que moi c'est le cas : ils sont belles et biens sur mon ordi
Fridimette
Messages postés12Date d'inscriptionmercredi 19 mars 2008StatutMembreDernière intervention21 avril 2008 10 avril 2008 à 11:19
autre petite chose que j'ai oublié de préciser : c'est que dans le message d'erreur il y a spécifié : 3309
alors que dans mon script j'ai spécifié 3306 ! (qui est bien mon port : vérifier grâce à la commande : mysql -?)