Stadig problem med insert into Access database
Hej igen igen :-) jeg har 3 klasser, Access, simse og inputHvor simse er main klasse.
Derfra kalder jeg input, som henter oplysninger for insert into i databasen. Derfra kaldes sql i Access klassen. Der er ikke ingen fejl under compilering eller exe, men der bliver bare ikke opdateret ? Hvis jeg kalder Access klasdsen direkte fra main metode i simse klassen fungerer det ok. Følgende er de 3 klassers kode, Jeg er nybegynder i java og ved at koden ikke er "smuk" men kfor nu vil jeg bare have det til at fungere :-)
simse.java
import java.sql.*;
import java.util.Vector;
import java.io.*;
class simse {
public static void main(String[] args) throws IOException{
input in = new input();
in.input();
Dette virker faktisk ?? // A.execSql("insert into person ( fornavn,efternavn,Adresse) values ('Busse','Jansen','GGiollavej 30')");
}
}
input.java
import java.sql.*;
import java.io.*;
public class input {
public static void input() throws IOException {
BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in));
String FirstName, SirName, Address;
System.out.println ("Type your firstname:");
FirstName = stdin.readLine();
System.out.println ("Type your Sir Name:");
SirName =stdin.readLine();
System.out.println ("Type your Addresse:");
Address=stdin.readLine();
Access dba = new Access();
dba.Access();
try {
dba.open();
} catch (SQLException e) {
e.printStackTrace();
}
String sql = "insert into person ( fornavn,efternavn,Adresse) values ('"+FirstName+"', '"+SirName+"', '"+Address+"')";
System.out.println(sql);
dba.execSql(sql);
}
}
Access.java
//Dette virker i min Access:
import java.sql.*;
import java.util.Vector;
public class Access {
private Connection con;
private Vector results;
public void Access() {
// Load the JDBC-ODBC bridge driver
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ee) {
ee.printStackTrace();
}
}
// 2.open a data source name by means of the jdbcodbcdriver.
// udfør sql statement uden resultset
public void execSql(String sql) {
try {
Statement stmt = con.createStatement();
stmt.execute(sql);
} catch(Exception e) {e.printStackTrace();}
}
public void open() throws SQLException {
// ODBC data source name
String dsn = "jdbc:odbc:person";
String user = "admin";
String password = "";
// Connect to the database
con = DriverManager.getConnection(dsn, " ", " ");
// Shut off autocommit
// con.setAutoCommit(true);
}
// udtræk fra databasen, resultatet består af en sekvens af felter
public Vector doQuery(String sqlUdtryk) {
ResultSet rs = null;
Vector data = new Vector();
try {
Statement stmt = con.createStatement();
rs = stmt.executeQuery(sqlUdtryk);
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
while (rs.next()) {
if (numberOfColumns > 1) {
for (int i = 1; i <= numberOfColumns; i++) {
data.add(rs.getString(i));
//System.out.println(data);
}
} else {
data.add(rs.getString(1));
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return data;
}
}
Håber der er nogen der kan hjælpe det er blevet lidt en hurdle for mig at få det til at virke.
