Java og Databaser
Hej Eksperter.Jeg er nybegynder i Java kodning og derfor kommer disse spørgsmål. Jeg er i færd med at kode en vagtplan i Java, og er begyndt at rode lide med forbindelsen til databasen. Jeg forestiller mig at mit program skal have en enkelt DB controller bestående af en masse metoder til håndtering af connect, forespørgsler og close af databasen. Jeg har indtil videre kodet nedenstående, men der er en masse fejl. F.eks. ønsker jeg at få returneret 'res' til videre behandling i andre klasser, men hvilken datatype er 'res'?
Hvordan refererer jeg til 'res' i DBBroke fra DBClose? Kan man smede den sammen på en eller anden måde?
Hvordan kalder jeg på DBConnect fra en anden klasse?
Er det mon en god ide at dele DB controlleren op i disse metoder i samme klasse?
Har I ellers andre forslag til hvordan man kan gøre dette stykke arbejde?
Håber at I kan hjælpe mig med at udvide mit kendskab til dette sprog ;)
------------------------
import java.sql.*;
public class DBController {
//Skal kunne kaldes fra andre klasser, hvor der er behov
//for at etabelere en forbindelse til DB
public void DBConn() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn =
DriverManager.getConnection(
"jdbc:mysql://ishtar.imv.au.dk/g04f010",
"g04f010",
"PASSWORD");
if (!conn.isClosed())
System.out.println(
"Successfully connected to "
+ "MySQL server using TCP/IP...");
} catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
} finally {
try {
if (conn != null)
conn.close();
} catch (SQLException e) {
}
}
}
//Skal håndtere forespørgsler til DB og returnere 'res'
//som skal kunne benyttes i andre klasser.
public String DBBroke(String theSql) {
Statement statement = conn.createStatement();
ResultSet res = statement.executeQuery(theSql);
return res;
}
// Skal bruges til at lukke forbindelsen til DB
// efter at det er foretaget en forespørgsel vha.
// DBBroke().
public void DBClose() {
closeRes = DBBroke(??);
closeRes.close();
statement.close();
conn.close();
System.exit(0);
}
}
