JSP forbindelse til MySQL
Jeg skal have lavet forbindelse til en MySQL database fra JSP. Jeg kan godt vha. en broker jeg har fået oprette forbindelse til MySQL, men så snart jeg henter filen ind i min JSP fil vha <jsp:useBean .../> så kan min Blazix webserver ikke finde den driver som der skal bruges til at oprette forbindelse. Driveren har jeg hentet fra MySQL og den ligger i et bibliotek der hedder ..\com\mysql\jdbc\ og filen hedder "Driver.class". Koden til min broker er som følger:import java.sql.*;
import java.util.Vector;
import java.io.*;
public class Broker implements Serializable
{
private Broker dbb;
private int sqls_run;
private Connection connection;
public Broker()
{
sqls_run = 0;
this.connect();
}
public void connect()
{
System.out.println("********** public void connect() **********");
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException cnfe)
{
System.out.println(cnfe);
}
try
{
String url = "jdbc:mysql://127.0.0.1:3306/Alpha?user=Jan&password=Password";
java.util.Properties properties = new java.util.Properties();
connection = DriverManager.getConnection(url, properties);
}
catch (SQLException sqle)
{
System.out.println(sqle);
}
}
public int update (String sql)
{
System.out.println("sql: "+sql);
int key = 0;
try
{
Statement stmt = connection.createStatement();
stmt.executeUpdate(sql);
ResultSet rs = stmt.getGeneratedKeys();
rs.next();
key = rs.getInt(1);
}
catch (SQLException e)
{
System.out.println("update metoden");
System.out.println(e);
System.exit(0);
}
this.addSqlRun();
return key;
}
public ResultSet select (String sql)
{
System.out.println("********** public ResultSet select(String sql) **********");
System.out.println("sql: "+sql);
Vector results = new Vector (50,50);
ResultSet rs = null;
try
{
System.out.println("********** try/catch inside <select> **********");
Statement stmt = connection.createStatement();
rs = stmt.executeQuery(sql);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
}
catch (SQLException e)
{
System.out.println("select metoden");
System.out.println(e);
}
this.addSqlRun();
return rs;
}
public int getSqls_run()
{
return sqls_run;
}
private void addSqlRun()
{
++sqls_run;
}
}
Og fejlen dukker op ved linien "Class.forName("..." Der ryger jeg ind i catch sætningen. Min .jsp fil ser sådan ud:
<jsp:useBean id="broker" class="Broker"/>
<HTML>
<BODY>
Start<BR>
SQL SELECT: <%= broker.select("SELECT * FROM user ORDER BY username ASC") %>
</HTML>
</BODY>
Meget simpel... Hvis ikke i kan gennemskue ovenstående (ikke pga. manglende kompetence, men pga. at det er noget lort jeg har lavet) så må i MEGET gerne komme med et eksempel på præcist hvordan jeg får forbindelse fra JSP til MySQL. Gerne lidt á la det jeg har lavet indtil videre, da jeg startede med MySQL og JSP for et par uger siden.
