2016-03-18 4 views
0

Я создал Db (student.db3) с sqlite2009pro зашифрованного (паролем) protected.how подключить это JTable.see следующий кодКак подключить SQLite2009pro к jtable?

import java.sql.*; 
    import javax.swing.*; 

    public class javaconnect { 

      Connection conn=null; 
      public static Connection connecrDb(){ 
     try{ 

      Class.forName("org.sqlite.JDBC"); 
      Connection  conn=DriverManager.getConnection("jdbc:sqlite:C:\\Users\\ME\\Desktop\\MY PROJECTS\\webcam\\sqlite3\\student.db3"); 
    //JOptionPane.showMessageDialog(null,"Connection Established");C:\Users\ME\Desktop\MY PROJECTS\Bunker Calcultaion Tool 
    return conn; 
    }catch (Exception e){ 

     JOptionPane.showMessageDialog(null, e); 
     return null; 

    } 


} 

} 

и я звоню этот класс, как, см сильфона кода

public void Update_table() { 

    try{ 
    conn=javaconnect.connecrDb(); 
    String sql="SELECT * FROM grade"; 

    pst=conn.prepareStatement(sql); 
    rs=pst.executeQuery(); 
    jTable1.setModel(DbUtils.resultSetToTableModel(rs)); 


} 
catch(Exception e){ 

     JOptionPane.showMessageDialog(null, "problem exists"); 

    } 
} 

ответ

0

Один из способов сделать это будет иметь метод DbUtils.resultSetToTableModel возвращает экземпляр javax.swing.table.DefaultTableModel.

Вы можете построить DefaultTableModel с помощью этого конструктора:

DefaultTableModel(Vector data, Vector columnNames) 

Данные вектор содержит все строки. Каждая строка сама является вектором, который содержит значения полей в каждой строке.

Таким образом, вы можете использовать код, подобный следующему:

public static TableModel resultSetToTableModel(ResultSet rs) { 
    Vector data = new Vector(); 
    while (rs.next()) { 
     Vector row = new Vector(); 
     row.add(rs.getObject(1)); 
     row.add(rs.getObject(2)); 
     ... repeat for each field... 

     data.add(row); 
    }   

    Vector columnNames = new Vector(); 
    columnNames.add("columnName1"); 
    columnNames.add("columnName2"); 
    ... repeat for each field... 

    TableModel result = new DefaultTableModel(data, columnNames); 

    return result; 
} 
+0

выше код не может подключиться зашифрованный (пароль защищен) database.please еще раз прочитать мой вопрос. – akathir79

+0

Хорошо, основываясь на названии вопроса, я предполагал, что речь шла об использовании JDBC с JTable. Если проблема в том, что вы вообще не можете подключиться к базе данных, посмотрите на них: http://stackoverflow.com/questions/12803140/java-jdbc-driver-sqlite-3-7-2- не удалось открыть-database-test-db-file-is-encry http://stackoverflow.com/questions/27218985/how-to-set-database-password-in-sqlite-jdbc https: //gist.github.com/ggiraldez/7141132 В основном кажется, что стандартный SQLite JDBC-драйвер не поддерживает шифрование. –

Смежные вопросы