使用SqLite和LitePal操作数据库

使用SqLite操作数据库
第一步:新建一个类继承SQLiteOpenHelper


public class MyDatabase extends SQLiteOpenHelper {


    public MyDatabase(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    //创建SQL语句
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table meno(id integer primary key autoincrement,name varchar(20),age varchar(6))");
    }

    //升级数据的方法
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //这里添加了电话的列,记得把数据库的版本加1
        db.execSQL("alter table meno add phone varchar(20)");
    }
}

MainActivity代码

//实例化数据库
MyDatabase myDatabase = new MyDatabase(this,"meno",null,1);

//如果没有数据库,那么就会创建数据库,有数据库就不会再次创建
SQLiteDatabase db = myDatabase.getWritableDatabase();

//数据库添加数据

//ContentValues对数据进行封装
 ContentValues values = new ContentValues();
        values.put("name","兔子");
        values.put("age",16);
        db.insert("meno",null,values);

//数据库更新数据

 ContentValues values1 = new ContentValues();
        values1.put("name","猫");
        db.update("meno",values1,"name=?",new String[]{"兔子"});

//数据库删除数据

  db.delete("meno","name=?",new String[]{"猫"});

//数据库查询数据

   Cursor cursor = db.query("meno", null, null, null, null, null, null);
        if (cursor!=null&&cursor.getCount()>0) {
            //遍历查询每一行的数据
            while (cursor.moveToNext()) {
                String name = cursor.getString(cursor.getColumnIndex("name"));
                int age = cursor.getInt(cursor.getColumnIndex("age"));
                Toast.makeText(this, name + age, Toast.LENGTH_SHORT).show();
            }
        }    

使用LitePal操作数据库

第一步:配置LitePal

在app/build.gradle文件 在dependencies闭包中添加
由于compile 在Android studio3.2以上将被废弃所以用implementation


dependencies{
	implementation 'org.litepal.android:core:1.3.2'

}

第二步创建assets目录和litepal.xml:

在app/src/main创建一个assets目录 然后在assets目录下新建一个litepal.xml文件

编辑litepal.xml


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

<litepal>

  <dbname value="Meno"></dbname>

  <version value="1"></version>

</litepal>

dbname是数据库名

version是版本号

第三步配置LitePalApplication:

<application>
android:name="org.litepal.LitePalApplication"
</application>

第四步开始使用LitePal创建和升级数据库:

创建一个类

public class Meno{

	private String name;
	
	private int age;

	//生成set和get方法
}

然后再去编辑litepal.xml


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

<litepal>

  <dbname value="Meno"></dbname>

  <version value="1"></version>

  <list>
  <!--要使用完整的类名-->
     <mapping class="com.liny.meno.sql.Meno"/>

  </list>

</litepal>

升级数据库

想要再添加一张表或再添加一个列

public calss Student{

	private String name;

	private int age;
	
	//生成set和get方法

}

再去编辑litepal.xml

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

<litepal>

  <dbname value="Meno"></dbname>

  <version value="2"></version>

  <list>
	 <!--要使用完整的类名-->
     <mapping class="com.liny.meno.sql.Meno"/>

     <mapping class="com.liny.meno.sql.Student"/>

  </list>

</litepal>

将版本号加1

将新的模型类添加到映射模型列表中

Connector.getDatabase();创建数据库的操作

使用LitePal添加数据

使用增删改查必须继承DataSupport


public calss Meno extends DataSupport{

	private String name;

	private int age;
	
	//生成set和get方法

}

添加数据

Meno meno=new Meno();

meno.setName=("哈哈哈");

meno.setAge=(18);

meno.save();//添加数据


更新数据

Meno meno=new Meno();

meno.setAge(20);

meno.setName("哈哈");

meno.updateAll("id=?", 1);``

id等于多少就去修改对应的那一列

删除数据##

DataSupport.deleteAll(Meno.class,"name=?","哈哈哈");

第一个参数是表名

name等于什么名字就把这一列删除

查询数据##

List<Meno> menos=DataSupport.findAll(Meno.class);

for(Meno meno:menos){

	String name=meno.getName();
	
	Int age=meno.getAge();
}

只查询关键字name和age


List<Meno> menos=DataSupport.select("name","age").find(Meno.class)

List<Meno> menos=DataSupport.select("age>?","22").find(Meno.class)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值