《2022年实验SQLite数据库的使用收集 .pdf》由会员分享,可在线阅读,更多相关《2022年实验SQLite数据库的使用收集 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验 11SQLite 数据库的使用一、实验目的1掌握创建 SQLite 数据库的方法;2掌握实现对 SQLite 数据增删改查的方法;3学会使用 adb调试工具查看数据库和数据表;二、知识要点1创建 SQLite数据库的方法:定义一个帮助类MyHelper 继承 SQLiteOpentHelper 类;在 MyHelper 类中定义构造方法,重写onCreate()和 onUpgrade()方法;在 onCreate(SQLiteDatabasedb)方法中,通过参数db调用 execSQL(String sql) 方法执行建表SQL语句;创建一个 MyHelper 类对象 helper,调
2、用构造方法对其进行初始化,然后由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
3、) 方法:首先,定义一个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)调用 updat
4、e(String table, ContentValuesvalues,StringwhereClause,String whereArgs)方法:首先,定义一个ContentValues 对象 values ,通过 values 对象调用 put() 方法将要更新的数据存入values 对象,然后再通过db对象调用 update()方法,指定要修改数据的表名,更新的数据values ,约束更新某一行火某几行中的数据。(3)删除数据:获取一个 SQLiteDatabase 对象 db;通过 db对象调用以下任一方法实现数据添加:a)execSQL(String sql)方法执行 delete
5、SQL 语句;如: db.execSQL(“delete from table_name where condition ”); b)调用 delete(String table, String whereClause,String whereArgs)方法,指定要删除数据的表名称,以及约束删除某一行或某几行中的数据。(4)查询数据:获取一个 SQLiteDatabase 对象 db;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - -
6、- 通过 db对象调用 query() 方法,指定要查询的表名、列名、以及where约束条件等,并将查询结果存入一个 Cursor 对象中。如:Cursor cursor=db.query(表名 , 列名 ,where 约束条件 , 为where中的占位符提供具体的,null,null,null); 三、实验内容1创建一个 Android 项目,项目名称为“ shiyan 1101_专业 _ (学生姓名) ” ,要求:(1)自动创建 Activity ;(2)使用 XML 编写界面;(3)界面构成:4个文本框,分别用来显示提示信息“图书名称”、“图书作者”、“图书价格”、“图书页数”;4个编辑
7、框,分别用来接收用户输入“图书名称”、“图书作者”、“图书价格”、“图书页数”;5个按钮,文本显示分别为“创建SQLite 数据库”、“添加数据”、“修改数据”、“删除数据”、“查询数据”。(4)程序实现功能:点击“创建SQLite 数据库”按钮,创建一个SQLite 数据库 BookStore.db,并创建一个数据表Book,通过 Toast显示“数据库BookStore.db 创建成功!”,要求使用adb查看数据库创建是否成功。点击“添加数据”按钮,将用户在编辑框中输入的图书名称、图书作者、图书价格、图书页数等数据写入添加到数据表Book中。点击“修改数据”按钮,将数据表Book中指定的数
8、据进行修改,条件根据题目自己设定。点击“删除数据”按钮,将数据表Book中指定的数据删除,删除条件根据题目自己设定。点击“查询数据”按钮,查询数据表Book中指定的数据,将查询结果通过Log显示。(5)实验报告中要求用语言描述具体的实验步骤,并附以截图做辅助说明。【具体过程参见课件第3部分数据存储中的练习2-6。】Mydatebase,java publicclassMydatebase extends SQLiteOpenHelper publicstaticfinal String cerat = create table if not exists book( _id integer p
9、rimary key autoincrement, + name text, zuozhe text , price real, page integer ); publicMydatebase(Context context, String name, CursorFactory factory, int version) super (context, name, factory, version); / TODO Auto-generated constructor stub OverridepublicvoidonCreate(SQLiteDatabasedb) / TODO Auto
10、-generated method stubdb.execSQL( cerat ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - OverridepublicvoidonUpgrade(SQLiteDatabasedb, int oldVersion, int newVersion) / TODO Auto-generated method stub 创建数据库按钮protectedvoidonCreate(Bundle s
11、avedInstanceState) super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); mydb=newMydatebase(MainActivity.this, BookStore.db, null, 1); btcreat=(Button)findViewById(R.id.create ); btcreat.setOnClickListener(newOnClickListener() OverridepublicvoidonClick(View v) / TODO Auto-gene
12、rated method stubdb=mydb.getWritableDatabase(); /db.execSQL(INSERT_DATA);db.execSQL( insert into book (name,zuozhe,price,page) + Values(dnjkc,fdg,35.0,123); );名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 添加数据按钮edname=(EditText)findViewBy
13、Id(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(newOnClickListener() OverridepublicvoidonClick(View v) / TODO Auto-generated method stubString sna
14、me=edname.getText().toString(); String sau=edau.getText().toString(); Double djiage=Double.parseDouble( edjiage.getText().toString(); int ipage=Integer.parseInt( edpage.getText().toString(); ContentValues values=newContentValues(); values.put(name , sname); values.put(zuozhe,sau); values.put(price,
15、djiage); values.put(page , ipage); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 8 页 - - - - - - - - - SQLiteDatabasedb=mydb.getWritableDatabase(); db.insert(book , null , values); ); 修改数据按钮名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
16、- - - - 第 5 页,共 8 页 - - - - - - - - - btgai =(Button)findViewById(R.id.xiu ); btgai.setOnClickListener(newOnClickListener() OverridepublicvoidonClick(View v) / TODO Auto-generated method stubSQLiteDatabasedb=mydb.getWritableDatabase(); db.execSQL( update book set name= 孙孟也 where name=smy;); ); 删除数据按
17、钮btdelete=(Button)findViewById(R.id.delete ); btdelete.setOnClickListener(newOnClickListener() OverridepublicvoidonClick(View v) / TODO Auto-generated method stubSQLiteDatabasedb=mydb.getWritableDatabase(); db.execSQL( delete from book where name=孙孟也 ); );名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -
18、 - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页 - - - - - - - - - 查询数据按钮btcha =(Button)findViewById(R.id.select); btcha .setOnClickListener(newOnClickListener() OverridepublicvoidonClick(View v) / TODO Auto-generated method stubSQLiteDatabasedb=mydb.getWritableDatabase(); / 查询Book表中所有的数据 Cursor cursor
19、=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=curs
20、or.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(); ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -