Meus amigos, qual o melhor e mais prático jeito de criar tabelas?
Utilizando o código:
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);
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());
}
Qual desses métodos é melhor para criar as tabelas e suas diferenças qto a performance?
ao meu ver não vejo diferença…
pois um é imutavel e o outro é mutavel… é essa a diferença, não tem perda de performance…
agora se fosse uma discussãoentre StringBuffer e StringBuilder ai seria outra historia o.O
E vantagens e desvantagens, tem? Como assim mutável e imutável?
Eu prefiro isto aqui:
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)]);";
Se você ler a especificação da linguagem, NESTE CASO é mais vantagem fazer isto porque a concatenação de constantes strings é uma constante string (ou seja, só neste caso “a” + “b” é exatamente igual a “ab”). Ou seja, não é gerado nenhum código adicional lento do tipo “String.concat”, que normalmente é usado para concatenar strings.
[quote=entanglement]Eu prefiro isto aqui:
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)]);";
Se você ler a especificação da linguagem, NESTE CASO é mais vantagem fazer isto porque a concatenação de constantes strings é uma constante string (ou seja, só neste caso “a” + “b” é exatamente igual a “ab”). Ou seja, não é gerado nenhum código adicional lento do tipo “String.concat”, que normalmente é usado para concatenar strings. [/quote]
Esse lento é tão insignificante que vc nem nota… se duvidar é no maximo 3 ciclos de processamento… é muito rapido para se notar… eu particularmente prefiro a maneira com StringBuilder pois vc não fica gerando variavel auxiliar para concatenar…
Respondendo ao fbrigatt
da uma lida nesse artigo…
http://blog.caelum.com.br/strings-imutaveis/
é um pequeno artigo e de facil compreensão xD
achei tbm outro topico aqui no guj discutindo sobre…
http://www.guj.com.br/java/54259-o-que-e-a-classe-stringbuilder-
Ok, vou ler.
Mas me digam uma coisa, porque colocar [] entre os campos? Apenas para diferenciar?
[quote=fbrigatt]Ok, vou ler.
Mas me digam uma coisa, porque colocar [] entre os campos? Apenas para diferenciar?[/quote]
olha não sei dizer… nunca fiz isso criação de tabela via fonte… ou sempre deixava o hibernate criar, ou eu criava na mão a tabela… mas olhando por cima levo a crer que é apenas para distinguir um campo do outro…
ok, poderia me ajudar nesse link:
Layout com botões estilo Windows 8
http://www.guj.com.br/java/302081-layout-com-botoes-estilo-windows-8
[quote=fbrigatt]ok, poderia me ajudar nesse link:
Layout com botões estilo Windows 8
http://www.guj.com.br/java/302081-layout-com-botoes-estilo-windows-8[/quote]
Não manjo muito de criar tela… sempre sai feia rsrsrs
não sou o mais indicado para te ajudar nesse assunto… sorry
mas se nao me engano o windows 8 é feito com html5, mas deve dar para fazer algo com CSS tbm
Quero criar apenas os botões, um ao lado do outro, entendeu?