sqlite 数据库的操作

本文介绍了一个简单的SQLite数据库操作实例,包括数据库的创建、基本表结构的定义、数据的增删改查等核心功能实现。通过具体的Java代码示例,展示了如何使用SQLiteOpenHelper类创建数据库并进行版本控制,同时提供了数据库服务类实现对数据的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

********创建***********

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

public class DataBaseOpenHelper extends SQLiteOpenHelper {
 public static final String DATABASE_NAME = "my.db";
 /**
  * @param context 上下文
  * @param name 数据库的名称
  * @param factory 游标工厂 --CursorFactory factory一般情况下是不需要指定的
  * @param version 版本 当我们的版本号更新的时候系统会自动调用onCreate(SQLiteDatabase db)这个方法
  *
  */
 public DataBaseOpenHelper(Context context,int version) {
  super(context, DATABASE_NAME, null, version);
 }
 /**
  * 1. 这个方法用于初始化数据库表,表结构的创建
  */
 @Override
 public void onCreate(SQLiteDatabase db) {
  db.execSQL("CREATE TABLE person (personid integer primary key autoincrement, name varchar(20), age integer)");
  
 }
 /**
  * 当版本号更改的时候会调用这个方法 @Override
  */
 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  db.execSQL("DROP TABLE IF EXISTS person");
        onCreate(db);
 }

}

********操作***********

import java.util.ArrayList;
import java.util.List;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import cn.itcast.domain.Person;
import cn.itcast.sqlite.opendb.DataBaseOpenHelper;

public class DataBaseService {
 private DataBaseOpenHelper opendb;
 private SQLiteDatabase db ;
 public DataBaseService(DataBaseOpenHelper opendb) {
  this.opendb = opendb;
  db = this.opendb.getReadableDatabase();
 }
 public void save(Person person) {
  db.execSQL("insert into person(name,age) values(?,?)",new Object[]{person.getName(),person.getAge()});
 }
 public void delete(Integer id) {
  db.execSQL("delete from person where personid=?",new Object[]{id});
 }
 public void update(Person person) {
  db.execSQL("update person set name=?,age=? where personid=?",new Object[]{person.getName(),person.getAge(),person.getId()});
 }
 public  Cursor getCursor(int firstResult,int maxResult) {
  Cursor cursor = db.rawQuery("select personid as _id,name,age from person limit ?,?",new String[] {firstResult+"",maxResult+""} );
  return cursor;
 }
 public Person getPerson(Integer id) {
  Person person = null;
  Cursor cursor = db.rawQuery("select * from person where personid=?",new String[] {id+""} );
  while(cursor.moveToNext()) {
   person = new Person();
   person.setId(id);
   person.setName(cursor.getString(cursor.getColumnIndex("name")));
   person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
  }
  return person;
 }
 public List<Person> findPersons(int firstResult,int maxResult) {
  List<Person> persons = new ArrayList<Person>();
  Person person = null;
  Cursor cursor = db.rawQuery("select personid as _id,name,age from person limit ?,?",new String[] {firstResult+"",maxResult+""} );
  while(cursor.moveToNext()) {
   person = new Person();
   person.setId(cursor.getInt(cursor.getColumnIndex("personid")));
   person.setName(cursor.getString(cursor.getColumnIndex("name")));
   person.setAge(cursor.getInt(cursor.getColumnIndex("age")));
   persons.add(person);
  }
  
  return persons;
 }
 public long getCount() {
  Cursor cursor = db.rawQuery("select count(*) from person",null);
  cursor.moveToFirst();
  return cursor.getLong(0);
 }
}

package com.JingTing.DBhelperClass; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context) { super(context, "data.db", null, 1); } @Override public void onCreate(SQLiteDatabase db) { String createnotestable="create table datas (_id integer primary key autoincrement,ItemName text,Money float,time datatime)"; db.execSQL(createnotestable); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table datas if exits"); onCreate(db); } public Cursor ExitsData() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select * from datas",null); } public Cursor SumMoney() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select SUM(Money) as SumAll from datas",null); } public Cursor ExitsIncome() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select * from datas where Money>0",null); } public Cursor SumInCome() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select SUM(Money) as SumInCome from datas where Money>0",null); } public Cursor ExitsExpenditure() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select * from datas where Money<0",null); } public Cursor SumExpenditure() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select SUM(Money) as SumExpenditure from datas where Money<0",null); } public Cursor SelectAllItem() { SQLiteDatabase db = getReadableDatabase(); return db.rawQuery("select * from datas order by time desc",null); } public long insertData(String ItemName,int Money,String time) { SQLiteDatabase DB=getWritableDatabase(); ContentValues values=new ContentValues(); values.put("ItemName", ItemName); values.put("Money", Money); values.put("time", time); return DB.insert("datas", null, values); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值