Sqlite的使用(二)
来源:互联网 发布:一开守望先锋网络就卡 编辑:程序博客网 时间:2024/06/05 08:47
一、创建数据库
新建一个DBOpenHelper类 继承 SQLiteOpenHelper 实现数据库的创建和表的创建。
package com.example.testsqlite;import android.content.Context;import android.database.SQLException;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class DBOpenHelper extends SQLiteOpenHelper{ public DBOpenHelper(Context context) { super(context, "rr.db", null, 1); // TODO Auto-generated constructor stub } //初次创建 @Override public void onCreate(SQLiteDatabase db) { try{ // TODO Auto-generated method stub String sql="CREATE TABLE ContactInfo(id integer NOT NULL PRIMARY KEY AUTOINCREMENT, ContactID varchar(20) NULL, NAMEPY varchar(20) NULL, Name nvarchar(20) NOT NULL, Sex INT NULL, Nationality nvarchar(10) NULL)"; db.execSQL(sql); } catch(SQLException e){ Log.e("gj", e.getMessage()); } } //版本更新 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub db.execSQL("DROP TABLE IF EXISTS ContactInfo"); onCreate(db); }}
实现对表的增删查改
public class ContactInfoServise { Context context = null; DBOpenHelper dbOpenHelper = null; private final int State_Initialization = 0; //初始化public ContactInfoServise(Context context) { this.context = context; dbOpenHelper = new DBOpenHelper( context ); // TODO Auto-generated constructor stub}/** * 新建联系人 */public Boolean AddContact(ContactInfoBySqlite coninfo){ try{ SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); String sql="insert intoContactInfo(ContactID,"123",Name,Sex,Nationality)values(?,?,?,?,?)"; Object[] val={coninfo.get_ContactID(),"123",coninfo.get_Name(),coninfo.get_Sex(),coninfo.get_Nationality()}; db.execSQL(sql,val); return true; } catch(Exception ex){ Log.i("sql", "error-->"+"AddContact"+ex.getMessage()); return false; } }/** * 查询联系人(单人) */public List<ContactInfoBySqlite> SelectContactByID(String contactID){ SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); String sql="select distinct * from ContactInfo where ContactID = ? "; String[] param={contactID}; Cursor cursor = db.rawQuery(sql, param); List<ContactInfoBySqlite> list=new ArrayList<ContactInfoBySqlite>(); while( cursor.moveToNext() ){ ContactInfoBySqlite coninfo = new ContactInfoBySqlite(); coninfo.set_id(cursor.getInt(cursor.getColumnIndex("id"))); coninfo.set_NAMEPY(cursor.getString(cursor.getColumnIndex("NAMEPY"))); coninfo.set_ContactID(cursor.getString(cursor.getColumnIndex("ContactID"))); coninfo.set_Name(cursor.getString(cursor.getColumnIndex("Name"))); coninfo.set_Nationality(cursor.getString(cursor.getColumnIndex("Nationality"))); coninfo.set_Sex(cursor.getInt(cursor.getColumnIndex("Sex"))); list.add(coninfo); } cursor.close(); return list;}/** * 删除联系人,直接从数据库删除 */public Boolean DelContactByIDTrue(String id){try{ SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); String sql="delete from ContactInfo where id = ?"; Object[] val={id}; db.execSQL(sql, val); return true; }catch(Exception ex){ Log.i("sql", "error-->"+"UpdataContact"+ex.getMessage()); return false; }}/** * 修改联系人, */public Boolean UpdataContact(ContactInfoBySqlite coninfo){ try{ SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); String sql="update ContactInfo set ContactID = ?, NAMEPY = ?,Name = ?,Sex = ?,Nationality = ? where id = ?"; Object[] val={coninfo.get_ContactID(),"123",coninfo.get_Name(),coninfo.get_Sex(),coninfo.get_Nationality(),coninfo.get_id()}; db.execSQL(sql, val); return true; }catch(Exception ex){ Log.i("sql", "error-->"+"UpdataContact"+ex.getMessage()); return false; }}}
测试
package com.example.testsqlite;import java.util.ArrayList;import java.util.List;import android.test.AndroidTestCase;import android.util.Log;public class ContactServiceTest extends AndroidTestCase { private static final String TAG = " ContactServiceTest"; public void testInsert() { ContactInfoServise pService = new ContactInfoServise(mContext); ContactInfoBySqlite contacts=new ContactInfoBySqlite(); contacts.set_ContactID("22"); contacts.set_Address("43"); contacts.set_Mobile("12434535"); contacts.set_Name("323"); contacts.set_Birthday("1996-05-3"); pService.AddContact( contacts); } public void testFind() { List<ContactInfoBySqlite> info=new ArrayList<ContactInfoBySqlite>(); ContactInfoServise pService = new ContactInfoServise(getContext()); ContactInfoBySqlite contacts=new ContactInfoBySqlite(); info= pService.SelectContactByID("22"); Log.i("gj","_id="+info.get(0).get_ContactID()+" name="+info.get(0).get_Name()); } }
注意:测试的时候要在AndroidManifest.xml中加权限
<uses-library android:name="android.test.runner"/>
写在aplication标签内。
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.testsqlite" android:label="aaa" />
写在<manifest></manifest>内
0 0
- Sqlite的使用(二)
- sqlite的使用二
- android中sqlite的使用(二)
- 【移动GIS】sqlite的使用(二)
- 安卓中SQLite的最简单使用(二)
- Android SQLite 的介绍和使用(二)
- 学习Android SQLite 的介绍和使用(二)
- Android中SQLite的基本使用(二)
- sqlite使用总结(二)使用
- Android开发之Sqlite的使用(二)
- 源码二:SimpleAdapterimple与Sqlite的使用
- Android SQLite的查询优化(二)
- 二、SQLite的下载
- SQLite 的使用(一)
- (Android学习笔记二)AChartEngine的使用以及在sqlite中存取DATETIME!
- android SQLite数据库使用总结之(二)创建自己的数据库
- (Android学习笔记二)AChartEngine的使用以及在sqlite中存取DATETIME!
- unity sqlite数据库(二)——具体使用,坑爹的路径
- spring 很详细的事务管理
- 在阿里云centOs上部署项目环境<三>
- 如何教计算机认识手写数字(下)
- 线程间的状态转换
- AttributeError: 'module' object has no attribute 'VideoWriter_fourcc'
- Sqlite的使用(二)
- Android之MediaPlayer播放网络视频的实现方法
- Homebrew指令集
- Spring - bean配置-FactoryBean
- 判断当前ViewPager中Fragment是否可见
- HDU - 1166 A - 敌兵布阵 线段树单点更新模板
- VS2015中Qt5.7和OpenCV2.4.10配合打开图片和视频
- iOS 自定义button
- php/mysql 工作总结