Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Greska sa driverom za MySQL bazu

[es] :: Java :: Greska sa driverom za MySQL bazu

[ Pregleda: 1670 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Majstor_Pućko

Član broj: 176794
Poruke: 513
89.216.100.*



+4 Profil

icon Greska sa driverom za MySQL bazu20.07.2008. u 10:42 - pre 191 meseci
Pozdrav svima,
Imam problem sa konektovanjem na MySQL bazu. Evo koda servleta, nasao sam ga na internetu i samo prepravio potrbne stvari:
Code:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.*;
import java.net.*;
import java.sql.*;
import java.text.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;

/**
 *
 * @author Admin
 */
public class servlet extends HttpServlet {
    public String getServletInfo(){
        return "Servlet connects to MySQL database and displays result of a SELECT";
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException{
        String loginUser = "root";
        String loginPasswd = "";
        String loginUrl = "jdbc:mysql://localhost:3306/baza2";
        response.setContentType("text/html;charset=UTF-8");
        
        PrintWriter out = response.getWriter();
        
        out.println("<html><head><title>Konekcija</title></head>");        
        out.println("<body><h1>Citanje iz MySQL baze</h1>");
        
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Connection dbcon = DriverManager.getConnection(loginUrl, loginUser, loginPasswd);
            Statement statement = dbcon.createStatement();
            
            String query = "SELECT * FROM tabela1";
            
            ResultSet rs = statement.executeQuery(query);
            
            out.println("<table>");           
            while (rs.next()){
                String m_id = rs.getString("id");
                String m_datum = rs.getString("datum");
                String m_naslov = rs.getString("naslov");
                String m_text = rs.getString("text");
                out.println("<tr>");
                out.println("<td>"+ m_id+"</td>");
                out.println("<td>"+m_datum+"</td>");
                out.println("<td>"+m_naslov+"</td>");
                out.println("<td>"+m_text+"</td>"+"</tr>");
                
                }
            out.println("</table>");
            
            rs.close();
            statement.close();
            dbcon.close();
            
        }
        catch (SQLException ex){
            while(ex != null){
                System.out.println("SQL Exeption"+ex.getMessage());
                ex = ex.getNextException();
                
            }
            
        }
        catch(java.lang.Exception ex){
            out.println("<html>");
            out.println("<head><title>");
            out.println("Baza Greska");
            out.println("</title></head><body>");
            out.println("<p>SQL Error:");
            out.println(ex.getMessage());
            out.println("</p></body></html>");
            return;
            
        }
        out.close();
        
    }
}


Kada startujem,servlet radi,i javi mi sledecu gresku: SQL Error: com.mysql.jdbc.Driver
Pogledao sam u NB, imam driver, uspeo sam iz samog NB da se povezem na bazu i da izvrsim SQL query. Tako da mislim da sam omanuo u kodu negde, a posto sam Java pocetnik, nadam se da mi necete uzeti za zlo...
U svakom slucaju hvala!

bolje je biti malo lud nego malo pametan
 
Odgovor na temu

Majstor_Pućko

Član broj: 176794
Poruke: 513
89.216.100.*



+4 Profil

icon Re: Greska sa driverom za MySQL bazu20.07.2008. u 12:22 - pre 191 meseci
Isto je i sa Postgre bazom, baza radi, moze da se uspostavi konekcija, nemam pojma...
Ovaj primer mi je vazniji zato sto mi zaista treba konekcija sa postgreom, a mysql sam radio cisto kao pred-test...
Code:

// File: ShowBedrock.java

/* A servlet to display the contents of the PostgreSQL Bedrock database */

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

public class servlet2 extends HttpServlet 
{
    public String getServletInfo()
    {
       return "Servlet connects to PostgreSQL database and displays result of a SELECT";
    }

    private Connection dbcon;  // Connection for scope of ShowBedrock

    // "init" sets up a database connection
    public void init(ServletConfig config) throws ServletException
    {
        String loginUser = "postgres";
        String loginPasswd = "root";
        String loginUrl = "jdbc:postgresql://localhost:5432/test";

        // Load the PostgreSQL driver
        try 
           {
              Class.forName("org.postgresql.Driver");
              dbcon = DriverManager.getConnection(loginUrl, loginUser, loginPasswd);
            }
        catch (ClassNotFoundException ex)
            {
               System.err.println("ClassNotFoundException: " + ex.getMessage());
               throw new ServletException("Class not found Error");
            }
        catch (SQLException ex)
            {
               System.err.println("SQLException: " + ex.getMessage());
            }
    }

    // Use http GET

    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException
    {
        response.setContentType("text/html");    // Response mime type

        // Output stream to STDOUT
        PrintWriter out = response.getWriter();

        out.println("<HTML><Head><Title>Bedrock</Title></Head>");
        out.println("<Body><H1>Bedrock</H1>");
        
        try
            {
                // Declare our statement
                Statement statement = dbcon.createStatement();

                String query = "SELECT code,title,did ";                
                query +=       "FROM   test ";

                // Perform the query
                ResultSet rs = statement.executeQuery(query);

                out.println("<table border>");

                // Iterate through each row of rs
                while (rs.next())
                {
                   String m_name = rs.getString("code");
                   String m_dept = rs.getString("title");
                   String m_jobtitle = rs.getString("did");
                   out.println("<tr>" + 
                               "<td>" + m_name + "</td>" +
                               "<td>" + m_dept + "</td>" +
                               "<td>" + m_jobtitle + "</td>" +
                               "</tr>");
                }

                out.println("</table></body></html>");
                statement.close();
            }
        catch(Exception ex)
            {
                out.println("<HTML>" +
                            "<Head><Title>" +
                            "Bedrock: Error" +
                            "</Title></Head>\n<Body>" +
                            "<P>SQL error in doGet: " +
                            ex.getMessage() + "</P></Body></HTML>");
                return;
            }
         out.close();
    }
}


Javlja ovo:

Code:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Class not found Error
    servlet2.init(servlet2.java:37)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    java.lang.Thread.run(Thread.java:619)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
Apache Tomcat/6.0.16

bolje je biti malo lud nego malo pametan
 
Odgovor na temu

nedeljko_11460
Nedeljko Seslija
J2EE Developer, Neotech Software
Barajevo

Član broj: 182021
Poruke: 9
79.101.160.*



Profil

icon Re: Greska sa driverom za MySQL bazu24.07.2008. u 10:45 - pre 191 meseci
Cao,

Bacio sam pogled na kod i sve mi deluje ok, kazes da greska postoji kada pokusas da pokrenes aplikaciju tako da problem moze bude u tome
sto neophodne jar fajlove nisi prekopirao u lib folder na serveru. Prebaci jar file koji predstavlja drajver na sledecu lokaciju

[TomcatHome]/common/lib ili mozes ga staviti unutar tvoje aplikacije
[Aplikacija]/WEB-INF/lib

Probaj pa javi....
 
Odgovor na temu

SteleStudent

Član broj: 119868
Poruke: 50
89.216.103.*



Profil

icon Re: Greska sa driverom za MySQL bazu29.07.2008. u 21:01 - pre 191 meseci
ono sto je mene zezalo sa mysql bazom jeste to da nisam mogao da koristim nalog bez lozinke tj, za password ako ubacim prazan string - "" nece da se konektuje. MOzda je to problem mada ne mora da znaci. U svakom slucaju ja bih ti preporucio da probas da postavis novi nalog za bazu sa lozinkom! pa da probas sa tim :).
Ponavljam, mozda uopste nije ovo problem, ali ja sam naisao na tako nesto pa cisto reko da ti pomognem da se ne mucis na isti fazon kao ja :)

Poz
 
Odgovor na temu

Majstor_Pućko

Član broj: 176794
Poruke: 513
89.216.100.*



+4 Profil

icon Re: Greska sa driverom za MySQL bazu06.08.2008. u 22:07 - pre 191 meseci
Zahvaljujem na odgovorima, problem sam resio sledeceg dana posle pokretanja teme, pao sam na krajnje glupoj stvari, nisam ubacio jar fajl drajvera u projekat. Tako da je nedeljko u pravu, inace kod sasvim lepo radi, i u kod mene je i za MySQL i za PostgreSQL prihvatio prazan string kao password. Tako da ako nekome bude trebalo, cisto da kazem da radi.
Hvala vam puno.
bolje je biti malo lud nego malo pametan
 
Odgovor na temu

[es] :: Java :: Greska sa driverom za MySQL bazu

[ Pregleda: 1670 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.