Android数据库



1. 数据库DBAdapter类

import android.content.*;
import android.database.*;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DBAdapter
{
    public static final String DB_NAME = "student.db";
    public static final String DB_TABLE = "studentinfo";
    public static final int DB_VERSION = 1;
    
    public static final String KEY_NAME = "name";
    public static final String KEY_CLASS = "class";
    public static final String KEY_NO = "no";
    
    public SQLiteDatabase db;
    public final Context context;
    public DBOpenHelper dbOpenHelper;
    
    
    public DBAdapter(Context _context)
    {
    	   context = _context;
    }
    
    public void close()
    {
    	if(db != null)
    	{
    		db.close();
    		db = null;
    	}
    }
	  /** Open the database */
	  public void open() throws SQLiteException {  
		  dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);
		  try {
			  db = dbOpenHelper.getWritableDatabase();
		  }
		  catch (SQLiteException ex) {
			  db = dbOpenHelper.getReadableDatabase();
		  }	  
		}
	  
	
	  public long insert(People people) {
	    ContentValues newValues = new ContentValues();
	  
	    newValues.put(KEY_NAME, people.Name);
	    newValues.put(KEY_CLASS, people.Class);
	    newValues.put(KEY_NO, people.No);
	    
	    return db.insert(DB_TABLE, null, newValues);
	  }


	  public People[] queryAllData() {  
		  Cursor results =  db.query(DB_TABLE, new String[] { KEY_NAME, KEY_CLASS, KEY_NO}, 
				  null, null, null, null, null);
		  return ConvertToPeople(results);   
	  }
	  
	  public People[] queryOneData(long id) {  
		  Cursor results =  db.query(DB_TABLE, new String[] { KEY_NAME, KEY_CLASS, KEY_NO}, 
				  KEY_NO + "=" + id, null, null, null, null);
		  return ConvertToPeople(results);   
	  }
	  
	  private People[] ConvertToPeople(Cursor cursor){
		  int resultCounts = cursor.getCount();
		  if (resultCounts == 0 || !cursor.moveToFirst()){
			  return null;
		  }
		  People[] peoples = new People[resultCounts];
		  for (int i = 0 ; i<resultCounts; i++){
			  peoples[i] = new People();
			  peoples[i].Name = cursor.getString(cursor.getColumnIndex(KEY_NAME));
			  peoples[i].Class = cursor.getInt(cursor.getColumnIndex(KEY_CLASS));
			  peoples[i].No = cursor.getInt(cursor.getColumnIndex(KEY_NO));
			  
			  cursor.moveToNext();
		  }	  
		  return peoples; 
	  }
	  
	  public long deleteAllData() {
		  return db.delete(DB_TABLE, null, null);
	  }

	  public long deleteOneData(long id) {
		  return db.delete(DB_TABLE,  KEY_NO + "=" + id, null);
	  }

	  public long updateOneData(long id , People people){
		  ContentValues updateValues = new ContentValues();	  
		  updateValues.put(KEY_NAME, people.Name);
		  updateValues.put(KEY_CLASS, people.Class);
		  updateValues.put(KEY_NO, people.No);
		  
		  return db.update(DB_TABLE, updateValues,  KEY_NO + "=" + id, null);
	  }
    private 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_NAME + " text not null, " + KEY_CLASS + " integer," + KEY_NO + " integer primary key autoincrement)";
		@Override
		public void onCreate(SQLiteDatabase db)
		{
			// TODO 自动生成的方法存根
			db.execSQL(DB_CREATE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
		{
			// TODO 自动生成的方法存根
			db.execSQL("DROP TABLE IF EXIST " + DB_TABLE);
			onCreate(db);
		}
    	
    }
}


2.  People类

public class People {

	public String Name;
	public int Class;
	public int No;
	
	@Override
	public String toString(){
		String result = "";
		result += "姓名: " + this.Name + "  ";
		result += "班级: " + this.Class + "  ";
		result += "学号: " + this.No + "  ";
		return result;
	}
}

3. MainActivity


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.*;

public class MainActivity extends Activity
{

	Button input;
	Button output;
	Button delete;
//	public static final int SUBACTIVITY1 = 1;
//	public static final int SUBACTIVITY2 = 2;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	
	    input = (Button)findViewById(R.id.button1);
	    output = (Button)findViewById(R.id.button2);
	    delete = (Button)findViewById(R.id.button3);
	    
	    Button.OnClickListener btnListener = new Button.OnClickListener(){

			@Override
			public void onClick(View v)
			{
				// TODO 自动生成的方法存根
				switch(v.getId())
				{
				case R.id.button1:
					Intent intent1 = new Intent(MainActivity.this,SubActivity1.class);
				//	startActivityForResult(intent,SUBACTIVITY1);
					startActivity(intent1);
					return;
				case R.id.button2:
					Intent intent2 = new Intent(MainActivity.this,SubActivity2.class);
					startActivity(intent2);
					return;
				case R.id.button3:
					Intent intent3 = new Intent(MainActivity.this,SubActivity3.class);
					startActivity(intent3);
					return;
				}
			}
	    	
	    };
	    input.setOnClickListener(btnListener);
	    output.setOnClickListener(btnListener);
	    delete.setOnClickListener(btnListener);
	    }

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings)
		{
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}


4.  SubActivity1

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;


public class SubActivity1 extends Activity
{
	EditText line_name,line_class,line_no;
    Button btn_submit,btn_back;
    TextView labelView;
	DBAdapter dba;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sub_activity1);
	
		dba = new DBAdapter(this);
		dba.open();
		line_name = (EditText)findViewById(R.id.editText1);
		line_class = (EditText)findViewById(R.id.editText2);
		line_no = (EditText)findViewById(R.id.editText3);
		
		btn_back = (Button)findViewById(R.id.button1);
		btn_submit = (Button)findViewById(R.id.button2);
		
		labelView = (TextView)findViewById(R.id.textView4);
		Button.OnClickListener btnListener = new Button.OnClickListener(){

			@Override
			public void onClick(View v)
			{
				// TODO 自动生成的方法存根
				switch(v.getId())
				{
				case R.id.button1:
					//line_name.setText("返回");
					finish();
					return;
				case R.id.button2:
					People people = new People();
				    people.Name = line_name.getText().toString();
					people.Class = Integer.parseInt(line_class.getText().toString());
				    people.No = Integer.parseInt(line_no.getText().toString());
					long colunm = dba.insert(people);
								if (colunm == -1 ){
									labelView.setText("提交失败");
								} else {
									labelView.setText("提交成功"+String.valueOf(colunm));	
									
								}
					return;
				}
			}
			
		};
		
		btn_submit.setOnClickListener(btnListener);
		btn_back.setOnClickListener(btnListener);
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.sub_activity1, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings)
		{
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}

5. SubActivity2

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.*;

public class SubActivity2 extends Activity
{

	TextView textshow;
	DBAdapter db;
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sub_activity2);
		
		textshow = (TextView)findViewById(R.id.textView4);
		
		db = new DBAdapter(this);
		db.open();
		
		People people[] = db.queryAllData();
		int num = people.length;
		
	    Log.e("msg",String.valueOf(num));
		
		for(int i=0; i<num; i++)
		{
			String str = " 姓名: " + people[i].Name + " 班级: " + people[i].Class + " 学号: " + people[i].No;
			Log.e("msg", str);
			textshow.append(str+"\n");
		}
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.sub_activity2, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings)
		{
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}


6. SubActivity3

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.*;

public class SubActivity3 extends Activity
{

	TextView show;
	EditText edit;
	DBAdapter da;
	Button button_back,button_confirm,button_deleteAll;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_sub_activity3);
		
		show = (TextView)findViewById(R.id.textView5);
		edit = (EditText)findViewById(R.id.editText_delete);
		button_back = (Button)findViewById(R.id.button_3back);
		button_confirm = (Button)findViewById(R.id.button_3confirm);
		button_deleteAll = (Button)findViewById(R.id.button_deleteAll);
		da = new DBAdapter(this);
		da.open();
		
		Button.OnClickListener btnListener = new Button.OnClickListener(){

			@Override
			public void onClick(View v)
			{
				// TODO 自动生成的方法存根
				switch(v.getId())
				{
				case R.id.button_3back:
					finish();
					return;
				case R.id.button_3confirm:
					int num = Integer.parseInt(edit.getText().toString());
		            long result = da.deleteOneData(num);	
		            if(result > 0)
		            show.setText("删除成功!!!"); 	
		            else show.setText("删除失败!!!");
					return;
				case R.id.button_deleteAll:
					da.deleteAllData();
					show.setText("全部清空!");
					return;
				}
			}
			
		};
		
		button_back.setOnClickListener(btnListener);
		button_confirm.setOnClickListener(btnListener);
		button_deleteAll.setOnClickListener(btnListener);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.sub_activity3, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings)
		{
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值