一: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();
}
}