27. oktober 2004 - 00:53Der er
46 kommentarer og 1 løsning
Angående MySql + JSP [opsætning procedure]
Jeg har installeret Apache 2.0.49, sammen med modulet JK2, så jeg kan køre Tomcat 5.0.28 parallelt med. Det hele virker efter hensigten. Kan starte JSP eksemplerne og servlet eksemplerne. Jeg har desuden installeret MySql, PHP 5, samt PhpMyadmin. Dette virker også perfekt, kan starte database [MySql] og PhpMyafmin virker også så jeg kan forbinde til MySql og lave en database. PHP virker herved også perfekt.
Problemet er at jeg gerne vil vide om jeg skal ændre i nogle af Tomcats filer for at den blive fuld kompetibel med servlets eller måske er den det i forvejen. Ønsker svar på dette. Hertil kommer hvordan jeg får anvendt ODBC.driver til MySql til at lave en forbindelse. Er der en servlet eller jsp side jeg kan lave for at teste det og hvad skal jeg sætte op for at det kommer til at virke. Desuden kunne jeg godt tænke mig af vide hvor man skal ligge sine kompilerede servlet filer under tomcat for at man kan køre dem.
JSP sider skal ligge som webapps/dinapp/xxxx.jsp (eller evt. i et underdir).
Beans og servlet klasser skal ligeg som webapps/dinapp/WEB-INF/classes/dinpakke/DinKlass.class
MySQL JDBC driver jar fil skal ligge i webapps/dinapp/WEB-INF/lib (medmindre du vil bruge Tomcat connection pool eller container managed security mod database)
Du bør vruge MySQL JDBC driver (kaldet Connector/J) ikke JDBC-ODBC bridge og ODBC driver
Hvis du ikke bruger connection pools så er selve JDBC koden helt som normalt.
OK tak for disse svar men hvor finder jeg præcis den Connecter/J jeg skal bruge og hvordan installerer jeg den. Kan du desuden vise mig et lille kode (JSP) eksemple på forbindelse til databasen hvor den bare skriver "Forbundet" hvis den er connected. Syntes ikke rigtig det jeg har fundet tidligerer virker med JDBC driveren. Hvis du desuen har en servlet der gør det samme eller en ejb ville det også være godt
Har dulgt denne vejledning http://www.sllabres.plus.com/jsp/ er det godt nok med hensyn til classpath og path, samt at connecter jar filen skal ligge under C:\jdk1.5.0\jre\lib\ext
javax.servlet.ServletException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758) org.apache.jsp.index_jsp._jspService(index_jsp.java:98) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958) sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115) sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074) sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) java.sql.DriverManager.getConnection(DriverManager.java:525) java.sql.DriverManager.getConnection(DriverManager.java:193) org.apache.jsp.index_jsp._jspService(index_jsp.java:47) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Og den kører fordi jeg bruger PHPMYADMIN til at administrerer den. Jeg kører jo TOmcat 5.028 og apache 2.049 sammen med det der mod ting og det virker også
OK JEG HAR fået forbindelse men for at man skal update skal man skrive hvilked database den skal gøre det til, men i dit eksemple står der bare db.jsp hvad skal jeg gøre for at det virker med min database der hedder mindb under MySql
Fatter minus men skal db.jsp som du har definret så ikke gøre noget med den post der kommer til den hvor efter den kan tilføje det til min database ved navn mindb
ok hvorfor indsætter den så ikke i min database i dit eksempel er det ikke fordi db.jsp ikke findes på min maskine, for det hjælper jo ikke noget bare at lave en tom fil
<%@ page import="java.sql.*" %> <% Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mindb", "root", "fpra6712"); Statement stmt = con.createStatement(); if(request.getMethod().equals("POST")) { int F1 = Integer.parseInt(request.getParameter("F1")); String F2 = request.getParameter("F2"); String navn = request.getParameter("navn"); stmt.executeUpdate("INSERT INTO T1 VALUES (" + F1 + ",'" + F2 + ",'" + navn + "')"); } %> <!doctype html public "-//w3c/dtd HTML 4.01 Transitional//en"> <html> <head> <title>T1</title> </head> <body> <h1>T1</h1> <h2>Show data</h2> <table border> <% ResultSet rs = stmt.executeQuery("SELECT * FROM T1"); while(rs.next()) { %> <tr> <td><%=rs.getInt("F1")%></td> <td><%=rs.getString("F2")%></td> <td><%=rs.getString("navn")%></td> </tr> Jeg har tilføjet et ekstra felt der hedder navn se følgende kode men får fejlen den er i bunden
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Syntax error or access violation message from server: "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'dfdf')' at line 1" org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758) org.apache.jsp.index_jsp._jspService(index_jsp.java:105) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: Syntax error or access violation message from server: "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'dfdf')' at line 1" com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997) com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167) com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278) com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1224) com.mysql.jdbc.Connection.execSQL(Connection.java:2244) com.mysql.jdbc.Connection.execSQL(Connection.java:2192) com.mysql.jdbc.Statement.executeUpdate(Statement.java:1259) com.mysql.jdbc.Statement.executeUpdate(Statement.java:1205) org.apache.jsp.index_jsp._jspService(index_jsp.java:53) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
ahh svært at se. Jeg er igang med at læse bøgerne Servlet cookbook og JSP and servlets fra Oreiley. Jeg ville høre om du kunne være instressert i at jeg kunne spørge dig engang imellem om nogle enkelte ting, hvis det ikke er til meget besvær vil gerne blive god til JSP/servlet EJB osv inden for J2EE arkitekturen. Samt database og sql sproget. Men det ved jeg ikke om du ville syntes om. Måske har du en email jeg kunne sende nogle korte spørgsmål eller måske bare bruge eksperten?
Er lige startet på DTU her i sommers, men har dog lavet en del java kode bare ikke md database mest med filer osv. Men vil gerne blive mere hardcore til webapplikationer. Kan desuden XHTMl/HTML og CSS fuldt ud. Er ved at sætte mig ind i XML og alle de andre XML ting fra www.w3schools.org
Ville lige høre om du havde en servlet der laver det samme og hvordan jeg får den til at virke. Den skal jo nok virke i sammen spil med en JSp side kan jeg forestille mig, hvis vi tager udgangspunkt i det eksempel vi har i forvej hvor vi har en "mindb" som mysql database der har en tabel der hedder T1 med 3 felter ved navn F1, F2 og navn. Men hvor funktionen er præcis den samme hvor man bare kan indsætte eller noget.
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.