实验11SQLite数据库的使用一、实验目的1.掌握创建SQLite数据库的方法;2.掌握实现对SQLite数据增删改查的方法;3.学会使用adb调试工具查瞧数据库与数据表;二、知识要点1.创建SQLite数据库的方法:①定义一个帮助类MyHelper继承SQLiteOpentHelper类;②在MyHelper类中定义构造方法,重写onCreate()与onUpgrade()方法;③在onCreate(SQLiteDatabasedb)方法中,通过参数db调用execSQL(String sql)方法执行建表SQL语句;④创建一个MyHelper类对象helper,调用构造方法对其进行初始化,然后由helper对象调用getWritableDatabase()方法或getReadableDatabase()创建数据库。
2.实现SQLite数据增删改查的方法:(1)添加数据:①获取一个SQLiteDatabase对象db;②通过db对象调用以下任一方法实现数据添加:a)execSQL(String sql)方法执行insert SQL语句;如:db、execSQL(“insert into table_name(column_list) values(value_list)”);b)调用insert(表名,null,添加的数据values)方法:首先,定义一个ContentValues对象values,通过values对象调用put()方法将要添加的数据存入values对象,然后再通过db对象调用insert()方法,将values中的数据添加到指定的数据表中。
(2)更新数据:①获取一个SQLiteDatabase对象db;②通过db对象调用以下任一方法实现数据添加:a)execSQL(String sql)方法执行update SQL语句;如:db、execSQL(“update table_name set column=value,… where condition”);b)调用update(String table, ContentValuesvalues,StringwhereClause,String[] whereArgs)方法:首先,定义一个ContentValues对象values,通过values对象调用put()方法将要更新的数据存入values对象,然后再通过db对象调用update()方法,指定要修改数据的表名,更新的数据values,约束更新某一行火某几行中的数据。
(3)删除数据:①获取一个SQLiteDatabase对象db;②通过db对象调用以下任一方法实现数据添加:a)execSQL(String sql)方法执行delete SQL语句;如:db、execSQL(“delete from table_name where condition”);b)调用delete(String table, String whereClause,String[] whereArgs)方法,指定要删除数据的表名称,以及约束删除某一行或某几行中的数据。
(4)查询数据:①获取一个SQLiteDatabase对象db;②通过db对象调用query()方法,指定要查询的表名、列名、以及where约束条件等,并将查询结果存入一个Cursor对象中。
如:Cursor cursor=db、query(表名,列名,where约束条件,为where中的占位符提供具体的,null,null,null);三、实验内容1.创建一个Android项目,项目名称为“shiyan1101_专业_×××(学生姓名)”,要求:(1)自动创建Activity;(2)使用XML编写界面;(3)界面构成:①4个文本框,分别用来显示提示信息“图书名称”、“图书作者”、“图书价格”、“图书页数”;②4个编辑框,分别用来接收用户输入“图书名称”、“图书作者”、“图书价格”、“图书页数”;③5个按钮,文本显示分别为“创建SQLite数据库”、“添加数据”、“修改数据”、“删除数据”、“查询数据”。
(4)程序实现功能:①点击“创建SQLite数据库”按钮,创建一个SQLite数据库BookStore、db,并创建一个数据表Book,通过Toast显示“数据库BookStore、db创建成功!”,要求使用adb查瞧数据库创建就是否成功。
②点击“添加数据”按钮,将用户在编辑框中输入的图书名称、图书作者、图书价格、图书页数等数据写入添加到数据表Book中。
③点击“修改数据”按钮,将数据表Book中指定的数据进行修改,条件根据题目自己设定。
④点击“删除数据”按钮,将数据表Book中指定的数据删除,删除条件根据题目自己设定。
⑤点击“查询数据”按钮,查询数据表Book中指定的数据,将查询结果通过Log显示。
(5)实验报告中要求用语言描述具体的实验步骤,并附以截图做辅助说明。
【具体过程参见课件——第3部分数据存储中的练习2-6。
】Mydatebase,javapublic class Mydatebase extends SQLiteOpenHelper {public static final String cerat= "create table if not exists book( _id integer primary key autoincrement, " +"name text,zuozhe text ,price real,page integer );";public Mydatebase(Context context, String name, CursorFactory factory, int version) {super(context, name, factory, version);// TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubdb、execSQL( cerat);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}创建数据库按钮protected void onCreate(Bundle savedInstanceState) {super、onCreate(savedInstanceState);setContentView(R、layout、activity_main);mydb=new Mydatebase(MainActivity、this, "BookStore、db", null, 1);btcreat=(Button)findViewById(R、id、create);btcreat、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubdb=mydb、getWritableDatabase();//db、execSQL(INSERT_DATA);db、execSQL("insert into book (name,zuozhe,price,page)" +"Values('dnjkc','fdg',35、0,123)");}});添加数据按钮edname=(EditText)findViewById(R、id、ed1);edau=(EditText)findViewById(R、id、ed2);edjiage=(EditText)findViewById(R、id、ed3);edpage=(EditText)findViewById(R、id、ed4);btadd=(Button)findViewById(R、id、add);btadd、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubString sname=edname、getText()、toString();String sau=edau、getText()、toString();Double djiage=Double、parseDouble(edjiage、getText()、toString());int ipage=Integer、parseInt(edpage、getText()、toString());ContentValues values=new ContentValues();values、put("name", sname);values、put("zuozhe",sau);values、put("price", djiage);values、put("page", ipage);SQLiteDatabase db=mydb、getWritableDatabase();db、insert("book", null, values);}});}修改数据按钮btgai=(Button)findViewById(R、id、xiu);btgai、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSQLiteDatabase db=mydb、getWritableDatabase();db、execSQL("update book set name='孙孟也' where name='smy';");}});}删除数据按钮btdelete=(Button)findViewById(R、id、delete);btdelete、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSQLiteDatabase db=mydb、getWritableDatabase();db、execSQL("delete from book where name='孙孟也'");}});查询数据按钮btcha=(Button)findViewById(R、id、select);btcha、setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSQLiteDatabase db=mydb、getWritableDatabase();//查询Book表中所有的数据Cursor cursor=db、query("Book", null, null, null, null, null, null);if(cursor、moveToFirst()){do{//遍历cursor对象,取出数据并打印String name=cursor、getString(cursor、getColumnIndex("name"));String author=cursor、getString(cursor、getColumnIndex("zuozhe"));double price=cursor、getDouble(cursor、getColumnIndex("price"));int pages=cursor、getInt(cursor、getColumnIndex("page"));Log、d("Message","book name is"+name);Log、d("Message","book author is"+author);Log、d("Message","book price is"+price);Log、d("Message","book pages is"+pages);}while(cursor、moveToNext());}cursor、close();}});}。