加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite对数据进行增删改查

发布时间:2020-12-12 19:28:35 所属栏目:百科 来源:网络整理
导读:数据库 1. 无数据类型 ( 最好加上数据类型 ) 2. SQLite 可以解析大部分标准的 SQL 语句 3. SELECT last_insert_rowid() 获得自增长后的 id 值 首先建表: public class DBOpenHelpr extends SQLiteOpenHelper { public DBOpenHelpr(Context context) { //3.

数据库

1.无数据类型(最好加上数据类型)

2.SQLite可以解析大部分标准的SQL语句

3.SELECT last_insert_rowid() 获得自增长后的id

首先建表:

public class DBOpenHelpr extends SQLiteOpenHelper {

public DBOpenHelpr(Context context) {//3.游标工厂,Null使用系统默认的游标 2.指定数据库名称 4.版本号
super(context,"itcast.db"1);
}//数据库第一次被创建的时候调用,SQLiteDatabase 封装了数据库的所有操作@Override
public void onCreate(SQLiteDatabase db) {//生成应用时要用的数据库表db.execSQL("CREATE TABLE person(" +
"personid integer primary key autoincrement," "phone varchar(12)""name varchar(20)))");
//数据库文件版本号发生变更时要用onUpgrade(SQLiteDatabase dboldVersonnewVerson) {//向数据库表中增加phone"ALTER TABLE person ADD phone varchar(12) null";}

新建Person类:

Person {private Integer id;String namephone
Integer getId() {return idsetId(Integer id) {this.id = idString getNamenamesetName(String name) {name = namegetPhonephonesetPhone(String phone) {phone = phonePerson(Integer idString nameString phone) {Person() {}

增删改查功能:

PersonService {private DBOpenHelpr dbOpenHelpr
PersonService(Context context) {dbOpenHelpr = new DBOpenHelpr(context)//增加数据public void save(Person person){SQLiteDatabase db = dbOpenHelpr.getWritableDatabase();ContentValues contentValues = new ContentValues();contentValues.put("name","yanxi")"phone""12222"//2.NULL值字段

//共有下列两种方法增加数据db.insert("person",43); font-family:'Courier New'">contentValues);// db.execSQL("insert into person(name,phone) " +// "values(?,?)",new Object[]{person.getName(),person.getPhone()});//在应用中只有一个地方使用数据库可以不用关数据库}
//删除数据
public void delete(Integer id){SQLiteDatabase db = dbOpenHelpr.getWritableDatabase();db.delete("person","personid=?"String[]{id.toString()});
// db.execSQL("delete from person where personid=?",new Object[]{id});
}//修改数据public void update(Person person){SQLiteDatabase db = dbOpenHelpr.getWritableDatabase();ContentValues contentValues = new ContentValues()contentValues.put("name",43); font-family:'Courier New'">person.getName())"phone"person.getPhone())db.update(contentValues"personid=?"String[]{person.getId().toString()})// db.execSQL("update person set name=?,phone=? where personid=?",43); font-family:'Courier New'">// new Object[]{person.getName(),person.getPhone(),person.getId()});}//查询数据public Person find(Integer id){//dbOpenHelpr.getReadableDatabase()默认开始会调用dbOpenHelpr.getWritableDatabase()//但是如果磁盘满了之后,就只会以只读的方式打开。SQLiteDatabase db = dbOpenHelpr.getReadableDatabase();//2.字段列表部分Cursor cursor = db.query("person",43); font-family:'Courier New'; font-weight:bold">"personid=?"String[]{id.toString()});
// Cursor cursor = db.rawQuery("select * from person where personid=?",new String[]{id.toString()});if(cursor.moveToFirst()){int personid = cursor.getInt(cursor.getColumnIndex("personid"))String name = cursor.getString(cursor.getColumnIndex("name"String phone = cursor.getString(cursor.getColumnIndex("phone"return new Person(personid,43); font-family:'Courier New'">namephone)}cursor.close()return null;}//分页数据public List<Person>
getScollData
(int offsetmaxResult){List<Person> list = new ArrayList<>().getReadableDatabase()Cursor cursor = db.query("person""perrson asc"offset+","+maxResult);

//Cursor cursor = db.rawQuery("select * from person order by personid asc limit ?,?",
// new String[]{String.valueOf(offset),String.valueOf(maxResult)});while(cursor.moveToNext()){personid = cursor.getInt(cursor.getColumnIndex("personid"))String name = cursor.getString(cursor.getColumnIndex("name"String phone = cursor.getString(cursor.getColumnIndex("phone"list.add(Person(personidnamephone))}cursor.close()return null;
//获得数据库表的记录数public long getCount(){SQLiteDatabase db = dbOpenHelpr.getReadableDatabase();Cursor cursor =db.query(String[]{"count(*)"}// Cursor cursor = db.rawQuery("select count (*) form person",null);cursor.moveToFirst()long result = cursor.getLong(0)cursor.close()return result}}

测试类:

public class PersonServiceTest extends AndroidTestCase {
private static final String TAG = "PeraonServiceTAG";public void testCreateDB() throws Exception{DBOpenHelpr dbOpenHelpr = new DBOpenHelpr(getContext())//第一次调用该方法,创建数据库,默认目录:<>databasedbOpenHelpr.getWritableDatabase()}
//增加数据测试类@TesttestSavePersonService p = PersonService(this.getContext())Person person = Person("yanxi",255); font-family:'Courier New'">"1777")p.save(person)//删除数据测试类testDeletep.delete(1//修改数据测试类testUpDatePerson person = p.find(person.setName("weimiao"p.update(person)//查找数据测试类testFindLog.i(TAGperson.toString())//分页数据测试类testScollDatap.getScollData(05//数据记录数测试类testCountlong i = p.getCount()String.valueOf(i))}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读