Android进阶——使用LitePal操作数据库

学会使用LitePal操作数据库

LitePal简介:
LitePal是一个Android开源库,它使开发者使用SQLite数据库变得非常容易。 你可以不用写一句SQL语句就可以完成大部分数据库操作,包括创建表,更新表,约束操作,聚合功能等等。

LitePal的基本用法

1.编辑build.gradle文件引入Jar包
dependencies {
    compile 'org.litepal.android:core:1.3.0'
}
2.配置litepal.xml

在assets目录下创建一个litepal.xml文件,复制以下代码进去:
这里我们创建litepal.xml文件的步骤为:Project->Main目录下->新建Directory包名为assets->新建file文件名为litepal.xml

接下来在litepal.xml中写下这几行代码

<?xml version="1.0" encoding="utf-8"?>
<litepal>

    <dbname value="demo" />


    <version value="1" />


    <list>

    </list>
</litepal>
3.创建表格

这里我创建两个实体类Album和Song

实体类Album

public class Album extends DataSupport{
    @Column(unique = true, defaultValue = "unknown")
    private String name;

    private float price;

    private Date releaseDate;

    private List<Song> songs = new ArrayList<Song>();

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    public List<Song> getSongs() {
        return songs;
    }

    public void setSongs(List<Song> songs) {
        this.songs = songs;
    }
}

实体类Song

public class Song extends DataSupport{
    @Column(nullable = false)
    private String name;

    private int duration;

    @Column(ignore = true)
    private String uselessField;

    private Album album;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getDuration() {
        return duration;
    }

    public void setDuration(int duration) {
        this.duration = duration;
    }

    public String getUselessField() {
        return uselessField;
    }

    public void setUselessField(String uselessField) {
        this.uselessField = uselessField;
    }

    public Album getAlbum() {
        return album;
    }

    public void setAlbum(Album album) {
        this.album = album;
    }
}
4.修改assets目录下的litepal.xml文件
   <list>
        <mapping class="com.example.lenovo.myapplication.Album" />
        <mapping class="com.example.lenovo.myapplication.Song" />
    </list>
5.在AndroidManifest.xml中配置下LitePalApplication
android:name="org.litepal.LitePalApplication"

接下来就可以对数据进行增删改查了

首先在xml中添加按钮

<EditText
        android:id="@+id/album_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="添加专辑名" />

    <Button
        android:id="@+id/add_album_btn"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="添加专辑" />

    <Button
        android:id="@+id/delete_album_btn"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="删除专辑" />

    <EditText
        android:id="@+id/update_album_et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="修改专辑" />

    <Button
        android:id="@+id/update_album_btn"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="修改专辑" />

    <Button
        android:id="@+id/query_album_btn"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="查找专辑" />

MainActivity中进行增删改查操作

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private EditText albumET;
    private Button addAlbumBtn;
    private Button deleteAlbumBtn;
    private Button updateAlbumBtn;
    private Button queryBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//        SQLiteDatabase db = LitePal.getDatabase();

        bindID();
    }

    private void bindID() {

        albumET=findViewById(R.id.album_et);
        addAlbumBtn=findViewById(R.id.add_album_btn);
        deleteAlbumBtn=findViewById(R.id.delete_album_btn);
        updateAlbumBtn=findViewById(R.id.update_album_btn);
        queryBtn=findViewById(R.id.query_album_btn);
        addAlbumBtn.setOnClickListener(this);
        deleteAlbumBtn.setOnClickListener(this);
        updateAlbumBtn.setOnClickListener(this);
        queryBtn.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            //增加
            case R.id.add_album_btn:

                String name=albumET.getText().toString();
                float price=101f;

                Album album=new Album();
                album.setName(name);
                album.setPrice(price);
                album.save();
                Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
                break;

                //删除
            case R.id.delete_album_btn:
                int AL=DataSupport.delete(Album.class, 1);
                Toast.makeText(this, "删除成功", Toast.LENGTH_SHORT).show();
                break;

                //修改
            case R.id.update_album_btn:
                Album albumToUpdate = DataSupport.find(Album.class, 1);
                albumToUpdate.setPrice(99.99f); // raise the price
                albumToUpdate.save();
                Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
                break;

                //查找
            case R.id.query_album_btn:
//                List<Album>albumList=DataSupport.findAll(Album.class);//查询所有数据

                List<Album>albumList=DataSupport.where("name like ?","a%").find(Album.class);
                Toast.makeText(this, "查找成功", Toast.LENGTH_SHORT).show();

                for(Album a:
                        albumList){
                    Log.e("MAIN",a.getName()+"******");
                }
                break;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值