简单存储车牌号和密码

最近ofo共享单车进入到我们校园,一开始时计费挺贵的,此时我又正好在学安卓,就尝试写了一个功能非常简单的APP。它的主要功能是记住车牌号和密码,可以通过车牌号查询密码。其实写这个APP时我主要是想用数据库的知识为自己做一个小程序,尝试一下自己第一个APP的实现,并没有其他意思。

1.界面如下:


2.添加数据:


3.查询全部数据或者单个数据:





下面是主要代码:

1.建立数据类:

public class Item {
public long user;
public long password;
@Override
public String toString(){
return "车牌号:" + String.valueOf(user) + "  密码:" + String.valueOf(password);
}

2.继承SQLiteOpenHelper:

public class Ofo_DBAdapter {
   private static final String DB_NAME = "ofo.db";
   private static final String DB_TABLE = "ofoinfo";
   private static final int DB_VERSION = 1;
   
   public static final String KEY_USER = "user";
   public static final String KEY_PASSWORD ="password";
   
   private SQLiteDatabase db;
   private final Context context;
   private DBOpenHelper dbOpenHelper;
   
   public Ofo_DBAdapter(Context _context){
  context = _context;
   }
   
   public void close(){
  if(db != null){
  db.close();
  db = null;
  }
   }
   
   public static class DBOpenHelper extends SQLiteOpenHelper{
  public DBOpenHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
private static final String DB_CREATE = "create table " + DB_TABLE+ "("
  + KEY_USER + " integer primary key autoincrement, " + KEY_PASSWORD + " integer);";


@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DB_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS" + DB_CREATE);
}   
   }
    
   public void open()throws SQLiteException{
  dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);//此时会执行SQL语句创建数据库
  try{
  db = dbOpenHelper.getWritableDatabase();//得到数据库实例
  }
  catch(SQLiteException sq){
  db = dbOpenHelper.getReadableDatabase();
  }
   }
   
   //数据添加
   public long insert(Item item){
  ContentValues newValues = new ContentValues();//相当于载体
  
  newValues.put(KEY_USER, item.user);
  newValues.put(KEY_PASSWORD, item.password);
  
  return db.insert(DB_TABLE, null, newValues);
   }
   
   private Item[] ConverToItem(Cursor cursor){
  int resultCounts = cursor.getCount();
  if(resultCounts == 0 || !cursor.moveToFirst()){
  return null;
  }
  Item[] item = new Item[resultCounts];
  for(int i = 0; i < resultCounts; i++){
  item[i] = new Item();
  item[i].user = cursor.getInt(cursor.getColumnIndexOrThrow(KEY_USER));
  item[i].password = cursor.getInt(cursor.getColumnIndexOrThrow(KEY_PASSWORD));
  cursor.moveToNext();
  }
  return item;
   }
   
   //查询单个数据
   public Item[] getOneData(long id){
  Cursor results = db.query(DB_TABLE, new String[]{ KEY_USER,  KEY_PASSWORD},
  KEY_USER + "=" + id, null, null, null, null);
  return ConverToItem(results);
   }
   //查询全部数据
   public Item[] getAllData(){
  Cursor results = db.query(DB_TABLE, new String[]{ KEY_USER,  KEY_PASSWORD},
  null, null, null, null, null);
  return ConverToItem(results);
   }
   //删除全部数据
   public long deleteAllData(){
  return db.delete(DB_TABLE, null, null);
   }
}

3.控件功能:

Button add, query, display, delete;
    EditText edit_user, edit_password;
    TextView text;
    Ofo_DBAdapter ofo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
add = (Button)findViewById(R.id.add);
query = (Button)findViewById(R.id.query);
display = (Button)findViewById(R.id.display);
delete = (Button)findViewById(R.id.delete);

edit_user = (EditText)findViewById(R.id.edit_user);
edit_password = (EditText)findViewById(R.id.edit_password);
text = (TextView)findViewById(R.id.text);

edit_user.setFilters(new InputFilter[]{ new InputFilter.LengthFilter( 5 )});
edit_password.setFilters(new InputFilter[]{ new InputFilter.LengthFilter( 4 )});
        
ofo = new Ofo_DBAdapter(this);//错过一次
ofo.open();//错过一次
//添加数据
add.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(edit_user.length() == 0 || edit_password.length() == 0){
Toast.makeText(getApplication(), "请把数据补充完整", Toast.LENGTH_SHORT).show();
return;
}
Item item = new Item();
item.user = Integer.parseInt(edit_user.getText().toString());
item.password = Integer.parseInt(edit_password.getText().toString());
long result = ofo.insert(item);
if(result == -1){
Toast.makeText(getApplication(), "添加数据失败,此数据已加入数据库", Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getApplication(), "此数据添加成功", Toast.LENGTH_SHORT).show();
}
text.setText("");
}
});
//查询单个数据
query.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(edit_user.length() == 0){
Toast.makeText(getApplication(), "查询失败,请输入学号再查询", Toast.LENGTH_SHORT).show();
return;
}
else{
long id = Integer.parseInt(edit_user.getText().toString());
Item []item = ofo.getOneData(id);
if(item == null){
Toast.makeText(getApplication(), "数据库中没有车牌号为" + 
edit_user.getText().toString() + "的数据", Toast.LENGTH_SHORT).show();
return;
}
text.setText(item[0].toString());
}
}
});
//显示全部数据
display.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Item []item = ofo.getAllData();
if(item == null){
Toast.makeText(getApplication(), "数据库中没有数据", Toast.LENGTH_SHORT).show();
return;
}
String msg = "当前数据库中共有" + String.valueOf(item.length) + "条数据" + "\n";
for(int i = 0; i < item.length; i++){
msg += item[i].toString() + "\n";
}
text.setText(msg);
}
});
//全部删除
delete.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub

if(ofo.getAllData() == null){
Toast.makeText(getApplication(), "数据库中没有数据,无法删除!", Toast.LENGTH_SHORT).show();
return;
}
ofo.deleteAllData();
Toast.makeText(getApplication(), "数据库数据全部被删除", Toast.LENGTH_SHORT).show();
text.setText("");
}
});
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值