2015-11-29 23 views
0

我正在学习javaMVC
现在我试图将我的软件与数据库sqlite连接起来。JAVA MVC访问数据库

我有我的Model

package model; 

public class Station { 
    private String cnpj; 
    private String cep; 
    private String razao_social; 

    //Constructor 
    public Station(){ 

    } 

    public Station(String cnpj, String cep, String razaoSocial){ 
     this.cnpj = cnpj; 
     this.cep = cep; 
     this.razao_social = razaoSocial;    
    }  

    //Gets Setters 

    public String getCnpj() { 
     return cnpj; 
    } 

    public void setCnpj(String cnpj) { 
     this.cnpj = cnpj; 
    } 

    public String getCep() { 
     return cep; 
    } 

    public void setCep(String cep) { 
     this.cep = cep; 
    } 

    public String getRazao_social() { 
     return razao_social; 
    } 

    public void setRazao_social(String razao_social) { 
     this.razao_social = razao_social; 
    } 
} 

我有我的TableModel:

package model; 

import java.util.ArrayList; 
import javax.swing.table.AbstractTableModel; 

public class TableModelStation extends AbstractTableModel{ 
    private static final String[] columnNames = {"cnpj", "razao_social", "nome_fantasia", "bandeira", "endereco", "bairro", "cep", "imagem"}; 

    private ArrayList<Station> stations; 

    public TableModelStation(){ 
     stations = new ArrayList<>(); 
    } 

    public void addStation(Station station){ 
     this.stations.add(station); 
     fireTableDataChanged(); 
    } 

    public void removeStation(int rowIndex){ 
     this.stations.remove(rowIndex); 
     fireTableDataChanged(); 
    } 

    @Override 
    public String getColumnName(int columnIndex){ 
     return columnNames[columnIndex]; 
    } 

    @Override 
    public int getRowCount() { 
     return this.stations.size(); 
    } 

    @Override 
    public int getColumnCount() { 
     return columnNames.length; 
    } 

    @Override 
    public Object getValueAt(int rowIndex, int columnIndex) { 
     switch(columnIndex){ 
      case 0: 
       return this.stations.get(rowIndex).getCnpj(); 

      case 1: 
       return this.stations.get(rowIndex).getRazao_social(); 
     } 
     return null; 
    } 
} 

我想创建到数据库的连接,还编写SQL代码为我的模型(CRUD)。所以:

1)我应该创建另一个package来分离连接吗?也许是Interface
2)我应该创建类似StationDAO来实现我的模型CRUD

什么是正确的做法?遵循MVC规则......我真的迷路了。


+0

是的,它是一种更好的编码标准使用接口和分离的实现。使用一个单独的类来执行CRUD操作。而且,根据MVC规则而定。您的控制器将查找DAO类,然后填充模型类。 ANd,那么你可以显示在视图层分类的那些模型。 –

回答

1

,你可以有连接到数据库,这将是超一流的DAO,然后StationDAO将延长Dao连接类

+0

“SQL查询”呢?它会被写入'StationDAO'吗? – PlayHardGoPro

+1

是的,如果你有一个接口并且'StationDao'类可以实现的话,你可以在'StationDao'中使用'Sql Query'。 – luffy

+0

谢谢你。 “控制器”在哪里?它与谁沟通? – PlayHardGoPro