- public class DatabaseHelper extends SQLiteOpenHelper {
-
- private final static String NAME="sharp.db" ;
- //Factory:代表记录集游标工厂,是专门用来生成记录集游标,记录集游标是对查询结果进行迭代的,后面我们会继续介绍。
- public DatabaseHelper(Context context, String name, CursorFactory factory,
- int version) {
- super(context, name, factory, version);
- // TODO Auto-generated constructor stub
- }
- public DatabaseHelper(Context context){
- super(context, NAME, null, 1 );
- }
-
- /**
- * 用户第一次使用软件时调用,实现数据库的操作crud
- */
- @Override
- public void onCreate(SQLiteDatabase db) {
- // TODO Auto-generated method stub
- Log.i("save" , "create" );
- db.execSQL("create table person(personid integer primary key autoincrement,name varcahr(20),age integer)");
- }
-
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // TODO Auto-generated method stub
- db.execSQL("drop table if exists person" );
- onCreate(db);
- }
- /**
- * 根据版本号进行更新
- * @param db
- * @param mNewVersion
- */
- public void checkVersionCreate(SQLiteDatabase db,int mNewVersion){
- int version = db.getVersion();
- if (version != mNewVersion) {
- db.beginTransaction();
- try {
- if (version == 0 ) {
- onCreate(db);
- }else{
- onUpgrade(db, version,mNewVersion);
- }
- db.setVersion(mNewVersion); //设置为新的版本号
- db.setTransactionSuccessful();
- }
- finally{
- db.endTransaction();
- }
- }
- }
- /**
- * 数据库名不空,获得数据库实例
- * @param mDatabase
- * @param mContext
- * @param mName
- * @param mFactory
- * @return
- */
- public SQLiteDatabase getDatabase(SQLiteDatabase mDatabase,Context mContext,String mName,CursorFactory mFactory){
- if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {
- return mDatabase; // The database is already open for business
- }
- if (mName == null) {
- mDatabase = SQLiteDatabase.create(null);
- } else {
- mDatabase = mContext.openOrCreateDatabase(mName, 0 , mFactory);
- }
- return mDatabase;
- }
- }
DbService:
- public class DbService {
- private DatabaseHelper databaseHelper;
- private Context context;
- public DbService(Context context){
- this .context=context;
- databaseHelper=new DatabaseHelper( this .context);
- }
-
- public void save(Person person){
- SQLiteDatabase db = databaseHelper.getWritableDatabase();
- db.execSQL("insert into person(name, age) values(?,?)" , new Object[]{person.getName(), person.getAge()});
- }
-
- public void update(Person person){
- SQLiteDatabase db = databaseHelper.getWritableDatabase();
- db.execSQL("update person set name=?,age=? where personid=?" ,
- new Object[]{person.getName(), person.getAge(),
- person.getId()});
- }
-
- public Person find(Integer id){
- SQLiteDatabase db = databaseHelper.getReadableDatabase();
- Cursor cursor = db.rawQuery("select personid,name,age from person where personid=?", new String[]{String.valueOf(id)});
- if (cursor.moveToNext()){
- Person person = new Person();
- person.setId(cursor.getInt(cursor.getColumnIndex("personid" )));
- person.setName(cursor.getString(1 ));
- person.setAge(cursor.getInt(2 ));
- return person;
- }
- cursor.close();
- return null ;
- }
-
- public void delete(Integer id){
- SQLiteDatabase db=databaseHelper.getWritableDatabase();
- db.execSQL("delete from person where id=?" , new Object[]{id});
- }
-
- public List<Person> getScrollData( int firstResult, int maxResult){
- List<Person> persons = new ArrayList<Person>();
- SQLiteDatabase db = databaseHelper.getReadableDatabase();
- Cursor cursor = db.rawQuery("select personid,name,age from person limit ?,?" ,
- new String[]{String.valueOf(firstResult),String.valueOf(maxResult)});
- while (cursor.moveToNext()){
- Person person = new Person();
- person.setId(cursor.getInt(cursor.getColumnIndex("personid" )));
- person.setName(cursor.getString(1 ));
- person.setAge(cursor.getInt(2 ));
- persons.add(person);
- }
- cursor.close();
- return persons;
- }
-
- public long getCount(){
- SQLiteDatabase db = databaseHelper.getReadableDatabase();
- Cursor cursor = db.rawQuery("select count(*) from person" , null );
-
- cursor.moveToFirst();
- long count = cursor.getLong( 0 );
- cursor.close();
- return count;
- }
-
- public void close(){
- databaseHelper.close();
- }
- }
Person:
- public class Person {
- private Integer id;
- private String name;
- private Integer age;
- public Person(){}
- public Person(String name,Integer age){
- this .name=name;
- this .age=age;
- }
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this .id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this .name = name;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer age) {
- this .age = age;
- }
- @Override
- public String toString() {
- return "Person [age=" + age + ", id=" + id + ", name=" + name + "]" ;
- }
- }
PersonServiceTest:
- public class PersonServiceTest extends AndroidTestCase{
- public void testSave() throws Throwable{
- DbService personService = new DbService( this .getContext());
-
- Person person = new Person( "Tom" , 21 );
- personService.save(person);
- }
- }
一个activity:
- public class SqlLiteActivity extends Activity {
-
- private final static String TAG= "PersonActivity" ;
- private ListView listView;
- private DbService personService;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super .onCreate(savedInstanceState);
- setContentView(R.layout.main);
- listView = (ListView)findViewById(R.id.personList);
- personService = new DbService( this );
- save(personService);
- List<Person> persons = personService.getScrollData(0 , 3 );
- List<HashMap<String, String>> data = new
- ArrayList<HashMap<String,String>>();
- HashMap<String, String>title = new HashMap<String, String>();
- title.put("personid" , "编号" );
- title.put("name" , "姓名" );
- title.put("age" , "年龄" );
- data.add(title);
- for (Person person : persons){
- HashMap<String, String> map = new HashMap<String, String>();
- map.put("personid" , String.valueOf(person.getId()));
- map.put("name" , person.getName());
- map.put("age" , String.valueOf(person.getAge()));
- data.add(map);
- }
- SimpleAdapter adapter = new SimpleAdapter(SqlLiteActivity. this ,
- data, R.layout.personitem, new String[]{ "personid" , "name" , "age"},
- new int []{R.id.personid, R.id.name, R.id.age});
- listView.setAdapter(adapter);
- }
-
-
- public void save(DbService service){
- for ( int i= 0 ;i< 5 ;i++){
- Person person=new Person();
- person.setName("d" );
- person.setAge(12 );
- service.save(person);
- }
- }
- }
main.xml<?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <ListView
- android:id="@+id/personList"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- ></ListView>
- </LinearLayout>
personitem.xml<?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" >
- <TextView
- android:layout_width="60px"
- android:layout_height="wrap_content"
- android:id="@+id/personid"
- />
-
- <TextView
- android:layout_width="160px"
- android:layout_height="wrap_content"
- android:layout_toRightOf="@id/personid"
- android:layout_alignTop="@id/personid"
- android:gravity="center_horizontal"
- android:id="@+id/name"
- />
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_toRightOf="@id/name"
- android:layout_alignTop="@id/name"
- android:id="@+id/age"
- />
-
- </RelativeLayout>
分享到:
相关推荐
本"android数据库操作demo"主要展示了如何在Android应用中进行SQLite数据库的基本操作,包括增、删、改、查四大功能。下面我们将详细探讨这些知识点。 首先,要创建一个SQLite数据库,我们需要创建一个`...
"android数据库操作封装"主要是为了提高代码的可读性、可维护性和复用性,通过创建自定义的数据访问对象(DAO)层和数据库帮助类来实现。 1. 数据库Helper类: 在Android中,我们通常会创建一个继承自`...
在这个"Android 数据库操作"主题中,我们将深入探讨如何在Android应用中使用SQLite3进行数据库的创建、查询、插入、更新和删除等操作。 首先,让我们了解Android中的SQLite数据库的基本概念。每个Android应用都有一...
本文将深入探讨Android中的SQLite数据库操作以及如何在命令行上操作SQLite。 首先,让我们了解Android如何与SQLite交互。在Android中,我们通常通过SQLiteOpenHelper类来创建、升级和访问数据库。这个类提供了方法...
总结来说,这个"android数据库操作实例"涵盖了Android应用中使用SQLite数据库的基础知识,包括创建数据库、定义表结构、插入、查询、更新和删除数据等操作。通过学习这个实例,开发者可以更好地理解如何在Android...
本Demo——"你想要的Android数据库操作精华(安全、并发、单例等)",旨在深入探讨如何在Android Studio环境下进行高效且安全的数据库操作,包括使用数据库框架、数据库加密、并发控制以及单例模式的应用。...
本示例"android数据库操作Demo"提供了一个基础的教程,涵盖了数据库的基本操作,包括添加数据(增)、删除数据(删)、查询数据(查)和更新数据(改)。我们将深入探讨这些核心概念。 首先,Android使用SQLite作为...
在这个"android 数据库操作demo"中,我们将深入探讨如何在Android环境下使用SQLite进行数据库操作,包括创建数据库、创建表、插入数据、查询数据、更新数据以及删除数据等核心概念。 1. **创建数据库**: 在...
`Cursor`是Android数据库操作中的一个关键接口,它就像一个指针,可以遍历查询结果。常见的`Cursor`方法包括: - `moveToPosition(position)`移动指针到指定的记录。 - `getColumnIndex(columnName)`获取指定列的...
在Android开发中,数据库是应用数据持久化的重要方式。Android提供了SQLite数据库系统...在`DemoDateBase`压缩包中,应该包含了这个框架的实现代码,你可以下载并参考其中的细节,进一步学习和实践Android数据库操作。
在Android开发中,数据库操作是不可或缺的一部分,尤其是在处理大量数据存储和检索时。"android 数据库操作代码生成器(version 0.1)-32位" 是一个专为提高开发效率而设计的工具,它能够自动生成数据库操作的相关代码...
在Android开发中,数据库操作是常见的任务之一,用于存储和检索应用程序的数据。为了简化这一过程,开发者通常会创建一个数据库帮助类(DataBaseHelper)来封装SQLite数据库的操作。在这个场景下,我们有一个名为`...
Android数据库sqlite操作命令指导,同时可以快速调试定位问题点,并获取有用信息。
android sqlite 操作工具包
Android 数据库操作 greendao-2.0.0.jar
本实例代码主要关注如何在Android中进行数据库操作,这涉及到SQLite数据库,它是Android系统内置的关系型数据库管理系统。SQLite轻量级、易于使用且功能强大,非常适合移动设备。 首先,我们需要创建一个SQLite...
在SQLiteDemo1项目中,你将看到这些概念如何实际应用于一个简单的应用程序,让你能够更好地理解和实践Android数据库操作。通过这个项目,你可以加深对Android数据持久化机制的理解,为今后更复杂的数据库应用场景...