使用LitePal操作数据库(实现对数据的增、删、改、查)
2018-04-02 22:28
417 查看
一、LitePal是什么?
LitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发最常用的一些数据库功能进行了封装,使得不写一行SQL语句就可以完成各种建表和增、删、改、查的操作。LitePal的项目主页:点击此处二、配置LitePal
1.使用LitePal第一步,就是编辑app/build.gradle文件,在dependencies包中添加如下内容:compile 'org.litepal.android:core:1.6.1'
注意:最后的1.6.1是版本号的意思,最新的版本号到LitePal的项目主页上查看。
2.在app下新建assets文件夹,在此文件夹下新建 litepal.xml,接着编辑 litepal.xml,内容如下:<?xml version="1.0" encoding="utf-8"?> <litepal> //创建数据库 <dbname value="Music"></dbname> //版本号 <version value="1"></version> <!--定义您的模型和映射标签列表中,LitePal 为每个映射类创建表。支持字段 中定义的模型将被映射到列。--> <list> </list> </litepal>
dbname配置项目的数据库名称。
版本配置数据库的版本。每次你想升级数据库,加值。
列表配置映射类。
存储配置数据库文件应保存在这里。内部和外部是唯一有效的选项。
3.在Manifest中注册name标签:
如果已经有name标签则可以省略这一步
<application //在Manifest中注册name标签 android:name="org.litepal.LitePalApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
接下来就可以创建数据库了
在mian.java中做以下修改:
public class MainActivity extends Application { @Override public void onCreate() { super.onCreate(); LitePal.initialize(this); } ... }
4.接下来创建数据:
首先定义模型。例如有一个模型专辑。下面的模型可以被定义为:
public class Album extends DataSupport { @Column(unique = true, defaultValue = "unknown") private String name; private float price; 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; } }
然后将这些模型添加到映射在litepal.xml列表:
<mapping class="com.test.project.litepaltest.Album"></mapping>
下次将生成的表操作数据库。例如,获得SQLiteDatabase以下代码:
修改mian.java代码:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); SQLiteDatabase db=LitePal.getDatabase(); }
5.表创建好,接下来,就可实现数据的增、删、改、查:
布置mian.xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.test.project.litepaltest.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/insert_et" android:hint="输入要插入的专辑名" /> <Button android:layout_width="match_parent" android:layout_height="50dp" android:text="insert" android:id="@+id/insert_db_btn" /> <EditText android:layout_width="match_parent" android:layout_height="50dp" android:id="@+id/update_et" android:hint="输入新的专辑名" /> <Button android:layout_width="match_parent" android:layout_height="50dp" android:text="update" android:id="@+id/update_db_btn" /> <Button android:layout_width="match_parent" android:layout_height="50dp" android:text="delete" android:id="@+id/delete_db_btn" /> <Button android:layout_width="match_parent" android:layout_height="50dp" android:text="quary" android:id="@+id/quary_db_btn" /> </LinearLayout>
布置mian.java代码:
使用sava方法保存数据,即插入数据。
每个模型的继承自DataSupport也会更新()和updateAll()方法。可以更新一个指定id。
可以删除单个记录,使用DataSupport delete()方法。
使用Id、或者模糊查询,查询数据。
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button insertBtn; private EditText insertEt; private Button updateBtn; private Button deleteBtn; private Button quaryBtn; private EditText updateEt; private EditText insertSongEt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // SQLiteDatabase db=LitePal.getDatabase(); bindId(); } private void bindId() { insertBtn=findViewById(R.id.insert_db_btn); insertEt=findViewById(R.id.insert_et); updateBtn=findViewById(R.id.update_db_btn); updateEt=findViewById(R.id.update_et); insertSongEt=findViewById(R.id.insert_song_et); deleteBtn=findViewById(R.id.delete_db_btn); quaryBtn=findViewById(R.id.quary_db_btn); insertBtn.setOnClickListener(this); updateBtn.setOnClickListener(this); deleteBtn.setOnClickListener(this); quaryBtn.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.insert_db_btn: //插入专辑名 String albumName=insertEt.getText().toString(); float price=109.6f; Album album=new Album(); album.setName(albumName); album.setPrice(price); album.save(); break; case R.id.update_db_btn: //更新专辑名 String albumName1=updateEt.getText().toString(); Album album1= DataSupport.find(Album.class,3); album1.setName(albumName1); album1.save(); break; case R.id.delete_db_btn: //删除专辑名 int row=DataSupport.delete(Album.class,2); break; case R.id.quary_db_btn: //查找专辑名 // Album album2=DataSupport.find(Album.class,3); //模糊查询 List<Album> albumList= DataSupport.where("name like ? ","B%").find(Album.class); for (Album a:albumList ) { Log.e("onClick: ",a.getName()+"**************"); } break; } } }
相关文章推荐
- 使用PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作
- 使用ADO操作SQL SERVER 通过'OLE DB 访问 ACCESS 数据库 ,实现数据交换
- 使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
- 安卓数据存储-使用LitePal操作数据库
- 使用PL/SQL Developer工具来实现创建表空间、创建数据库、备份数据库、数据导出等操作
- 使用回调函数来实现jdbc操作数据库数据
- 通过代理类实现java连接数据库(使用dao层操作数据)实例分享
- 使用navicat8实现创建数据库和导入数据[图文]
- Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报表
- ASP.NET 2.0 中的数据操作:: 使用 GridView 和DetailView实现的主/从报表
- 使用navicat8通过数据转移实现更新 和 数据库保存实现备份[图文]
- 不使用组件实现多个图片与文本数据同时写入数据库(4)
- 使用JDBC的CachedRowSet实现将数据源中的数据读取到内存中进行离线操作
- 使用PLSQL Developer来实现不同数据库的表结构以及表数据同步
- 使用TransactionScope实现单数据库连接事务操作
- JAVA操作XML一(读取):使用DOM读取XML数据的两种具体实现
- 如何使用 PDI 和 Oracle CDC 来实现Oracle 数据库向其他数据库的数据同步
- Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报表
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- Spring使用JdbcTemplate操作数据库---使用RowCallbackHander读数据篇