一:1.创建一个包创建数据库类继承sqliteOpenHelper MyDataBaseOpenHelper extends SQLiteOpenHelper
2.重写构造方法,参数是上下文; // 1.创建构造方法,并修改super 里面的参数 //. 参数context:上下文.test.db:表名称 ;null:默认游标,2代表版本 public MyDataBaseOpenHelper(Context context) { super(context, “test.db”, null, 2);
}3.重写两个方法oncreates(); onupgrade(); 重写onCreate()方法,当数据第一次创建的时候调用. //这个方法只执行一次,在这个方法里创建表结构 public void onCreate(SQLiteDatabase db) {//整形,组件,自增长 db.execSQL(“create table student (_id integer primary key” + ” autoincrement,name varchar(20),phone varchar(30))”);
} //当数据库需要更新时调用的方法 ,数据库只能升级不能 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }} 二步:创建一个单独的Dao包创建一个类,对数据实现增删改查
三步:1.在src下:MainActivity.java里创建帮助类对象//创建数据库对象 MyDataBaseOpenHelper helper=new MyDataBaseOpenHelper(this); 2.通过helper 对象调用了一个可读可写的方法,数据库才会被创建:
helper.getWritableDatabase();代码:第一步如下: package com.heima.db;
import android.content.Context; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper;
public class MyDataBaseOpenHelper extends SQLiteOpenHelper {
//1.创建构造方法,并修改super 里面的参数 //.参数context:上下文.test.db:表名称 ;null,2代表版本 public MyDataBaseOpenHelper(Context context) { super(context, "test.db", null, 2); } //重写onCreate()方法,当数据第一次创建的时候调用. //这个方法只执行一次,在这个方法里创建表结构 public void onCreate(SQLiteDatabase db) {//整形,组件,自增长 db.execSQL("create table student (_id integer primary key" + " autoincrement,name varchar(20),phone varchar(30))"); } //当数据库需要更新时调用的方法 ,数据库只能升级不能 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }代码第二步: package com.heima.dao;
import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;
import com.heima.db.MyDataBaseOpenHelper;
public class StudentDao { private MyDataBaseOpenHelper helper; //生成一个有参的构造函数 ,要求必须传入上下文 public StudentDao(Context context) { helper=new MyDataBaseOpenHelper(context); } //添加一个学生,姓名:name.性别sex,male female; public void add(String name, String sex){ //得到一个可写的方法 SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL(“inert into student(name,sex) values(?,?)”, new Object[]{name,sex}); db.close();//关闭资源
} //删除一个学生 public void delete(String name){ //得到一个可写的方法 SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL(“delete from student where name=?”, new Object[]{name}); db.close();//关闭资源
} //修改学生的性别 姓名name; newsex
public void update(String name, String newsex){ //得到一个可写的方法 SQLiteDatabase db = helper.getWritableDatabase(); db.execSQL(“update student set sex=?where name=?”, new Object[]{name}); db.close();//关闭资源
} //查询学生的性别 name public String find(String name){ String sex=null; SQLiteDatabase db = helper.getReadableDatabase(); //返回一个结果集 Cursor cursor=db.rawQuery(“select sex from student where name=?”, new String[]{name}); //游标向下移动 boolean result = cursor.moveToNext(); if(result){ sex=cursor.getString(0); } cursor.close(); db.close(); return sex; } }
=========================================================================
代码第三步 :如下 package com.heima.db;
import android.os.Bundle; import android.app.Activity; import android.view.Menu;
public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //创建数据库对象 MyDataBaseOpenHelper helper=new MyDataBaseOpenHelper(this); //这一行代码执行了数据库才会被创建 通过helper得到一个可读或可写的方法,数据库才会被创建 helper.getWritableDatabase(); }}