创建sqlite数据库,并执行增删改查

package visizen.com.sqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Administrator on 2015/11/17 0017.
 *操作sqlite数据库类
 */
public class SqliteDbHelper extends SQLiteOpenHelper {

    /**
     * 构造函数
     * @param context 上下文
     * @param name 数据库的文件名
     * @param factory 游标工厂,一般使用默认工厂,传null即可
     * @param version 数据的版本号
     */
    public SqliteDbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    /**
     *第一次创建数据时会调用此方法,一般用于初始化数据库表结构
     * @param db
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table account(id integer primary key autoincrement,name varchar(20),money varchar(20))");
    }

    /**
     * 构造函数version改变时调用此方法(升级APP版本,数据库表不够,或觉得表结构不合适,想重新调整)
     * @param db 数据库
     * @param oldVersion 老版本
     * @param newVersion 新版本
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
}

  

package visizen.com.sqlite;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2015/11/17 0017.
 */
public class UserDao {

    SqliteDbHelper helper;

    public UserDao(Context context) {
        helper = new SqliteDbHelper(context,"note.db",null,1);
    }

    /**
     * 添加数据
     * @param name 用户名
     * @param money 用户money
     */
    public void add(String name,float money){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("insert into account(name,money) values(?,?)",new Object[]{name,money});
        db.close();
    }

    /**
     * 删除数据
     * @param id 用户ID
     */
    public void delete(int id){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("delete from account where id=?",new Object[]{id});
        db.close();
    }

    /**
     * 更新数据
     * @param id 用户ID
     * @param money 用户money
     */
    public void update(int id,float money){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("update account set money=? where id=?",new Object[]{money,id});
        db.close();
    }

    /**
     * 查询所有数据
     * @return 返回用户List
     */
    public List<User> findAll(){

        List<User> users=new ArrayList<User>();

        SQLiteDatabase db = helper.getReadableDatabase();

        Cursor cursor = db.rawQuery("select * from account", null);

        User user=null;

        while (cursor.moveToNext()){

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

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

            float money=cursor.getFloat(cursor.getColumnIndex("money"));

            user = new User(id,name,money);

            users.add(user);
        }

        db.close();

        return users;
    }
}

  

package visizen.com.sqlite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2015/11/19 0019.
 */
public class UserDao2 {
    
    private SqliteDbHelper helper;

    public UserDao2(Context context) {
        helper = new SqliteDbHelper(context, "note.db", null, 1);
    }

    /**
     * 不回记录
     *
     * @param name  用户名
     * @param money 钱
     * @return 返回true添加成功,返回false,添加失败
     */
    public boolean add(String name, float money) {

        SQLiteDatabase db = helper.getWritableDatabase();

        ContentValues values = new ContentValues();

        values.put("name", "小李");

        values.put("money", 123);

        //the row ID of the newly inserted row, or -1 if an error occurred
        long id = db.insert("user", null, values);

        db.close();

        return id > -1 ? true : false;
    }

    /**
     * 删除
     *
     * @param id 要删除的ID
     * @return 删除成功返回true, 失败返回false
     */
    public boolean delete(String id) {
        SQLiteDatabase db = helper.getWritableDatabase();
        /**
         * @return the number of rows affected if a whereClause is passed in, 0
         *         otherwise. To remove all rows and get a count pass "1" as the
         *         whereClause.
         */
        int number = db.delete("user", "id=?", new String[]{id + ""});

        db.close();

        return number > 0 ? true : false;

    }

    /**
     * 更新
     *
     * @param id
     * @return 更新成功返回true, 失败返回false
     */
    public boolean update(String id) {

        SQLiteDatabase db = helper.getWritableDatabase();

        ContentValues values = new ContentValues();

        values.put("name", "小明");

        values.put("money", "5000");

        //the number of rows affected
        int rows = db.update("user", values, "id=?", new String[]{id});

        db.close();

        return rows > 0 ? true : false;
    }

    /**
     * 查询所有的数据
     * @return
     */
    public List<User> findAll(){

        SQLiteDatabase db = helper.getWritableDatabase();

        Cursor cursor = db.query("user", new String[]{"id", "name", "money"}, null, null, null, null, null);

        List<User> users=new ArrayList<User>();

        User user=null;

        while (cursor.moveToNext()){

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

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

            float money=cursor.getFloat(cursor.getColumnIndex("money"));

            user = new User(id,name,money);

            users.add(user);
        }
        db.close();
        return  users;
    }
}

  注意操作数据库最好用UserDao2

posted on 2015-11-17 15:29  jayhtt  阅读(100)  评论(0)    收藏  举报