//定义数据库的元数据 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); } }