android复习路之LitePal篇

来源:互联网 发布:sql数据库管理网页版 编辑:程序博客网 时间:2024/06/05 07:04

1.配置LitePal首先在app/build.gradle文件中添加依赖包

compile 'org.litepal.android:core:1.4.1'

然后在AndroidMainfast.xml将application的name属性设置为org.litepal.LitePalApplication样才能使LitePal的全部功能正常使用。
2.使用首先我们要定义一个OpenHelper类代码如下:
public class OpenHelper extends DataSupport {    public int getId() {        return id;    }    public void setId(int id) {        id = id;    }    private int id;    private int x;    private int b;    private int c;    public int getC() {        return c;    }    public void setC(int c) {        this.c = c;    }    public int getX() {        return x;    }    public void setX(int x) {        this.x = x;    }    public int getB() {        return b;    }    public void setB(int b) {        this.b = b;    }}
这也就是一个java Bean,里面的每一个属性就代表表中的一个字段,然后就需要将OpenHelper加入映射列表中,在这我们需要创建一个assets目录,在app/src/main目录new一个Directory,创建一个assets目录,然后在目录下新建一个litepal.xml文件,接着编写litepal.xml中的内容:
<?xml version="1.0" encoding="utf-8" ?><litepal>    <dbname value="Book" ></dbname>    <version value="1" ></version>    <list>        <mapping class="com.example.zobject.litepal.OpenHelper"></mapping>    </list></litepal>
xml中内容应该很容易理解了,list中就是表名,需要一个完整的java类的路径。现在就可以正常的使用litepal了,现在修改MainActivity中的代码:
button.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        Connector.getDatabase();    }});
这样我们就可以创建Book数据库了。
如果我们要新添加字段我们就在原有的类中添加新的变量并且实现get和set方法就可以了,再次点击创建数据库就会发现字段更新了记得要在litepal.xml文件中把version更新一个新的版本,就可以了,如果要添加一张新的表,同样的方法创建一个新的类,在list中添加映射就可以了。如果要进行crud操作类必须继承DataSupport然后修改MainActivity中的代码:
button1.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        OpenHelper openHelper =new OpenHelper();        openHelper.setB(1);        openHelper.setX(1);        openHelper.setC(1);        openHelper.save();    }});
这就是给表中添加数据,但是一定要记得调用save。
接下来就是更新数据,更新数据有两种更新方式单条数据,一条是更新符合条件的全部数据。
第一种更新方式:调用updata()进行单条数据更新。
button3.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        OpenHelper openHelper=new OpenHelper();        openHelper.setB(2);        openHelper.update(2);    }});
第二种就是更新符合条件的全部数据:
button3.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View view) {            OpenHelper openHelper=new OpenHelper();            openHelper.setB(2);            //openHelper.update(2);            openHelper.updateAll("b=? and c=?","1","1" );        }    });}
注:如果给表添加默认数据,需要调用setToDefault()方法赋初值:
button3.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        OpenHelper openHelper=new OpenHelper();        openHelper.setToDefault("a");        openHelper.updateAll();    }});
删除数据也有两种方式一种是删除单条数据一种是删除符合条件的全部数据:
1.删除单条数据:
button2.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        DataSupport.delete(OpenHelper.class,1);        //DataSupport.deleteAll(OpenHelper.class,"a=?","1","b=?","1");    }});
2.删除符合条件的全部数据:
button2.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        //DataSupport.delete(OpenHelper.class,1);        DataSupport.deleteAll(OpenHelper.class,"a=?","1","b=?","1");    }});
注:删除的条件可以任意的组合。
查询数据也分多种情况,查询单独的某一条数据,查询符合条件的全部数据,查询全部数据:
1.查询全部数据:
button4.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        List<OpenHelper> data=DataSupport.findAll(OpenHelper.class);        for(OpenHelper openHelper:data){            openHelper.getB();            openHelper.getC();            openHelper.getX();            Log.d("MainActivity", "sbsbsbsb"+openHelper.getB());            Log.d("MainActivity", "sbsbsbsb"+openHelper.getX());            Log.d("MainActivity", "sbsbsbsb"+openHelper.getC());        }    }});
2.通过select进行查询:
List<OpenHelper> xx=DataSupport.select("a","b").find(OpenHelper.class);
3.通过where进行查询:
List<OpenHelper> yy=DataSupport.where("a>?","2").find(OpenHelper.class);
4.按照指定的排序方式进行排列:
List<OpenHelper> yy=DataSupport.order("a desc").find(OpenHelper.class);
注:如果没有desc代表升序排序。
5.limit指定查询结果数目:
List<OpenHelper> yy=DataSupport.limit(3).find(OpenHelper.class);
6.offset指定查询的偏移量:
如果查询2,3,4条就可以写:
List<OpenHelper> yy=DataSupport.limit(3).offset(1).find(OpenHelper.class);
如果要进行组合查询:
List<OpenHelper> xx = DataSupport.select("a", "b").where("a>?", "1").order("b").limit(10).offset(1).find(OpenHelper.class);
只查询a,b两列的数据,并且是a>1按照b升序排序,查询10条便宜量为1。
完整的MainActivity:
public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button button = (Button) findViewById(R.id.create);        Button button1 = (Button) findViewById(R.id.adddata);        Button button2 = (Button) findViewById(R.id.delet);        Button button3 = (Button) findViewById(R.id.updata);        Button button4 = (Button) findViewById(R.id.query);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Connector.getDatabase();            }        });        button1.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                OpenHelper openHelper = new OpenHelper();                openHelper.setB(1);                openHelper.setX(1);                openHelper.setC(1);                openHelper.save();            }        });        button2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                //DataSupport.delete(OpenHelper.class,1);                DataSupport.deleteAll(OpenHelper.class, "a=?", "1", "b=?", "1");            }        });        button4.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                List<OpenHelper> data=DataSupport.findAll(OpenHelper.class);                for(OpenHelper openHelper:data){                    openHelper.getB();                    openHelper.getC();                    openHelper.getX();                    Log.d("MainActivity", "sbsbsbsb"+openHelper.getB());                    Log.d("MainActivity", "sbsbsbsb"+openHelper.getX());                    Log.d("MainActivity", "sbsbsbsb"+openHelper.getC());                }               // List<OpenHelper> xx = DataSupport.select("a", "b").where("a>?", "1").order("b").limit(10).offset(1).find(OpenHelper.class);            }        });        button3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                OpenHelper openHelper = new OpenHelper();                openHelper.setB(2);                //openHelper.update(2);                openHelper.updateAll("b=? and c=?", "1", "1");                //openHelper.setToDefault("a");                //openHelper.updateAll();            }        });    }}
xml布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <Button    android:text="create"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/create"    />    <Button        android:text="adddata"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/adddata"        />    <Button        android:text="updata"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/updata"        />    <Button        android:text="delet"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/delet"        />    <Button        android:text="query"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/query"        /></LinearLayout>



0 0
原创粉丝点击