数据库基础开源学习教程-android 使用 litepal 操作本地数据库
说明
android手机自带本地数据库 SQLite ,操作本地数据库android给了api
不过这节的重点是讲解如何使用 郭霖(第一行代码) 写的litepal 操作数据库
在使用litepal之前,咱们先看下使用android 自带的api操作数据库
打开本节代码
1.用户可以去百度了...这是Android api操作数据库最基本的规定
public class DataBase extends SQLiteOpenHelper {
private final static String TABLE_NAME = "MyTable";//表格名字
private final static String ID = "id"; //第一个字段
private SQLiteDatabase db = null;
public final static String UserName = "name";//第二个字段
public DataBase(Context context, String DATABASE_NAME, int DATABASE_VERSION) {
super(context,DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "CREATE TABLE " + TABLE_NAME +
" (" +
ID + " INTEGER primary key autoincrement, " +
UserName + " text "+
")";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(sql);
onCreate(db);
}
/**
* insert data
* @param name
* @return
*/
public long insert(String name)
{
db = getWritableDatabase();
/* ContentValues */
ContentValues cv = new ContentValues();
cv.put(UserName, name);
long row = db.insert(TABLE_NAME, null, cv);
db.close();
return row;
}
/**
* delete data
* @param name
* @return
*/
public long delete(String name)
{
db = getWritableDatabase();
String where = UserName + " = ?";
String[] whereValue ={name};
long row = db.delete(TABLE_NAME, where, whereValue);
db.close();
return row;
}
/**
* query data
* @param name
* @return
*/
public Cursor query(String name)
{
db = getWritableDatabase();
Cursor cursor = null;
String str = null;
str = "select "+name +" from "+ TABLE_NAME;
cursor = db.rawQuery(str,null);
return cursor;
}
}
2.上面的程序是生成这样一张表格
3.插入数据
4.删除数据
5.查询数据
使用
接着看litepal
1.把jar包引入自己工程
我使用的是2.0版本
2.建一个java文件,继承 LitePalSupport
public class DataBaseLitepal extends LitePalSupport {
private int id;//ID
private String UserName;//用户名
private String UserPwd;//密码public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
public String getUserPwd() {
return UserPwd;
}
public void setUserPwd(String userPwd) {
UserPwd = userPwd;
}
}
上面的意思是建一张这样的表格
3.在assets文件夹里面建一个litepal.xml文件
如果没有 assets 文件夹,建一个文件夹,assets 是放android资源的文件夹
<mapping class="com.example.myapplication.myapplicationlitepal.DataBaseLitepal"></mapping>
里面的calss需要写全路径.
<?xml version="1.0" encoding="utf-8"?>
<litepal>
<!-- 数据库名 -->
<dbname value="Testlitepal" ></dbname>
<!-- 数据库版本 -->
<version value="1" ></version>
<!--数据库文件路径,把所有的数据库文件放到此处 -->
<list>
<mapping class="com.example.myapplication.myapplicationlitepal.DataBaseLitepal"></mapping>
</list>
</litepal>
4.初始化
1.建一个 MyApplication 继承 Application
在 onCreate 里面写上下面两句
注: Application onCreate 是程序一启动就执行的函数,目的是让litepal第一时间初始化
如果自己有了 Application,只需要添加下面两句即可
/*=================litepal数据库=====================*/
LitePal.initialize(this);
//获取到SQLiteDatabase的实例,创建数据库表
SQLiteDatabase db = LitePal.getDatabase();
2.在 AndroidManifest.xml 文件中配置下
5.添加和查询数据
/*添加数据*/
DataBaseLitepal dataBaseLitepal = new DataBaseLitepal();
dataBaseLitepal.setUserName("yang");
dataBaseLitepal.setUserPwd("11223344");
dataBaseLitepal.save();
/*查询数据*/
List<DataBaseLitepal> allSongs = LitePal.where("UserName=?","yang").find(DataBaseLitepal.class);
for (DataBaseLitepal dataBaseLitepal1 :allSongs) {
int id = dataBaseLitepal1.getId();
String UserName = dataBaseLitepal1.getUserName();
String UserPwd = dataBaseLitepal1.getUserPwd();
Log.d("MainActivity",id+" "+ UserName+ " " + UserPwd);
}
6.修改和删除数据
/*修改数据:把用户yang的密码改为1234567890*/
ContentValues values = new ContentValues();
values.put("UserPwd","1234567890");
int updateAllNum = LitePal.updateAll(DataBaseLitepal.class,values,"UserName = ? ","yang");
/*查询数据*/
List<DataBaseLitepal> dataBaseLitepals = LitePal.where("UserName=?","yang").find(DataBaseLitepal.class);
for (DataBaseLitepal dataBaseLitepal1 :dataBaseLitepals) {
int id = dataBaseLitepal1.getId();
String UserName = dataBaseLitepal1.getUserName();
String UserPwd = dataBaseLitepal1.getUserPwd();
Log.d("MainActivity修改后查询",id+" "+ UserName+ " " + UserPwd);
}
/*删除用户名为yang,密码为1234567890的数据 */
int delAllNum = LitePal.deleteAll(DataBaseLitepal.class,"UserName = ? and UserPwd = ? ","yang","1234567890");
7.更新数据库
1.假设后期项目需求增加了手机号
2.在litepal设置一个新版本即可
补充
1.查询所有数据
List<DataBaseLitepal> findData = LitePal.findAll(DataBaseLitepal.class);
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释