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