Gast
2006-08-09, 17:01:14
Hi,
ich habe einen dummer JDBC Fehler.
Ich schreib gerade eine Simulation und bekomme diesen fehler obwohl ich imo nach jeden Zugriff die tabellen wieder frei geben. Dies geschieht wenn ich mit 50 simulierten personen auf eine Datenbank zugreifen will per Threads und gleichzeitig verschiedene abfragen und einfüge Aktion durchführen möchte.
Ich benutzen den Standart JDBC Treiber und greifen auf eine Acess Datenbank zu.
AbfrageKlasse:
package trust;
import java.sql.*;
public class DBQuery {
Statement stmt;
Connection con;
trust.DBConnection tmp;
public DBQuery()
{
tmp = DBConnection.get_Object();
con=tmp.get_Connection_Obj();
}
public ResultSet query(String sql)
{
try
{
stmt=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
stmt.executeQuery(sql);
return stmt.getResultSet();
}
catch(SQLException e)
{
e.printStackTrace();
return null;
}
}
}
Datenmanipulationklasse:
package trust;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBManipulateData
{
Statement stmt;
Connection con;
trust.DBConnection tmp;
public DBManipulateData()
{
tmp = DBConnection.get_Object();
con=tmp.get_Connection_Obj();
}
public boolean insert(String sql)
{
try
{
stmt=con.createStatement();
stmt.execute(sql);
stmt.close();
return true;
}
catch(SQLException e)
{
e.printStackTrace();
stmt.close();
return false;
}
}
public boolean update(String sql)
{
try
{
stmt=con.createStatement();
stmt.executeUpdate(sql);
return true;
}
catch(SQLException e)
{ System.out.println(e);
stmt.close();
return false;
}
}
}
Auf diese Funktion wird während der Simulation nur zugegriffen.
Wer jemand von euch darüber mehr?
ich habe einen dummer JDBC Fehler.
Ich schreib gerade eine Simulation und bekomme diesen fehler obwohl ich imo nach jeden Zugriff die tabellen wieder frei geben. Dies geschieht wenn ich mit 50 simulierten personen auf eine Datenbank zugreifen will per Threads und gleichzeitig verschiedene abfragen und einfüge Aktion durchführen möchte.
Ich benutzen den Standart JDBC Treiber und greifen auf eine Acess Datenbank zu.
AbfrageKlasse:
package trust;
import java.sql.*;
public class DBQuery {
Statement stmt;
Connection con;
trust.DBConnection tmp;
public DBQuery()
{
tmp = DBConnection.get_Object();
con=tmp.get_Connection_Obj();
}
public ResultSet query(String sql)
{
try
{
stmt=con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
stmt.executeQuery(sql);
return stmt.getResultSet();
}
catch(SQLException e)
{
e.printStackTrace();
return null;
}
}
}
Datenmanipulationklasse:
package trust;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBManipulateData
{
Statement stmt;
Connection con;
trust.DBConnection tmp;
public DBManipulateData()
{
tmp = DBConnection.get_Object();
con=tmp.get_Connection_Obj();
}
public boolean insert(String sql)
{
try
{
stmt=con.createStatement();
stmt.execute(sql);
stmt.close();
return true;
}
catch(SQLException e)
{
e.printStackTrace();
stmt.close();
return false;
}
}
public boolean update(String sql)
{
try
{
stmt=con.createStatement();
stmt.executeUpdate(sql);
return true;
}
catch(SQLException e)
{ System.out.println(e);
stmt.close();
return false;
}
}
}
Auf diese Funktion wird während der Simulation nur zugegriffen.
Wer jemand von euch darüber mehr?