androrm初步使用

首先要引入的包androrm.jar

我的目录结构

MainActivity.java

package tong.android.test;

import java.util.ArrayList;
import java.util.List;

import tong.android.model.Author;
import tong.android.model.Book;

import com.orm.androrm.DatabaseAdapter;
import com.orm.androrm.Model;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
/**
 * 本程序为了测试androrm数据库持久层框架,最后使用结论是,支持外键,支持多表查询,但是这个框架的模型建的不是很合习惯
 * @author TongShuai
 *
 */
public class MainActivity extends Activity implements OnClickListener{
    private EditText mBookName;
    private EditText mAuthorName;
    private Button mSubmit;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViews();
        addListeners();
        initDB();
    }
    /**
     * 建立数据库  初始化 数据库 与 模型之间的映射关系
     */
    private void initDB() {
        List<Class<? extends Model>> models = new ArrayList<Class<? extends Model>>();
        models.add(Author.class);
        models.add(Book.class);                                                     
        DatabaseAdapter.setDatabaseName("a_database_name");
        DatabaseAdapter adapter = new DatabaseAdapter(getApplicationContext());
        adapter.setModels(models);
    }

    private void addListeners() {
        mSubmit.setOnClickListener(this);
    }

    private void findViews() {
        mBookName = (EditText) findViewById(R.id.editText1);
        mAuthorName = (EditText) findViewById(R.id.editText2);
        mSubmit = (Button) findViewById(R.id.button1);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    /*
     * 这个方法用来执行保存
     */
    @Override
    public void onClick(View v) {
        Author author = new Author();
        author.setName(mAuthorName.getText().toString());
        author.save(this);
        
        Book book = new Book();
        book.setTitle(mBookName.getText().toString());
        book.setAuthor(author);
        book.save(this);
        Toast.makeText(this, "save", 5000).show();
    }

}

模型类:Book.java

package tong.android.model;

import com.orm.androrm.Model;
import com.orm.androrm.field.CharField;
import com.orm.androrm.field.ForeignKeyField;

public class Book extends Model {
    //字符串型智能用这种方式保存
    protected CharField mTitle;
    //外键关联
    protected ForeignKeyField<Author> mAuthor;
    
    public Book() {
        mTitle = new CharField(80);
        mAuthor = new ForeignKeyField<Author>(Author.class);
        
    }
    
    public void setAuthor(Author author){
        mAuthor.set(author);
    }
    public String getTitle(){
        return mTitle.get();
    }
    public void setTitle(String title){
        mTitle.set(title);
    }
    public Author getAuthor(){
        return mAuthor.get();
    }
    
}

模型类:Author.java

package tong.android.model;

import android.content.Context;

import com.orm.androrm.Model;
import com.orm.androrm.QuerySet;
import com.orm.androrm.field.CharField;

public class Author extends Model {
    protected CharField mName;
    public static final QuerySet<Author> objects(Context context) {
         return objects(context, Author.class);
    }

    public Author() {
        super();
        this.mName = new CharField(80);
    }
    
    public void setName(String name    ){
        mName.set(name);
    }
    public String getName(){
        return mName.get();
    }
    
}

布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="书名:" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="作者:" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提交" />

</LinearLayout>

 

posted @ 2013-04-15 09:02  梦醒心晴  Views(487)  Comments(0Edit  收藏  举报