代码如下
package com.example.androidkscj.Util;
import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
import androidx.annotation.Nullable;
import com.example.androidkscj.Bean.User;
import com.example.androidkscj.Dynamic_duo.MusicContract;
public class DatebaseHelper extends SQLiteOpenHelper {
public static final String databaseName = "kcsj1.db";
public static final String TABLE_NAME = "users";
public static final String COL_ADMIN = "admin";
public static final String COL_PASSWORD = "password";
public static final String COL_ID = "id";
public static final String COL_EMAIL = "email";
public static final String COL_PHONE = "phone";
private static final int DATABASE_VERSION = 1;
public DatebaseHelper(@Nullable Context context) {
super(context, "kcsj1.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase MyDatabase){
MyDatabase.execSQL("create Table users(admin TEXT primary key,id TEXT,password TEXT,email TEXT,phone TEXT)");
MyDatabase.execSQL(SQL_CREATE_MUSIC_TABLE);
String SQL_CREATE_MUSIC_TABLE = "CREATE TABLE " + MusicContract.MusicEntry.TABLE_NAME + " ("
+ MusicContract.MusicEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ MusicContract.MusicEntry.COLUMN_TITLE + " TEXT NOT NULL, "
+ MusicContract.MusicEntry.COLUMN_ARTIST + " TEXT NOT NULL, "
+ MusicContract.MusicEntry.COLUMN_ALBUM + " TEXT NOT NULL, "
+ MusicContract.MusicEntry.COLUMN_DURATION + " INTEGER NOT NULL, "
+ MusicContract.MusicEntry.COLUMN_PATH + " TEXT NOT NULL, "
+ MusicContract.MusicEntry.COLUMN_MIME_TYPE + " TEXT NOT NULL, "
+ MusicContract.MusicEntry.COLUMN_SIZE + " INTEGER NOT NULL);";
MyDatabase.execSQL(SQL_CREATE_MUSIC_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase MyDatabase,int i,int i1){
MyDatabase.execSQL("drop Table if exists users");
MyDatabase.execSQL("DROP TABLE IF EXISTS " + MusicContract.MusicEntry.TABLE_NAME);
}
private static final String SQL_CREATE_MUSIC_TABLE =
"CREATE TABLE " + MusicTable.TABLE_NAME + " (" +
MusicTable._ID + " INTEGER PRIMARY KEY," +
MusicTable.TITLE + " TEXT," +
MusicTable.ARTIST + " TEXT," +
MusicTable.DURATION + " INTEGER," +
MusicTable.PATH + " TEXT)";
public static class MusicTable implements BaseColumns {
public static final String TABLE_NAME = "music";
public static final String TITLE = "title";
public static final String ARTIST = "artist";
public static final String DURATION = "duration";
public static final String PATH = "path";
}
public Boolean insertData(String admin, String password, String id, String email, String phone) {
SQLiteDatabase MyDatabase = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_ADMIN, admin);
contentValues.put(COL_PASSWORD, password);
contentValues.put(COL_ID, id);
contentValues.put(COL_EMAIL, email);
contentValues.put(COL_PHONE, phone);
boolean success = false;
try {
long result = MyDatabase.insert(TABLE_NAME, null, contentValues);
if (result != -1) {
success = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
MyDatabase.close();
}
return success;
}
public boolean checkAdmin(String admin) {
SQLiteDatabase MyDatabase = this.getWritableDatabase();
Cursor cursor = null;
try {
cursor = MyDatabase.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + COL_ADMIN + " = ?", new String[]{admin});
return cursor.getCount() == 0;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (cursor != null) {
cursor.close();
}
MyDatabase.close();
}
}
public boolean checkAdminPassword(String admin, String password) {
SQLiteDatabase MyDatabase = this.getWritableDatabase();
Cursor cursor = null;
try {
cursor = MyDatabase.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + COL_ADMIN + " = ? AND " + COL_PASSWORD + " = ?", new String[]{admin, password});
return cursor.getCount() > 0;
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (cursor != null) {
cursor.close();
}
MyDatabase.close();
}
}
public User getAdminByID(String admin) {
User user = null;
SQLiteDatabase MyDatabase = this.getReadableDatabase();
Cursor cursor = null;
cursor = MyDatabase.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE " + COL_ADMIN + " = ? ", new String[]{admin});
if (cursor.moveToFirst()) {
@SuppressLint("Range") String password = cursor.getString(cursor.getColumnIndex(COL_PASSWORD));
@SuppressLint("Range") String id = cursor.getString(cursor.getColumnIndex(COL_ID));
@SuppressLint("Range") String email = cursor.getString(cursor.getColumnIndex(COL_EMAIL));
@SuppressLint("Range") String phone = cursor.getString(cursor.getColumnIndex(COL_PHONE));
user = new User(admin, password, id, email,phone);
}
cursor.close();
MyDatabase.close();
return user;
}
}
package com.example.androidkscj.Dynamic_duo;
import android.provider.BaseColumns;
public final class MusicContract {
private MusicContract() {}
public static class MusicEntry implements BaseColumns {
public static final String TABLE_NAME = "Music";
public static final String COLUMN_TITLE = "title";
public static final String COLUMN_ARTIST = "artist";
public static final String COLUMN_ALBUM = "album";
public static final String COLUMN_DURATION = "duration";
public static final String COLUMN_PATH = "path";
public static final String COLUMN_MIME_TYPE = "mime_type";
public static final String COLUMN_SIZE = "size";
}
}
package com.example.androidkscj.TX;
import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import com.example.androidkscj.Bean.Music;
import java.util.ArrayList;
import java.util.List;
public class MusicLoader {
private static final String[] PROJECTION = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.MIME_TYPE,
MediaStore.Audio.Media.SIZE
};
public static List<Music> loadMusic(Context context) {
Cursor cursor = context.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
PROJECTION,
null,
null,
null
);
List<Music> musicList = new ArrayList<>();
if (cursor != null) {
while (cursor.moveToNext()) {
@SuppressLint("Range") long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
@SuppressLint("Range") String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
@SuppressLint("Range") String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
@SuppressLint("Range") String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
@SuppressLint("Range") long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
@SuppressLint("Range") String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
@SuppressLint("Range") String mimeType = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.MIME_TYPE));
@SuppressLint("Range") long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
Music music = new Music(id, title, artist, album, duration, path, mimeType, size);
musicList.add(music);
}
cursor.close();
}
return musicList;
}
}
package com.example.androidkscj.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.example.androidkscj.Bean.Music;
import com.example.androidkscj.Dynamic_duo.MusicContract;
import com.example.androidkscj.R;
import com.example.androidkscj.TX.MusicLoader;
import com.example.androidkscj.Util.DatebaseHelper;
import java.util.List;
public class Text extends AppCompatActivity {
private DatebaseHelper mDbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_test);
mDbHelper = new DatebaseHelper(this);
// 从SD卡中读取音乐文件,并插入到数据库中
new Thread(new Runnable() {
@Override
public void run() {
List<Music> musicList = MusicLoader.loadMusic(Text.this);
SQLiteDatabase db = mDbHelper.getWritableDatabase();
for (Music music : musicList) {
ContentValues values = new ContentValues();
values.put(MusicContract.MusicEntry.COLUMN_TITLE, music.mTitle);
values.put(MusicContract.MusicEntry.COLUMN_ARTIST, music.mArtist);
values.put(MusicContract.MusicEntry.COLUMN_ALBUM, music.mAlbum);
values.put(MusicContract.MusicEntry.COLUMN_DURATION, music.mDuration);
values.put(MusicContract.MusicEntry.COLUMN_PATH, music.mPath);
values.put(MusicContract.MusicEntry.COLUMN_MIME_TYPE, music.mMimeType);
values.put(MusicContract.MusicEntry.COLUMN_SIZE, music.mSize);
db.insert(MusicContract.MusicEntry.TABLE_NAME, null, values);
}
db.close();
}
}).start();
}
@Override
protected void onDestroy() {
super.onDestroy();
mDbHelper.close();
}
}
有什么报错吗,把异常信息发出来看下。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!