Fórum Criação de tabelas #447565
02/07/2013
0
Utilizando o código:
private static String sql = "CREATE TABLE [clientes] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT, [nome] [VARCHAR(30)], [email] [VARCHAR(40)], [endereco] [VARCHAR(50)], [numero] [VARCHAR(10)]);"; db.execSQL(sql);
ou
@Override
public void onCreate(SQLiteDatabase db) {
SQLiteDatabase db = new DB(ctx).getWritableDatabase(); // esse código viria de uma classe DAO, correto?
StringBuilder sqlClientes = new StringBuilder();
sqlClientes.append("CREATE TABLE [clientes] (");
sqlClientes.append("[idCliente] INTEGER PRIMARY KEY AUTOINCREMENT, ");
sqlClientes.append("nome varchar(30), ");
sqlClientes.append("email varchar(40), ");
sqlClientes.append("endereco varchar(50), ");
sqlClientes.append("numero varchar(10));");
db.execSQL(sqlClientes.toString());
}
E assim faria para outras tabelas que tivessem. Qual é o método mais adequado?
Frederico Brigatte***
Curtir tópico
+ 0Posts
02/07/2013
Joel Rodrigues
NESSE CASO, eu acho a primeira mais adequda.
Gostei + 0
02/07/2013
Frederico Brigatte***
private static String sqlClientes = "CREATE TABLE [clientes] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT, [nome] [VARCHAR(30)], [email] [VARCHAR(40)], [endereco] [VARCHAR(50)], [numero] [VARCHAR(10)]);"; private static String sqlOutraTabela = "CREATE TABLE [outratabela] ( [id] INTEGER PRIMARY KEY AUTOINCREMENT, [nome] [VARCHAR(30)], [email] [VARCHAR(40)], [endereco] [VARCHAR(50)], [numero] [VARCHAR(10)]);"; db.execSQL(sqlClientes); db.execSQL(sqlOutraTabela);
OutraTabela seria um exemplo para criar mais uma. O campo id pode por qualquer nome, não precisa ser _id, como tenho visto?
Gostei + 0
02/07/2013
Joel Rodrigues
Gostei + 0
02/07/2013
Joel Rodrigues
Gostei + 0
02/07/2013
Eduardo Pessoa
Gostei + 0
02/07/2013
Frederico Brigatte***
private static final String DATABASE_CREATE_CLIENTES = "create table clientes ("id_Cliente integer primary key autoincrement, nome text, data text, telefone text, celular text, email text);";
Gostei + 0
02/07/2013
Frederico Brigatte***
private static final string database_create_clientes = "create table clientes ("id_cliente integer primary key autoincrement, nome text, data text, telefone text, celular text, email text);";
Está errado, o correto seria:
private static final string database_create_clientes = "create table clientes (id_cliente integer primary key autoincrement, nome text, data text, telefone text, celular text, email text);";
Gostei + 0
02/07/2013
Joel Rodrigues
Gostei + 0
02/07/2013
Frederico Brigatte***
Gostei + 0
02/07/2013
Joel Rodrigues
Gostei + 0
02/07/2013
Frederico Brigatte***
Gostei + 0
02/07/2013
Joel Rodrigues
Vamos lá a uma comparação dos códigos:
No primeiro formato você cria e já dá um valor a uma única string e a usa no método para executar a instrução.
No segundo formato você cria um StringBuilder (classe mais complexa), chama o método para inserir strings várias vezes e por fim ainda chama o ToString(). Já percebemos que o primeiro é bem mais simples, logo, executado com mais facilidade.
Dificilmente essa diferença será notada, mas em aplicações grande, ao longo do tempo isso pode se tornar fundamental.
Existe, porém, uma situação em que StringBuilder é melhor que String. Desejam saber?
Gostei + 0
02/07/2013
Frederico Brigatte***
Gostei + 0
02/07/2013
Frederico Brigatte***
Gostei + 0
02/07/2013
Joel Rodrigues
Cara, só por curiosidade, você nasceu de 7 meses? Apressado pra caramba, hein?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)