Avatar billede jarret Nybegynder
12. december 2005 - 11:02 Der er 21 kommentarer og
1 løsning

Hvordan forbinder jeg til min mysql database fra en servlet?

Jeg har installeret en tomcat server og en mysql database. begge virker. men hvordan kan jeg komme i databasen fra min servlet.
Avatar billede kalp Novice
12. december 2005 - 11:47 #1
Avatar billede kalp Novice
12. december 2005 - 11:49 #2
Det er dette du skal bruge præcis... det hele skal i en try catch block.

      Statement stmt;

      Class.forName("com.mysql.jdbc.Driver");

      //Define URL of database server for
      // database named mysql on the localhost
      // with the default port number 3306.
      String url =
            "jdbc:mysql://localhost:3306/mysql";

      //Get a connection to the database for a
      // user named root with a blank password.
      // This user is the default administrator
      // having full privileges to do anything.
      Connection con =
                    DriverManager.getConnection(
                                url,"root", "");

      //Display URL and connection information
      System.out.println("URL: " + url);
      System.out.println("Connection: " + con);

      //Get a Statement object
      stmt = con.createStatement();
Avatar billede jarret Nybegynder
12. december 2005 - 12:57 #3
Jeg har prøvet med:

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.sql.*;

public class Server7 extends HttpServlet {
   
String BRUGERNAVN = "root";
String PASSWORD = "9123";
String url = "jdbc:mysql://localhost/chat";
Connection con;
Statement stmt;
String message = "del1";


public void doGet(HttpServletRequest request,
      HttpServletResponse response)
throws ServletException, IOException {
   
    response.setContentType("text/plain");
    response.setContentLength(message.length());
    PrintWriter out = response.getWriter();
    get();
    message = message + "ll";
    out.println(message);
  }


public void get(){
                  try {
                        message = message + "2";
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(url,BRUGERNAVN, PASSWORD);
            stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select text from ind where CHATid= 123456");

                while (rs.next())
                {message = message + "3";
                message = rs.getString("text");
                }

            stmt.close();
            con.close();

            } catch(Exception ex) {
            System.err.println("Exception: " + ex.getMessage());

            }
   
   
}
}
Avatar billede jarret Nybegynder
12. december 2005 - 13:05 #4
Denne denne applikation virker:

import java.sql.*;

public class J {

public static void main(String [] args){
String message = "del1";
String BRUGERNAVN = "root";
String PASSWORD = "9123";
String url = "jdbc:mysql://localhost/chat";
Connection con;
Statement stmt;

                  try {
            message = message + "2";
            Class.forName("org.gjt.mm.mysql.Driver");
            con = DriverManager.getConnection(url,BRUGERNAVN, PASSWORD);
            stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select text from ind where CHATid= 123456");

                while (rs.next())
                {message = message + "3";
                message = rs.getString("text");
                }

            stmt.close();
            con.close();

            } catch(Exception ex) {
            System.err.println("Exception: " + ex.getMessage());

            }




System.out.println(message);

}
Avatar billede arne_v Ekspert
12. december 2005 - 13:06 #5
Du bruger JDBC i en servletr helt lige som du gør i et almindeligt java program

MySQL driver jar filen skal ligge i WEB-INF/lib

http://www.eksperten.dk/artikler/743 har masser af eksempler på de forskellige
måder at gøre det på
Avatar billede jarret Nybegynder
12. december 2005 - 13:07 #6
og min servlet virker også:

import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.sql.*;

public class Server7 extends HttpServlet {
   

String message = "del1";


public void doGet(HttpServletRequest request,
      HttpServletResponse response)
throws ServletException, IOException {
   
    response.setContentType("text/plain");
    response.setContentLength(message.length());
    PrintWriter out = response.getWriter();
    get();
    message = message + "ll";
    out.println(message);
  }

   
   
}
}
Avatar billede jarret Nybegynder
12. december 2005 - 13:19 #7
skal jeg oprette mappen lib.....
Avatar billede arne_v Ekspert
12. december 2005 - 13:23 #8
ja hvis den ikke findes
Avatar billede arne_v Ekspert
12. december 2005 - 13:23 #9
(der er også andre mulige placeringer, men start der)
Avatar billede jarret Nybegynder
12. december 2005 - 13:45 #10
jeg kan ikke få forbindelse til min server nnu....vender tilbage om lidt
Avatar billede jarret Nybegynder
12. december 2005 - 15:03 #11
så fik jeg serveren op at køre igen.

Men mysql vinduet giver en

Exception: com.mysql.jdbc.Driver
Avatar billede jarret Nybegynder
12. december 2005 - 15:03 #12
kan det passe at jar filen hedder : mysql-connector-java-3.1.12-bin.jar - den der skal i lib...
Avatar billede arne_v Ekspert
12. december 2005 - 15:18 #13
ja
Avatar billede arne_v Ekspert
12. december 2005 - 15:23 #14
har du genstarter app elelr server efter at have smid jar fil i lib ?
Avatar billede jarret Nybegynder
12. december 2005 - 15:26 #15
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
import java.sql.*;

public class Server19 extends HttpServlet {
   
String BRUGERNAVN = "root";
String PASSWORD = "9123";
String url = "jdbc:mysql://localhost/chat";
Connection con;
Statement stmt;
String message = "del1";


public void doGet(HttpServletRequest request,
      HttpServletResponse response)
throws ServletException, IOException {
   
    response.setContentType("text/plain");
    response.setContentLength(message.length());
    PrintWriter out = response.getWriter();
    get();
    out.println(message);
  }


public void get(){
                  try {
                            message = message + "2";
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection(url,BRUGERNAVN, PASSWORD);   
            stmt = con.createStatement();                           
            ResultSet rs = stmt.executeQuery("select text from ind where id= 123456 ");
            message = message + "**";           
                while (rs.next())
                {message = message + "3";
                message = rs.getString("text");
                }
           
            stmt.close();
            con.close();
   
            } catch(Exception ex) {
            System.err.println("Exception: " + ex.getMessage());
                       
            }message = message + "er" ;
    }
   
   
}

ser det rigtigt ud??
Avatar billede jarret Nybegynder
12. december 2005 - 15:28 #16
ikke serveren ... prøver lige. jeg kan ikke starte og stoppe min server - jeg installere den hver gan jag skal starte den op......
Avatar billede arne_v Ekspert
12. december 2005 - 15:34 #17
det lyder mystisk
Avatar billede jarret Nybegynder
12. december 2005 - 15:35 #18
jeg har fået serveren til at virke og nu får jeg ingen Exception, men den finder ingenting i databasen....
Avatar billede jarret Nybegynder
12. december 2005 - 15:39 #19
skal jeg bruge en doPost metode som du gør i artiklen eller burde det virke som servletten ser ud oven for?
Avatar billede arne_v Ekspert
12. december 2005 - 15:42 #20
JDBC koden er ens uanset om det er doGet eller doPost

om du skal bruge doGet eller doPost afh;nger kun af om det er en HTTP GET eller en HTTP POST
Avatar billede jarret Nybegynder
12. december 2005 - 15:56 #21
så var den der...super lægger du et svar
Avatar billede arne_v Ekspert
12. december 2005 - 16:06 #22
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester