实验八:SQLite数据库操作
实验报告
课程名称 |
基于Android平台移动互联网开发 |
实验日期 |
2016年5月6日 |
||||||||||||||||||||||||||||||||
实验项目名称 |
SQLite数据库操作 |
实验地点 |
S3010 |
||||||||||||||||||||||||||||||||
实验类型 |
□验证型 √设计型 □综合型 |
学 时 |
4 |
||||||||||||||||||||||||||||||||
一、实验目的及要求(本实验所涉及并要求掌握的知识点) |
|||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||
二、实验环境(本实验所使用的硬件设备和相关软件) |
|||||||||||||||||||||||||||||||||||
(1)PC机 (2)操作系统:Windows XP (3)软件: Eclipse, JDK1.6,Android SDK,ADT |
|||||||||||||||||||||||||||||||||||
三、实验内容及步骤 |
|||||||||||||||||||||||||||||||||||
(1) 确定数据库的数据结构。 (2) 新建工程,修改布局文件,定义字符串资源。 (3) 开发布局文件activity_main.xml用于显示联系人列表。 (4) layout目录下新建一个detail.xml,用于显示联系人详细信息。 (5) 开发数据库辅助类MyOpenHelper类 (6) DetailActivity端开发实现数据库增加、删除、修改记录等操作 (7) 新建Activity名为DetailActivity.java,实现联系人详细信息显示功能。 |
|||||||||||||||||||||||||||||||||||
四、实验结果(本实验源程序清单及运行结果或实验结论、实验设计图) |
|||||||||||||||||||||||||||||||||||
代码: MyOpenHelper public class MyOpenHelper extends SQLiteOpenHelper{ public static final String CREAT_CONTACTS="create table contactTable(id integer primary key autoincrement,name,email,comp,post,addr,phone,mobile)"; // +"id integer primary key autoincrement," // +"name,pwd"); private Context mycContext;public MyOpenHelper(Context context, String name, CursorFactory factory,int version) {super(context, name, factory, version);// TODO Auto-generated constructor stubmycContext=context;}@Overridepublic void onCreate(SQLiteDatabase arg0) {// TODO Auto-generated method stub arg0.execSQL(CREAT_CONTACTS);Toast.makeText(mycContext, "数据库创建成功", Toast.LENGTH_LONG).show();}@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {// TODO Auto-generated method stub }public Cursor query(String string, String[] args) {// TODO Auto-generated method stubSQLiteDatabase db=this.getReadableDatabase();Cursor cursor=db.rawQuery(string, args);return cursor;}} DetailActivity public class DetailActivity extends Activity {MyOpenHelper dbhelper;EditText editname;EditText editemail;EditText editcomp;EditText editpost;EditText editaddr;EditText editphone;Bundle bundle;EditText editmobile;ImageButton imbutsave;private String selectname;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.detail);editname=(EditText)findViewById(R.id.editname);editemail=(EditText)findViewById(R.id.editemail);editcomp=(EditText)findViewById(R.id.editcomp);editpost=(EditText)findViewById(R.id.editpost);editaddr=(EditText)findViewById(R.id.editaddr);editphone=(EditText)findViewById(R.id.editphone);editmobile=(EditText)findViewById(R.id.editmobile);imbutsave=(ImageButton)findViewById(R.id.imageButtonsave);bundle=getIntent().getExtras();dbhelper=new MyOpenHelper(DetailActivity.this, "mycontacts.db",null,1);final SQLiteDatabase db=dbhelper.getReadableDatabase();if(!bundle.getString("name").equals("")){selectname=bundle.getString("name");Cursor cursor = db.rawQuery("select * from contactTable where name=?",new String[]{selectname});cursor.moveToFirst();editname.setText(cursor.getString(cursor.getColumnIndex("name")));editemail.setText(cursor.getString(cursor.getColumnIndex("email")));editcomp.setText(cursor.getString(cursor.getColumnIndex("comp")));editpost.setText(cursor.getString(cursor.getColumnIndex("post")));editaddr.setText(cursor.getString(cursor.getColumnIndex("addr")));editphone.setText(cursor.getString(cursor.getColumnIndex("phone")));editmobile.setText(cursor.getString(cursor.getColumnIndex("mobile")));}registerForContextMenu(editname);imbutsave.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubdbhelper=new MyOpenHelper(DetailActivity.this, "mycontacts.db",null,1);SQLiteDatabase db=dbhelper.getReadableDatabase();ContentValues values = new ContentValues();String nameString=editname.getText().toString();String emailString=editemail.getText().toString();String compString=editcomp.getText().toString();String postString=editpost.getText().toString();String addrString=editaddr.getText().toString();String phoneString=editphone.getText().toString();String mobileString=editmobile.getText().toString();if (!nameString.equals("")){Cursor cursor=db.rawQuery("select * from contactTable where name=?", new String[]{nameString});cursor.moveToFirst();values.put("name",nameString);values.put("email", emailString);values.put("comp", compString);values.put("post", postString);values.put("addr", addrString);values.put("phone", phoneString);values.put("mobile", mobileString); if (cursor.getCount()<=0) {db.insert("contactTable", null, values);values.clear();Toast.makeText(DetailActivity.this, "联系人"+nameString+"成功保存",Toast.LENGTH_LONG).show();db.delete("contactTable", "name=?", new String[]{selectname});Intent it=new Intent();it.setClass(DetailActivity.this, MainActivity.class);startActivity(it);finish();}else if (cursor.getCount()==1 && cursor.getString(cursor.getColumnIndex("name")).equals(selectname)) {db.update("contactTable", values, "name=?", new String[]{selectname});values.clear();Toast.makeText(DetailActivity.this, "联系人"+nameString+"成功更新",Toast.LENGTH_LONG).show();Intent it=new Intent();it.setClass(DetailActivity.this, MainActivity.class);startActivity(it);finish();}else {Toast.makeText(DetailActivity.this, "姓名已存在",Toast.LENGTH_LONG).show();}}else {Toast.makeText(DetailActivity.this, "姓名不能为空",Toast.LENGTH_LONG).show();} } });} } main public class MainActivity extends Activity {final int rowcount=0;ListView lv;ImageButton ibutadd;SQLiteDatabase db;MyOpenHelper dbHelper;String[] name=new String[50];@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ibutadd=(ImageButton)findViewById(R.id.imageButton1);lv=(ListView)findViewById(R.id.listView1);dbHelper = new MyOpenHelper(MainActivity.this, "mycontacts.db",null, 1);final SQLiteDatabase db = dbHelper.getReadableDatabase();Cursor cursor = db.rawQuery("select name from contactTable", null);ibutadd.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent it=new Intent();Bundle bundle=new Bundle();bundle.putString("name", "");it.putExtras(bundle);it.setClass(MainActivity.this, DetailActivity.class);startActivity(it);}});final ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();/*在数组中存放数据*/cursor.moveToFirst();for(int i=0;i<cursor.getCount();i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("name",cursor.getString(cursor.getColumnIndex("name"))); name[i]=cursor.getString(cursor.getColumnIndex("name"));listItem.add(map); if(i==cursor.getCount()){break;}cursor.moveToNext();} SimpleAdapter mSimpleAdapter = new SimpleAdapter(this,listItem,//需要绑定的数据 R.layout.line,//每一行的布局//动态数组中的数据源的键对应到定义布局的View中new String[] {"name"}, new int[] {R.id.tv1});lv.setAdapter(mSimpleAdapter);//为ListView绑定适配器lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubIntent it=new Intent(MainActivity.this, DetailActivity.class);Bundle bundle=new Bundle();bundle.putString("name", name[arg2]);it.putExtras(bundle);startActivity(it);}});} @Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;}}
|
转载于:https://www.cnblogs.com/baoan/p/5487971.html
实验八:SQLite数据库操作相关推荐
- 实验8 SQLite数据库操作
实验报告 课程名称 基于Android平台移动互联网开发 实验日期 2016/5/6 实验项目名称 SQLite数据库操作 实验地点 综合实验室 实验类型 □验证型 √设计型 □综合型 学 ...
- C# SQLite 数据库操作语句与文件视图管理器
//sqlite数据库视图管理器 SQLiteSpy是一款专业的SQLite数据库管理,主要用于读取sqlite数据库,建立新的SQL查询,视图,复制和删除表.编辑单元格,以及查看索引,触发器和排序规 ...
- SQLite数据库操作实践
SQLite数据库操作实践 SQLite存储类型 null - 空值 integer - 有符号整数,自增列定义 id integer primary key autoincrement ...
- 数据存储之 SQLite 数据库操作(三)
上一讲中我们讲到了SQLite数据库的操作方法 [数据存储之SQLite数据库操作(二)],我们主要是以SQL语句对数据库进行增删改查,这一讲我们来学习一下 Android 建议的对数据库的操作方法 ...
- 数据存储之 SQLite 数据库操作(二)
上一讲我们讲解了SQLite数据库的创建[数据存储之 SQLite 数据库操作(一)],还有更新的操作,这一讲我们来讲解一下数据库的增删改查,这边的程序是对上一个程序进行修改,建议结合上一讲内容进行学 ...
- Qt下Sqlite数据库操作
Sqlite数据库作为Qt项目开发中经常使用的一个轻量级的数据库,可以说是兼容性相对比较好的数据库之一(Sqlite就像Qt的亲儿子,如同微软兼容Access数据库一样).关于Sqlite和Qt的千丝 ...
- java sqlite 操作_Java SQLite 数据库操作
Java SQLite 数据库操作 1.[代码][Java]代码 package UI; import java.sql.Connection; import java.sql.DriverManag ...
- Android sqlite数据库操作通用框架AHibernate(一)-CRUD示例和使用步骤
AHibernate简介 一句话描述,使用AHibernate框架进行sqlite数据库操作您将从重复性劳动中解脱出来. (一)支持功能: 1.自动建表,支持属性来自继承类:可根据注解自动完成建表,并 ...
- SQLite数据库操作+事务处理
SQLite数据库操作 SQLite数据库介绍 Android系统中集成的轻量级的数据库 特点: 轻量级 是以单个文件的形式进行存取 跨平台 支持多个操作系统 零配置 无需安装, 直接使用 嵌入式 内 ...
- C# SQLite 数据库操作实例2
运行环境:Window7 64bit,.NetFramework4.61,C# 7.0 参考: SQLite 官网 SQL As Understood By SQLite System.Data.SQ ...
最新文章
- python输出一个数的每一位_Python练习实例88 | 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。...
- 动态嵌套游标解决方案
- try catch finally语句详解
- nlp-tutorial代码注释1-2,词向量、Word2Vec、Skip-gram简述
- 机器学习的行业与场景总结
- 财富杂志推荐的75本必读书
- No Sequelize instance passed
- INSERT IGNORE INTO 与 INSERT INTO
- 阅读笔记:利用Python进行数据分析第2版——第8章 数据规整:聚合、合并和重塑
- vue H5移动端项目 真机测试配置
- Java生成“年月日“+流水号
- 名帖301 刘墉 行书《自作诗卷》
- PS学习-锐化和修饰照片(一)--高反差锐化并提升立体感
- Ubuntu 硬盘”分区“图文教程
- pythontuple数据类型_阿博的Python之路-详解Tuple数据类型
- 50个极好的bootstrap模板下载地址
- pandas中DataFrame的.ix不能用怎么办
- JAVA判断上传文件后缀名是否符合规范MultipartFile
- 关于对政务云密码支撑方案及应用方案设计的学习及思考
- 基于SSM的驾校预约管理系统