|
April 19, 2018|
1136
0
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:
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 Users, que é 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