Avatar billede aryan Nybegynder
11. maj 2011 - 19:27 Der er 2 kommentarer

Access to JDBC class from another class and run it with main class???

Kære venner, jeg vil gerne dele min nedstående class i 3. MainClass, JDBCClass og SlcClass(henter data from database). Er det muligt at gør det sådan og hvordan gør man det?
på forhånd tak. :)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class ShowRecords {
  public static void main(String args[]) {
    String url = "jdbc:mysql://localhost:3306/";
    String db = "mads";
    Connection con = null;

    try {
      String driver = "com.mysql.jdbc.Driver";

      Class.forName(driver).newInstance();
    } catch (Exception e) {
      System.out.println("Failed to load mSQL driver.");
      return;
    }
    try {
      con = DriverManager.getConnection(url+db, "******", "******");
      Statement select = con.createStatement();
      ResultSet result = select
          .executeQuery("SELECT Employee_ID, E_navn FROM 10it0");
     
      System.out.println("Got results:");
      while (result.next()) { // process results one row at a time
        int key = result.getInt(1);
        String val = result.getString(2);

        System.out.println("| " + "Eployee_ID = " + key +" " +"|" + " E_navn = " + val+ "|");
        //System.out.println("E_navn = " + val);
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (con != null) {
        try {
          con.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
}
Avatar billede arne_v Ekspert
12. maj 2011 - 03:55 #1
Ikke helt den opdeling du spoerger efter, men det boer give en masse gode ideer (koden er ca. som jeg skrev Java for 10 år siden).


public class Employee {
    private int id;
    private String name;
    public Employee() {
        this(0, "**** Not initialized ****");
    }
    public Employee(int id, String name) {
        this.id = id;
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class DatabaseAccess {
    private Connection con;
    public DatabaseAccess(String conurl, String un, String pw) throws SQLException {
        con = DriverManager.getConnection(conurl, un, pw);
    }
    public List<Employee> getAllEmployees() throws SQLException {
        List<Employee> res = new ArrayList<Employee>();
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT Employee_ID, E_navn FROM 10it0");
        while (rs.next()) {
            int id = rs.getInt(1);
            String name = rs.getString(2);
            res.add(new Employee(id, name));
        }
        rs.close();
        stmt.close();
        return res;
    }
    public void close() throws SQLException {
        con.close();
    }
}



import java.io.FileInputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;

public class MainClass {
    public static void main(String[] args) {
        Properties props = new Properties();
        try {
            props.load(new FileInputStream("config.properties"));
        } catch (IOException e) {
            System.err.println("Error reading config.properties: " + e);
            System.exit(1);
        }
        String driver = props.getProperty("db.driver");
        String conurl = props.getProperty("db.conurl");
        String un = props.getProperty("db.un");
        String pw = props.getProperty("db.pw");
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            System.err.println("Error loading driver " + driver + ": " + e);
            System.exit(1);
        }
        DatabaseAccess da = null;
        try {
            da = new DatabaseAccess(conurl, un, pw);
            List<Employee> allemp = da.getAllEmployees();
            for(Employee emp : allemp) {
                System.out.println(emp.getId() + " " + emp.getName());
            }
        } catch (SQLException e) {
            System.err.println("Error in DatabaseAccess: " + e);
        } finally {
            if(da != null) {
                try {
                    da.close();
                } catch (SQLException e) {
                    System.err.println("Error closing DatabaseAccess: " + e);
                }
            }
        }
    }
}
Avatar billede arne_v Ekspert
25. juni 2011 - 04:18 #2
all set?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester