zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    python---读取/写入excel用例数据
    unitest框架--认识与基本使用
    python--模拟蜂窝网(https)登陆总结
    python--实践--模拟浏览器(http)登陆
    python--return小练习
    python--smtp邮件使用
    关于商城价格变动对订单影响的问题
    history.back新页面跳转
    PHP无限极分类
    htaccess分布式配置文件常用写法
  • 原文地址:https://www.cnblogs.com/mengxingxinqing/p/3021425.html
Copyright © 2011-2022 走看看