5 数据库的另外一种增删改查的方法
来源:互联网 发布:js时间格式化yyyymmdd 编辑:程序博客网 时间:2024/05/13 04:09
实体类
package org.sicn.lee.domain;public class Person {private String name;private String phone;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}
创建数据库
package org.sicn.lee.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MyOpenHelper extends SQLiteOpenHelper {public MyOpenHelper(Context context) {super(context, "sicnlee.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {String sql="create table person(personid integer primary key autoincrement,name varchar(10),phone varchar(20))";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stub}}
dao实现类
package org.sicn.lee.dao;import java.util.ArrayList;import java.util.List;import org.sicn.lee.db.MyOpenHelper;import org.sicn.lee.domain.Person;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class PersonDAO {private MyOpenHelper openHelp;public PersonDAO(Context context) {this.openHelp =new MyOpenHelper(context);}public Person find(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy){Person person=null;SQLiteDatabase db=openHelp.getReadableDatabase();if(db.isOpen()){Cursor cursor=db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);if(cursor.moveToFirst()){person=new Person();String name=cursor.getString(cursor.getColumnIndex("name"));String phone=cursor.getString(cursor.getColumnIndex("phone"));person.setName(name);person.setPhone(phone);}cursor.close();db.close();}else{System.out.println("数据库没有打开");}return person;}public boolean add(String table, String nullColumnHack, ContentValues values){boolean flag=false;SQLiteDatabase db=openHelp.getWritableDatabase();if(db.isOpen()){long insert=db.insert(table, nullColumnHack, values);if(insert>0){flag=true;}db.close();}else{System.out.println("数据库没有打开");}return flag;}public boolean update(String table, ContentValues values, String whereClause, String[] whereArgs){boolean flag=false;SQLiteDatabase db=openHelp.getWritableDatabase();if(db.isOpen()){int update=db.update(table, values, whereClause, whereArgs);if(update>0){flag=true;}db.close();}else{System.out.println("数据库没有打开");}return flag;}public boolean delete(String table, String whereClause, String[] whereArgs){boolean flag=false;SQLiteDatabase db=openHelp.getWritableDatabase();if(db.isOpen()){int del=db.delete(table, whereClause, whereArgs);if(del>0){flag=true;}db.close();}else{System.out.println("数据库没有打开");}return flag;}public List<Person> findAll(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy){List<Person> list=new ArrayList<Person>();SQLiteDatabase db=openHelp.getReadableDatabase();if(db.isOpen()){Cursor cursor=db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);Person person=null;while(cursor.moveToNext()){person=new Person();String name=cursor.getString(cursor.getColumnIndex("name"));String phone=cursor.getString(cursor.getColumnIndex("phone"));person.setName(name);person.setPhone(phone);list.add(person);}cursor.close();db.close();}else{System.out.println("数据库没有打开");}return list;}}
junit测试类
package org.sicn.lee.junit;import java.util.Iterator;import java.util.List;import org.sicn.lee.dao.PersonDAO;import org.sicn.lee.domain.Person;import android.content.ContentValues;import android.test.AndroidTestCase;public class PersonJunit extends AndroidTestCase {public void testInsert(){PersonDAO dao=new PersonDAO(getContext());ContentValues values=new ContentValues();values.put("name","sicnlee2");values.put("phone","123456789");boolean flag=dao.add("person",null,values);System.out.println("添加:"+flag);}public void testFind(){PersonDAO dao=new PersonDAO(getContext());Person person=dao.find("person",null,"name=?",new String[]{"sicnlee1"}, null, null, null);System.out.println("姓名:"+person.getName()+";电话:"+person.getPhone());}public void testUpdate(){PersonDAO dao=new PersonDAO(getContext());ContentValues values=new ContentValues();values.put("name","dudufish");values.put("phone","987654321");boolean flag=dao.update("person", values,"name=?",new String[]{"sicnlee1"});System.out.println("修改:"+flag);}public void testFindAll(){PersonDAO dao=new PersonDAO(getContext());List<Person> list=dao.findAll("person", null, null, null, null, null, null);Iterator<Person> iter=list.iterator();while(iter.hasNext()){Person person=iter.next();System.out.println("姓名:"+person.getName()+";电话号码:"+person.getPhone());}}public void testDelete(){PersonDAO dao=new PersonDAO(getContext());boolean flag=dao.delete("person","name=?",new String[]{"sicnlee2"});System.out.println("删除:"+flag);}}
junit测试框架的配置信息
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.sicn.lee.contentvaluedemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="org.sicn.lee.contentvaluedemo" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="android.test.runner" /> <activity android:name="org.sicn.lee.contentvaluedemo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
0 0
- 5 数据库的另外一种增删改查的方法
- 数据库的增删改查方法
- 安卓中数据库增删改查的方法
- Android——另外一种增删查改的方式(ContentProvider常用)
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删查改
- 数据库的增删查改
- 数据库的增删改查
- 数据库的增删改查
- 数据库的增删改查
- codeforces--2014/1/13--B. Sereja and Stairs
- 程序员的“非程序员”之路
- 黑马程序员-----IO之Properties
- 设计模式8——结构型模式之桥接模式
- On my Kindle I am root
- 5 数据库的另外一种增删改查的方法
- How to control fan speed?special for Thinkpad
- one day
- 用Python和Pygame写游戏-从入门到精通(6)
- 用Python和Pygame写游戏-从入门到精通(7)
- c语言中strchr()字符串处理函数
- linux下利用curses设置终端颜色显示实例
- Code Forces 380 A. Sereja and Prefixes
- 赣南春迟杜鹃花正红-2014年1月江西IDC排行榜与综述