|
April 19, 2018
|

Como Fazer o CRUD com SQLite no Totalcross – Parte 3.

Durante essa série de posts, vamos aprender como configurar, incluir, alterar, excluir e consultar os dados (CRUD) no SQLite com o Totalcross.

Iniciamos esse passo-a-passo no nosso 9º Webinar e também já temos a parte 1 (Criando o Projeto) e a parte 2 (Criando uma tabela e inserindo dados) Então não esqueça de conferí-los e depois voltar para cá!

Recapitulando

Bom, até essa parte nós já criamos e configuramos todo o projeto, também já aprendemos a criar uma tabela e a inserir dados nela.

Agora vamos passa para o READ.

READ – Lendo os dados de uma tabela – com SQLite no Totalcross

Agora vamos criar uma metódo para ler os dados da tabela USERS, dentro da classe SQLiteManager:

public ArrayList<User> getUsers() {
  ArrayList<User> users = new ArrayList<>();
    try {
       Statement st = util.con().createStatement();
       ResultSet rs = st.executeQuery("SELECT * FROM USERS");
       while (rs.next()){
         User user = new User();
         user.setName(rs.getString("NAME"));
         user.setPhone(rs.getString("PHONE"));
         user.setMail(rs.getString("EMAIL"));
         user.setPassword(rs.getString("PASSWORD"));
         users.add(user);
       }
    }catch (SQLException e) {
      e.printStackTrace();
    }
    return users;
}

Seu código deve ficar como esse:

Read

E exibindo para o usuário…

Se você costuma acompanhar nosso canal no youtube, viu que os dois últimos videos foram sobre grid e isso não é por acaso, como vamos ver no passo-a-passo a seguir:

  • Passo 1 – Criando a Grid: Como já vimos no video, vamos criar nossa grid exatamamente como mostramos no video.
  • Passo 2 – Preencher a Grid: Nesse caso vamos mudar o que colocamos dentro do PressListener(), de forma que vamos fazer assim:
        loadButton.addPressListener(new PressListener() {
    	        @Override
    	        public void controlPressed(ControlEvent e)
    	        {        	
    	        	ArrayList users = SQLiteManager.getInstance().getUsers();        	
    	        	if (users.size() > 0) {	        	
    		        	String items[][] = new String[users.size()][3];	        	
    		        	for (int i = 0; i < users.size(); i++) {	        		
    		        		User user = users.get(i);	        		
    		        		items[i] =  new String[] {user.getName(), user.getPhone(), user.getMail()};	        		
    		        	}
    		            grid.setItems(items);	            
    	            } else {            	
    	            	MessageBox mb = new MessageBox("Message" , "No registered users.", new String[]{"Close"});
    		        	mb.setBackColor(Colors.BACKGROUND);
    		        	mb.setForeColor(Colors.FOREGROUND);
    		        	mb.popup();
    	            }
    	        }
    	    });
        }

 

Não se esqueça!

Não podemos esquecer de criar a classe Usersque é a classe da sua tabela de usuários no seu .SQLite e nela vai ter todos os parâmetros que equivalem as colunas. Vai ficar desse jeitinho:

 

 public class SQLiteManager {
	private static SQLiteManager instance = null;
	private SQLiteUtil util;
	
        private SQLiteManager() {
		try {
			util = new SQLiteUtil(Settings.appPath,"SQLiteExample.db");
			createUserTable();
		
                } catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
        public static SQLiteManager getInstance() {
		if(instance == null) {
			instance = new SQLiteManager();
		
                }
		return instance;
	}
	
        public void createUserTable() {
		try {	
			Statement st = util.con().createStatement();
			st.execute("CREATE TABLE IF NOT EXISTS USERS (
				   NAME VARCHAR(50), 
				   PHONE VARCHAR(15), 
				   EMAIL VARCHAR(20), 
				   PASSWORD VARCHAR(20))
				");
			st.close();	
		
                } catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
        public void deleteUser(String email) {
		try {
			Statement st = util.con().createStatement();
			st.execute("Delete from USERS where EMAIL = 'email' ");
			st.close();	
	
        	} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
        public Boolean insertUsers(User user) {
		Boolean success = true;
		try {
			String sql = "INSERT INTO USERS VALUES (?,?,?,?)";
			PreparedStatement st = util.con().prepareStatement(sql);	
			st.setString(1, user.getName());
			st.setString(2, user.getPhone());
			st.setString(3, user.getMail());
			st.setString(4, user.getPassword());	
			st.executeUpdate();
			st.close();	
	
         	} catch (SQLException e) {
			e.printStackTrace();
			success = false;
		}
		return success;
	}
	
        public ArrayList getUsers() {
		ArrayList users = new ArrayList<>();
		try {	
			Statement st = util.con().createStatement();
			ResultSet rs = st.executeQuery("SELECT * FROM USERS");	
			while (rs.next()){		
				User user = new User();
				user.setName(rs.getString("NAME"));
				user.setPhone(rs.getString("PHONE"));
				user.setMail(rs.getString("EMAIL"));
				user.setPassword(rs.getString("PASSWORD"));		
				users.add(user);		
			}
	
         	} catch (SQLException e) {
			e.printStackTrace();
		}
		return users;
	}
}

 



Bem, já aprendemos a criar a classe para fazer os principais chamados e agora aprendemos a inserir esses dados no nosso database. Se quiser ajuda com criação de interface, não esquece dar uma olhada nesse video!

Caso você esteja com dúvidas basta comentar aqui!

Comments

More articles

X dicas para você criar uma estratégia de mobile marketing infalível

November 20, 2018

Afinal, é possível criar app sem saber programação?

November 16, 2018

Como transformar um website em aplicativo?

November 14, 2018

Aplicativos: O que conhecer antes de criar um

November 13, 2018