Giter Site home page Giter Site logo

hadi's Introduction

Hadi (English Version)

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

How to use

Examples project: https://github.com/PepeuCps/HadiExamples

  1. 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.

  2. 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" />
  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;
     }
    
  2. 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);		
    
  3. You could find all the example codes from demo project or if you have any quaestions send a e-mail to [email protected].

PROGUARD

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:

  1. Don't obuscate HADI: -keep class com.the9tcat.hadi.** { *; }

  2. Don't obfuscate your model classes: -keep class com.yourpackage.model.** { *; }

Hadi (Portuguese Version)

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

Como Usar

Projeto com exemplos: https://github.com/PepeuCps/HadiExamples

  1. 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".

  2. 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" />
  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;
     }
    
  2. 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);		
    
  3. Você pode achar mais exemplo nos projeto de demonstração ou qualquer dúvida enviar um e-mail para [email protected].

PROGUARD

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:

  1. Não obfusque o HADI: -keep class com.the9tcat.hadi.** { *; }

  2. Não obfusque suas classes de modelo: -keep class com.yourpackage.model.** { *; }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.