Android建表操作

本文详细介绍了Android中如何使用MySqliteOpenHelper进行SQLite数据库的初始化、创建表、以及增删改查的基本操作。展示了如何在SQliteActivity中实现按钮点击事件对应的不同数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 数据库工具类
public class MySqliteOpenHelper extends SQLiteOpenHelper {
 
    private static SQLiteOpenHelper mInstance;
 
    public static synchronized SQLiteOpenHelper getmInstace(Context context) {
        if (mInstance == null) {
            mInstance = new MySqliteOpenHelper(context, "appointment.db", null, 1);
        }
        return mInstance;
    }
 
 
    private MySqliteOpenHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }
 
    //首次创建数据库时候创建,表的创建和表的初始化
    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建表:persons表  _id  主键  name
         String sql = "create table persons(_id integer primary key autoincrement ,name text)";
         db.execSQL(sql);
 
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
 
 
}
// 增删改查
public class SQliterActivity extends AppCompatActivity implements View.OnClickListener {
 
 
    private static final String TAG = "SQliterActivity";
    private SQLiteOpenHelper helper;
    private Button bt_inset;
    private Button bt_delete;
    private Button bt_update;
    private Button bt_query;
    private Button bt_sq;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqliter);
 
        bt_sq = findViewById(R.id.bt_sq);
        bt_sq.setOnClickListener(this);
 
        bt_query = findViewById(R.id.bt_query);
        bt_query.setOnClickListener(this);
 
        bt_update = findViewById(R.id.bt_update);
        bt_update.setOnClickListener(this);
 
        bt_delete = findViewById(R.id.bt_delete);
        bt_delete.setOnClickListener(this);
 
        bt_inset = findViewById(R.id.bt_inset);
        bt_inset.setOnClickListener(this);
 
 
        //获取数据库的帮助类
        helper = MySqliteOpenHelper.getmInstace(this);
        helper.getReadableDatabase();  //问SQLiteOpenHelper要数据库  判断:数据库是否存在,如果存在就打开,否则就创建
 
 
//        //初始化的数据
//        helper.getWritableDatabase().execSQL("insert into persons(name) values('图图')");
 
 
    }
 
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_inset:
                //获取可写的数据库
                SQLiteDatabase db = helper.getWritableDatabase();
                //判断数据是否打开
                if (db.isOpen()) {
                    //执行数据库
                    db.execSQL("insert into persons(name) values('小王')");
                    //关闭数据库
                    db.close();
 
                }
 
                break;
            case R.id.bt_query:
                SQLiteDatabase db2 = helper.getReadableDatabase();
                if (db2.isOpen()) {
                    //查询获取游标
                    Cursor cursor = db2.rawQuery("select*from persons", null);
                    while (cursor.moveToNext()) {
                        //获取数据
                        //cursor.getColumnIndex("_id")  获取id在cursor 里面的下标
                        @SuppressLint("Range") int _id = cursor.getInt(cursor.getColumnIndex("_id"));
                        @SuppressLint("Range") String name = cursor.getString(cursor.getColumnIndex("name"));
                        Log.i(TAG, "_id" + _id + "name" + name);
 
                    }
                    cursor.close();    //关闭游标
                    db2.close();
                }
 
 
                break;
 
            case R.id.bt_update:
                //获取可写的数据库
                SQLiteDatabase db3 = helper.getWritableDatabase();
                //判断数据是否打开
                if (db3.isOpen()) {
                    //执行数据库
                    db3.execSQL("update persons set name = ? where _id = ?",new Object[]{"小红",1});
                    //关闭数据库
                    db3.close();
 
                }
 
                break;
 
            case R.id.bt_delete:
                //获取可写的数据库
                SQLiteDatabase db4= helper.getWritableDatabase();
                //判断数据是否打开
                if (db4.isOpen()) {
                    //执行数据库
                    db4.execSQL("delete from persons where _id =?" ,new Object[]{1});
                    //关闭数据库
                    db4.close();
 
                }
 
                break;
        }
    }
}
private static final String DB_NAME = "user.db";
private static final int DB_VERSION = 1;

String userSql = "CREATE TABLE IF NOT EXISTS "+ TABLE_USER +
        " (" +
        "id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "+
        "name VARCHAR NOT NULL, "+
        "age INTEGER NOT NULL," +
        "avatar VARCHAR NOT NULL," +
        "height INTEGER NOT NULL," +
        "weight INTEGER NOT NULL" +
        ")";
db.execSQL(userSql);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值