Hadi is an Android ORM Framework. It makes SQLite using in Android easy and simple. Hadi is and open source project.
It was originally created by The9tCat http://sourceforge.net/users/the9tcat
Examples project: https://github.com/PepeuCps/HadiExamples
-
Import Hadi library (hadi.jar)* into your Android project. (See the last build/binary in https://github.com/PepeuCps/Hadi/releases). If you are using Eclipse, add the lib to the build path.
-
Edit your AndroidManifest.xml
Add attribute "android:name" into element application, it looks like this:
<application android:name="com.the9tcat.hadi.HadiApplication" android:icon="@drawable/icon" android:label="@string/app_name">
Define your database name and version under element Application, it looks like this::
<application android:name="com.the9tcat.hadi.HadiApplication" android:icon="@drawable/icon" android:label="@string/app_name">
<meta-data android:name="Hadi_DB_NAME" android:value="demo.db" />
<meta-data android:name="Hadi_DB_VERSION" android:value="1" />
-
Write your table's model class:
import com.the9tcat.hadi.annotation.Column; import com.the9tcat.hadi.annotation.Table; @Table(name="Hello") //define your table's name public class Book { @Column(autoincrement=true) public int id; // define the table's column @Column(name="sn") public String sn; @Column(name = "") public String name; }
-
Use DefaultDAO to insert, update, select and delete data:
DefaultDAO dao = new DefaultDAO(this); // "this" is android context /** for save data to database */ Book b1 = new Book(); b1.name = "Who Moved My Cheese"; b1.sn = "sn123456789"; dao.insert(b1); /** for update data */ b1.sn = "sn987654321"; dao.update_by_primary(b1); /** for select */ String[] args = {"0"}; List<Book> books = (List<Book>)dao.select(Book.class, false, " id > ?", args, null, null, null, null); System.out.println(books.size()); for(Book b:books){ System.out.println(b.id+"=="+b.name); } b1.id = 1; /** for delete */ dao.delete_by_primary(b1);
-
You could find all the example codes from demo project or if you have any quaestions send a e-mail to [email protected].
Pay attention with proguard configurations when you use HADI because the annotations and the property names can cause strange names (table names and columns) in your database. Just configure proguard-project.txt with this definitions:
-
Don't obuscate HADI:
-keep class com.the9tcat.hadi.** { *; }
-
Don't obfuscate your model classes:
-keep class com.yourpackage.model.** { *; }
Hadi é um framework ORM para Android. Ele faz o SQLite ficar fácil de usar. O Hadi é um projeto open source. Participe do nosso projeto e contribua.
Este projeto foi criado originalmente por The9tCat http://sourceforge.net/users/the9tcat
Projeto com exemplos: https://github.com/PepeuCps/HadiExamples
-
Importe a biblioteca do Hadi (hadi.jar)* para dentro do seu projeto Android. (Veja a última build em https://github.com/PepeuCps/Hadi/releases) Se estiver usando Eclipse não esqueça de clicar com o botão direito na lib e escolher "Add To Build Path".
-
Edite seu AndroidManifest.xml
Adicione o atributo "android:name" no seu elemento application. Algo parecido com isso:
<application android:name="com.the9tcat.hadi.HadiApplication" android:icon="@drawable/icon" android:label="@string/app_name">
Defina o nome da sua base de dados e a versão (dentro da tag Application). Algo parecido com isso:
<application android:name="com.the9tcat.hadi.HadiApplication" android:icon="@drawable/icon" android:label="@string/app_name">
<meta-data android:name="Hadi_DB_NAME" android:value="demo.db" />
<meta-data android:name="Hadi_DB_VERSION" android:value="1" />
-
Escreva suas classes de modelo (suas tabelas):
import com.the9tcat.hadi.annotation.Column; import com.the9tcat.hadi.annotation.Table; @Table(name="MinhaTabela") //define your table's name public class Book { @Column(autoincrement=true) public int id; // define the table's column @Column(name="sn") public String sn; @Column(name = "name") public String name; }
-
Use o DefaultDAO para inserir, atualizar, selecionar ou apagar os dados:
DefaultDAO dao = new DefaultDAO(this); // "this" é o seu contexto Android, algo como o GetApplicationContext() /** para salvar dados na base de dados */ Book b1 = new Book(); b1.name = "Who Moved My Cheese"; b1.sn = "sn123456789"; dao.insert(b1); /** para atualizar dados */ b1.sn = "sn987654321"; dao.update_by_primary(b1); /** para selecionar dados */ String[] args = {"0"}; List<Book> books = (List<Book>)dao.select(Book.class, false, " id > ?", args, null, null, null, null); System.out.println(books.size()); for(Book b:books){ System.out.println(b.id+"=="+b.name); } b1.id = 1; /** para apagar os dados */ dao.delete_by_primary(b1);
-
Você pode achar mais exemplo nos projeto de demonstração ou qualquer dúvida enviar um e-mail para [email protected].
Preste atenção com as configurações do Proguard quando você usa-lo em conjunto com o HADI. As anotações e os nomes das classes e propriedades podem gerar resultados estranhos na sua base de dados. Configure o proguard-project.txt com a seguintes definições:
-
Não obfusque o HADI:
-keep class com.the9tcat.hadi.** { *; }
-
Não obfusque suas classes de modelo:
-keep class com.yourpackage.model.** { *; }