zoukankan      html  css  js  c++  java
  • android中操作SQLite注意事项

    1. 调用rawQuery()后,需要调用Cursor的movToFirst();
    public Cursor query(String sql, String[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		Cursor cursor = db.rawQuery(sql, args);
    		cursor.moveToFirst();  // 重中之重,千万不能忘了
    		db.close();
    		return cursor;
    	}
    

    2.删除记录时使用 sql ="delete from student where id = ?"

    
    sql ="delete from student where id = ?";
    server.delete(sql, new Object[]{113});
    
    public void delete(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		db.execSQL(sql, args);
    		this.sql = sql;
    		db.close();
    	}
    

    MainActivity.class

    package com.example.db1;
    
    import java.util.Random;
    
    import android.R.string;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    import android.widget.Toast;
    
    public class DbServer extends SQLiteOpenHelper {
    	private final static int DatabaseVersion = 1;
    	private final static String DatabaseName = "abcd.db";
    	public static int cnt = 111;
    	public static String sql = null;
    	
    	public DbServer(Context context) {
    		super(context, DatabaseName, null, DatabaseVersion);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		MainActivity.cnt = 1;
    		this.cnt = 101;
    		// TODO Auto-generated method stub
    		String sql = "CREATE TABLE student (id INT PRIMARY KEY, NAME VARCHAR(10))";
    		db.execSQL(sql);
    		db.close();
    	}
    
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		// TODO Auto-generated method stub
    		  
    	}
    
    	public Cursor query(String sql, String[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		Cursor cursor = db.rawQuery(sql, args);
    		cursor.moveToFirst();  // 重中之重,千万不能忘了
    		db.close();
    		return cursor;
    	}
    	
    	public void insert(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		this.sql = sql;
    		db.execSQL(sql,args);
    		db.close();
    	}
    	
    	public void update(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		this.sql = sql;
    		db.execSQL(sql,args);
    		db.close();
    	}
    	
    	public void delete(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		db.execSQL(sql, args);
    		this.sql = sql;
    		db.close();
    	}
    }
    

    SQLiteOpenHelper的子类

    package com.example.db1;
    
    import java.util.Random;
    
    import android.R.string;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    import android.widget.Toast;
    
    public class DbServer extends SQLiteOpenHelper {
    	private final static int DatabaseVersion = 1;
    	private final static String DatabaseName = "abcd.db";
    	public static int cnt = 111;
    	public static String sql = null;
    	
    	public DbServer(Context context) {
    		super(context, DatabaseName, null, DatabaseVersion);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		MainActivity.cnt = 1;
    		this.cnt = 101;
    		// TODO Auto-generated method stub
    		String sql = "CREATE TABLE student (id INT PRIMARY KEY, NAME VARCHAR(10))";
    		db.execSQL(sql);
    		db.close();
    	}
    
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		// TODO Auto-generated method stub
    		  
    	}
    
    	public Cursor query(String sql, String[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		Cursor cursor = db.rawQuery(sql, args);
    		cursor.moveToFirst();  // 重中之重,千万不能忘了
    		db.close();
    		return cursor;
    	}
    	
    	public void insert(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		this.sql = sql;
    		db.execSQL(sql,args);
    		db.close();
    	}
    	
    	public void update(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		this.sql = sql;
    		db.execSQL(sql,args);
    		db.close();
    	}
    	
    	public void delete(String sql, Object[] args){
    		SQLiteDatabase db = this.getReadableDatabase();
    		db.execSQL(sql, args);
    		this.sql = sql;
    		db.close();
    	}
    }
    
  • 相关阅读:
    Go Example--方法
    Go Example--结构体
    Flutter项目实操---我的界面搭建、开源中国API流程了解、HTTP请求封装、登录处理<二>
    Java精通并发-CAS底层实现与AtomicInteger源码剖析、关于CAS问题描述
    大数据JavaWeb之JDBC基础----快速入门、各个类详解(DriverManager、Connection、Statement)
    Flutter项目实操---开源中国之项目说明、基础框架搭建、基础BottomBar、侧滑菜单<一>
    Kotlin项目实战之手机影音---主界面tab切换、home界面适配、获得首页网络数据
    android高级UI之Canvas综合案例操练
    开启Fluter基础之旅<六>-------自定义View、牛逼动画效果
    Z-score
  • 原文地址:https://www.cnblogs.com/jxgapyw/p/5838039.html
Copyright © 2011-2022 走看看