快速创建数据库实现简单增,删,改,查:

//定义数据库的元数据
public final class UserMetaData {
    private UserMetaData(){}
        //user表的定义
    public static abstract class UserTable implements BaseColumns {
        public static final String TABLE_NAME="user";
        public static final String NAME="name";
        public static final String PSW="psw";
    }
}
//使用SQLiteOpenHelper创建数据库
public class DBHelper extends SQLiteOpenHelper {

    private static final String DB_NAME="user.db";
    private static final int VERSION=2;

    public DBHelper(Context context) {
        super(context,DB_NAME,null,VERSION);
    }

    private static final String CREATE_TABLE_USER="create table User(_id integer primary key autoincrement,name text,psw text)";
    private static final String DROP_TABLE_USER="drop table if exists user";
    //如果数据库表不存在,那么会调用该方法
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_USER);
    }

    //版本更新
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL(DROP_TABLE_USER);
        db.execSQL(CREATE_TABLE_USER);
    }
}
//数据库储存的对象对应的实体类
public class UserData {

    private int id;
    private String name;
    private String psw;

    public UserData() {

    }

    public UserData(int id, String name, String psw) {
        this.id = id;
        this.name = name;
        this.psw = psw;
    }

    public UserData( String name, String psw) {
        this.name = name;
        this.psw = psw;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPsw() {
        return psw;
    }

    public void setPsw(String psw) {
        this.psw = psw;
    }

    @Override
    public String toString() {
        return "UserData{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", psw='" + psw + '\'' +
                '}';
    }
}
//定义实现的功能
public class DataBaseAdapter {
    private DBHelper dbHelper;
    public DataBaseAdapter(Context context){

        dbHelper=new DBHelper(context);
    }
    //插入
    public void add(UserData user){
        //获取操作数据库的工具类
        SQLiteDatabase db=dbHelper.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put(UserMetaData.UserTable.NAME,user.getName());
        values.put(UserMetaData.UserTable.PSW,user.getPsw());
        //参数:1.表名 2.可以为空的列名 3.ContentValues
        db.insert(UserMetaData.UserTable.TABLE_NAME,null,values);
        db.close();
    }
    //更新
    public void update(UserData user){

        SQLiteDatabase db=dbHelper.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put(UserMetaData.UserTable.NAME,user.getName());
        values.put(UserMetaData.UserTable.PSW,user.getPsw());
        String whereClause= UserMetaData.UserTable._ID+"=?";
        String[] whereArgs={String.valueOf(user.getId())};
        db.update(UserMetaData.UserTable.TABLE_NAME,values,whereClause,whereArgs);
        db.close();
    }
    //删除
    public void delete(int id){
        SQLiteDatabase db=dbHelper.getWritableDatabase();
        String whereClause= UserMetaData.UserTable._ID+"=?";
        String[] whereArgs={String.valueOf(id)};
        db.delete(UserMetaData.UserTable.TABLE_NAME,whereClause,whereArgs);
        db.close();
    }
    //根据name查询单个
    public UserData quary(String name){
        SQLiteDatabase db=dbHelper.getReadableDatabase();
        String[] colums={UserMetaData.UserTable._ID, UserMetaData.UserTable.NAME, UserMetaData.UserTable.PSW};
        /**
         * 1.是否去除重复记录
         * 2.表名
         * 3.要查询的列
         * 4.查询条件的值
         * 5.分组条件
         * 6.分组条件的值
         * 7.排序
         * 8.分页条件
         */
        Cursor c=db.query(true, UserMetaData.UserTable.TABLE_NAME,colums, UserMetaData.UserTable.NAME+"=?",new String[]{String.valueOf(name)},null,null,null,null);
        UserData userData=null;
        if(c.moveToNext())
        {
            userData=new UserData();
            userData.setId(c.getInt(c.getColumnIndexOrThrow(UserMetaData.UserTable._ID)));
            userData.setName(c.getString(c.getColumnIndexOrThrow(UserMetaData.UserTable.NAME)));
            userData.setPsw(c.getString(c.getColumnIndexOrThrow(UserMetaData.UserTable.PSW)));
        }
        c.close();
        db.close();
        return userData;
    }


    //查询所有
    public ArrayList<UserData> findAll(){
        SQLiteDatabase db=dbHelper.getReadableDatabase();
        String[] colums={UserMetaData.UserTable._ID, UserMetaData.UserTable.NAME, UserMetaData.UserTable.PSW};
        /**
         * 1.是否去除重复记录
         * 2.表名
         * 3.要查询的列
         * 4.查询条件的值
         * 5.分组条件
         * 6.分组条件的值
         * 7.排序
         * 8.分页条件
         */
        Cursor c=db.query(true, UserMetaData.UserTable.TABLE_NAME,colums,null,null,null,null,null,null);

        ArrayList<UserData> users=new ArrayList<>();
        UserData userData=null;
        while(c.moveToNext())
        {
            userData=new UserData();
            userData.setId(c.getInt(c.getColumnIndexOrThrow(UserMetaData.UserTable._ID)));
            userData.setName(c.getString(c.getColumnIndexOrThrow(UserMetaData.UserTable.NAME)));
            userData.setPsw(c.getString(c.getColumnIndexOrThrow(UserMetaData.UserTable.PSW)));
            users.add(userData);
        }
        c.close();
        db.close();
        return users;
    }

}
//主函数调用功能
public class MainActivity extends AppCompatActivity {

    DataBaseAdapter dataBaseAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    dataBaseAdapter=new DataBaseAdapter(this);

    }

    public void add(View v){

            UserData useri = new UserData("yk312321321","35626");
            dataBaseAdapter.add(useri);
        Toast.makeText(MainActivity.this, "添加成功", Toast.LENGTH_SHORT).show();

    }

    public void delete(View v){

            dataBaseAdapter.delete(3);
        Toast.makeText(MainActivity.this, "删除成功", Toast.LENGTH_SHORT).show();
    }

    public void queryAll(View v){


            ArrayList<UserData> userDatas=dataBaseAdapter.findAll();
            int size=userDatas.size();
            for (int j=0;j<size;j++)
            {
                Toast.makeText(MainActivity.this, "(userDatas.get(j))"+(userDatas.get(j)), Toast.LENGTH_SHORT).show();
            }


    }

    public void query(View v){

        UserData user=dataBaseAdapter.quary("yk666");
        Toast.makeText(MainActivity.this, "user"+user, Toast.LENGTH_SHORT).show();
    }

    public void change(View v){

        UserData user=new UserData(2,"yk666","888");
        dataBaseAdapter.update(user);
    }
}






猜你喜欢

转载自blog.csdn.net/yang__k/article/details/80389008