Android Studio创建sqlite数据库及SQL语句的执行

Android中数据库的创建
• 数据库类:SQLite Database
• 数据库帮助类:SQLiteOpenHelper
方法一
• db = SQLiteDatabase.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null)

方法二
• db = getContext().openOrCreateDatabase (DATABASE NAME, Context.MODE PRIVATE, null)
方法三
• db = SQLiteOpenHelper.getWritableDatabase()
• db = SQLiteOpenHelper.getReableDatabase()

执行SQL语句,这里是直接执行
• String sq| = "insert into tableName values (" 小华", "111");";
• db.execSQL(sql);

Android中封装好的SQL语句执行方法
•增加一条数据 db.insert(TABLE_ NAME, null, values);
•删除一条数据 db.delete(TABLE_ NAME, selection, selectionArgs)
•修改一条数据 db.update(TABLE_ NAME,values, selection,selectionArgs);
•查询一条数据 db.query(
        TABLE_NAME,         // The table to query
        projection,        //The array of columns to return (pass null to get all)
        selection,        // The columns for the WHERE clause
        selectionArgs,        // The values for the WHERE clause
        null,                // don't group the rows
        null,                // don't filter by row groups
        sortOrder       // The sort order

        );

下面是我写的创建数据库及简单的增删改查。

public class MySQLiteOpenHelper extends SQLiteOpenHelper {

    private static final String DB_NAME="mySQLite.db";//数据库名字
    private static final String TABLE_NAME_STUDENT="student";//表的名字
    //创建表
    private static final String CREATE_TABLE_SQL="create table "+TABLE_NAME_STUDENT +"(id integer primary key autoincrement,name text,number text,gender text,score text )";
    
    public MySQLiteOpenHelper(Context context){
        super(context,DB_NAME,null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {  //onCreate是创建数据库方法
        db.execSQL(CREATE_TABLE_SQL);
    }
    
    //这个方法是数据库升级的时候使用到的,因为我没有用到,所以就没有写
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }
    //添加数据
    public  long insertData(Student student){
        SQLiteDatabase db = getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name",student.getName());
        values.put("number",student.getNumber());
        values.put("gender",student.getGender());
        values.put("score",student.getScore());
        return  db.insert(TABLE_NAME_STUDENT,null,values);
    }
    //根据学号删除信息 防止有重名的同学
    public int deleteFromDbByNumber(String number){
        SQLiteDatabase db=getWritableDatabase();
        //返回的是删除的条数
        return db.delete(TABLE_NAME_STUDENT,"number like ?",new String[] {number});
    }
    //修改数据
    public int updateData(Student student){
        SQLiteDatabase db=getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put("name",student.getName());
        values.put("number",student.getNumber());
        values.put("gender",student.getGender());
        values.put("score",student.getScore());
        //依旧是根据学号改
        return db.update(TABLE_NAME_STUDENT,values,"number like ?",new String[] {student.getNumber()});
    }
    //查询数据
    public List<Student> queryFromByNumber(String number){
        SQLiteDatabase db=getWritableDatabase();
        List<Student> studentList=new ArrayList<>();
        Cursor cursor=db.query(TABLE_NAME_STUDENT,null,"number like ?",new String[] {number},null,null,null);
        if(cursor!=null){
            while (cursor.moveToNext()){
                int name1=cursor.getColumnIndex("name");
                String name= cursor.getString(name1);
                int number1=cursor.getColumnIndex("number");
                String number2= cursor.getString(number1);
                int gender1=cursor.getColumnIndex("gender");
                String gender= cursor.getString(gender1);
                int score1=cursor.getColumnIndex("score");
                String score= cursor.getString(score1);

                Student student=new Student();
                student.setName(name);
                student.setNumber(number2);
                student.setGender(gender);
                student.setScore(score);

                studentList.add(student);
            }
            cursor.close();
        }
        return studentList;
    }
}

 

 

  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android Studio创建SQLite数据库可以按照以下步骤进行操作: 1. 首先,在Android Studio创建一个新的Android项目。 2. 打开项目后,进入`app`目录,然后右键点击`java`文件夹,选择`New` -> `Java Class`,创建一个新的Java类。 3. 在新创建的Java类中,继承`SQLiteOpenHelper`类,并实现其构造方法和两个重要的回调方法`onCreate()`和`onUpgrade()`。 ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "mydatabase.db"; private static final int DATABASE_VERSION = 1; public MyDatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建数据库表 String createTableQuery = "CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)"; db.execSQL(createTableQuery); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 数据库升级时的操作,例如删除旧表并创建新表 String dropTableQuery = "DROP TABLE IF EXISTS mytable"; db.execSQL(dropTableQuery); onCreate(db); } } ``` 4. 在需要使用数据库的地方,创建一个`MyDatabaseHelper`对象,并调用`getWritableDatabase()`或`getReadableDatabase()`方法来获取可写或可读的数据库实例。 ```java MyDatabaseHelper dbHelper = new MyDatabaseHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); // 获取可写的数据库实例 // 或者 SQLiteDatabase db = dbHelper.getReadableDatabase(); // 获取可读的数据库实例 ``` 5. 现在你可以使用`db`对象执行SQL语句来操作数据库了,例如插入、查询、更新和删除数据。 ```java // 插入数据 ContentValues values = new ContentValues(); values.put("name", "John"); db.insert("mytable", null, values); // 查询数据 Cursor cursor = db.query("mytable", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String name = cursor.getString(cursor.getColumnIndex("name")); // 处理查询结果 } // 更新数据 ContentValues updateValues = new ContentValues(); updateValues.put("name", "Jane"); db.update("mytable", updateValues, "id=?", new String[]{"1"}); // 删除数据 db.delete("mytable", "id=?", new String[]{"1"}); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿喵酱ovo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值