欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ch020 Android SQLite3(第一部分)

程序员文章站 2022-07-15 12:49:57
...

--------------------------------------------AndroidManifest.xml----------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ch20"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="10"

        android:targetSdkVersion="15" />

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".ListViewActivity"

            android:label="@string/title_activity_main" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

--------------------------------------------Layout activity_main.xml-----------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <Button

        android:id="@+id/add_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="添加数据"/>

      <Button

        android:id="@+id/delete_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="删除数据"/>

        <Button

        android:id="@+id/edit_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="修改数据"/>

          <Button

        android:id="@+id/qyery_id"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text="查询数据"/>

          

      <ListView 

          android:id="@+id/show_result"

          android:layout_width="fill_parent"

          android:layout_height="wrap_content">

      </ListView>

</LinearLayout>

--------------------------------------------Layout list_item.xml----------------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal" >

    <TextView

        android:id="@+id/view_id"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="id....." />

    

        <TextView

        android:id="@+id/view_name"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="name....." />

</LinearLayout>

--------------------------------------------数据库工具类 DBHelper.java---------------------------

package com.ch20;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

/**

 * 

 * 项目名称:com.ch20    

 * 类名称:DBHelper    

 * 类描述:数据库操作工具类  

 * 创建人:方勇   

 * 创建时间:2012-12-4 上午8:50:40   

 * Copyright (c) 方勇-版权所有

 */

public class DBHelper {

/* DDL,定义数据结构 */

private DataBaseHelper dbHelper;

/* DML,数据库操作 */

private SQLiteDatabase db;

/* 数据库名 */

private final static String DATABASE_NAME = "a07.db3";

/* 版本号 */

private final static int DATABASE_VERSION = 1;

/* 上下文 */

private Context mcontext;

public DBHelper(Context mcontext) {

super();

this.mcontext = mcontext;

}

/* 静态内部类,针对DDL */

private static class DataBaseHelper extends SQLiteOpenHelper {

public DataBaseHelper(Context context) {

super(context, DATABASE_NAMEnullDATABASE_VERSION);

}

/* 创建表结构 */

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL("create table if not exists stu(id integer primary key,name text)");

db.execSQL("insert into stu values(1,'a1')");

db.execSQL("insert into stu values(2,'a2')");

}

/* 针对数据库升级 */

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}

/* 打开数据库,如果已经打开就使用,否则创建 */

public DBHelper open() {

dbHelper = new DataBaseHelper(mcontext);

db = dbHelper.getWritableDatabase();

return this;

}

/* 关闭数据库 */

public void close() {

db.close();// 先关DML

dbHelper.close();// DDL

}

/* 插入 */

public long insert(String tableName, ContentValues values) {

return 0;

}

/**

 * 

 * 更新

 *  

 * @param tableName   表名

 * @param whereClause 条件

 * @param whereArgs   条件值

 * @param values      更新值

 * @return 更新的条数

 *

 */

public long update(String tableName, String whereClause, String[] whereArgs, ContentValues values) {

return db.update(tableName, values, whereClause, whereArgs);

}

/* 删除 */

public boolean delete(String tableName, String whereClause, String[] whereArgs) {

return db.delete(tableName, whereClause, whereArgs) > 0;

}

/**

 * 

 * 查询,多条记录

 *  

 * @param tableName     表名

 * @param columns       列名

 * @param selection     条件

 * @param selectionArgs 条件值

 * @param groupBy       分组

 * @param having        过滤

 * @param orderBy       排序

 * @param limit         分页(2,3),从第二条记录开始,向下取三条记录

 * @return 动态游标

 *

 */

public Cursor findList(String tableName, String[] columns, String selection, String[] selectionArgs, String groupBy,

String having, String orderBy, String limit) {

return db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit);

}

/**

 * 

 * 精确查询,返回一条数据

 *  

 * @param tableName     表名

 * @param columns       列名

 * @param selection     条件

 * @param selectionArgs 条件值

 * @param groupBy       分组

 * @param having        过滤

 * @param orderBy       排序

 * @param limit         分页(2,3),从第二条记录开始,向下取三条记录

 * @return 动态游标

 *

 */

public Cursor findInfo(String tableName, String[] columns, String selection, String[] selectionArgs, String groupBy,

String having, String orderBy, String limit) {

Cursor cursor = db.query(tableName, columns, selection, selectionArgs, groupBy, having, orderBy, limit);

while (cursor.moveToNext()) {

cursor.moveToFirst();

}

return cursor;

}

/* 执行sql方法 */

public void executeSql(String sql) {

db.execSQL(sql);

}

}

--------------------------------------------Activity ListViewActivity.java-------------------------

package com.ch20;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import android.app.Activity;

import android.database.Cursor;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ListView;

import android.widget.SimpleAdapter;

/**

 * 

 * 项目名称:com.ch20    

 * 类名称:ListViewActivity    

 * 类描述: CRUD

 * 创建人:方勇   

 * 创建时间:2012-12-4 上午9:37:39   

 * Copyright (c) 方勇-版权所有

 */

public class ListViewActivity extends Activity implements OnClickListener {

private ListView lisView;

private Button addBtndeleteBtneditBtnqueryBtn;

private SimpleAdapter simpleAdapter;

private DBHelper dbHelper;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViews();

setListeners();

dbHelper = new DBHelper(this);

init();

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.add_id:

break;

case R.id.delete_id:

break;

case R.id.edit_id:

break;

case R.id.qyery_id:

break;

}

}

/* 实例化UI */

private void findViews() {

addBtn = (Button) findViewById(R.id.add_id);

deleteBtn = (Button) findViewById(R.id.delete_id);

editBtn = (Button) findViewById(R.id.edit_id);

queryBtn = (Button) findViewById(R.id.qyery_id);

lisView = (ListView) findViewById(R.id.show_result);

}

/* 设置监听 */

private void setListeners() {

addBtn.setOnClickListener(this);

deleteBtn.setOnClickListener(this);

editBtn.setOnClickListener(this);

queryBtn.setOnClickListener(this);

}

/* 初始化数据 */

private void init() {

simpleAdapter = new SimpleAdapter(this, getData(), R.layout.list_itemnew String[] { "id""name" }, new int[] {

R.id.view_id, R.id.view_name });

lisView.setAdapter(simpleAdapter);

}

/* 获取数据库集合数据 */

private List<HashMap<String, Object>> getData() {

dbHelper.open();

Cursor cursor = dbHelper.findList("stu"nullnullnullnullnullnullnull);

List list = cursor2List(cursor);

dbHelper.close();

return list;

}

/* 游标转换为集合 */

private List<HashMap<String, Object>> cursor2List(Cursor cursor) {

List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();

/* 有记录 */

while (cursor.moveToNext()) {

HashMap<String, Object> map = new HashMap<String, Object>();

int id = cursor.getInt(cursor.getColumnIndex("id"));

String name = cursor.getString(cursor.getColumnIndex("name"));

map.put("id", id);

map.put("name", name);

list.add(map);

}

return list;

}

}

--------------------------------------------效果----------------------------------------------------

ch020 Android SQLite3(第一部分)
            
    
    博客分类: FY_Android Android SQLite3SQLite3SQLite嵌入式数据库CRUD 

<!--EndFragment-->
  • ch020 Android SQLite3(第一部分)
            
    
    博客分类: FY_Android Android SQLite3SQLite3SQLite嵌入式数据库CRUD 
  • 大小: 88.9 KB