You are on page 1of 4

BÀI 15.

LẬP TRÌNH ỨNG DỤNG CSDL VỚI SQLITE


I. Mục tiêu
Giúp sinh viên hiểu rõ và lập trình với các thành phần
1) Quy trình thiết kế cơ sở dữ liệu
2) Thiết kế vào xây dựng ứng dụng CSDL với SQLite
II. Nội dung
1. Viết chương trình Quản lý sinh viên có giao diện như sau:

Cơ sở dữ liệu qlsinhvien.db gồm các bảng có kiểu dữ liệu và quan hệ như sau:

- Chúng ta xem Outline của MainActivity để dễ thiết kế:


Chúng ta xem coding trong MainActivity:
public class MainActivity extends Activity {
Button btncreat, btnibsertlop, btndelop, btnuplop, btnqerylop,
TextView edtmalop,edttenlop,edtsiso,
SQLiteDatabase database1 = null;
String tbllop = "tbllop";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnibsertlop = (Button) findViewById(R.id.btninstlop);
btndelop = (Button) findViewById(R.id.btndellop);
btnuplop = (Button) findViewById(R.id.btnUplop);
btnqerylop = (Button) findViewById(R.id.btnqrylop);
edtmalop = (TextView) findViewById(R.id.edtmalop);
edttenlop = (TextView) findViewById(R.id.edttenlop);
edtsiso = (TextView) findViewById(R.id.edtsiso);
//------Tạo Database-----------------------------------
database1 = openOrCreateDatabase("qlsinhvien.db", MODE_PRIVATE, null);
//----------Tạo Table nếu không tồn tại-----------------------------
try {
docreattable(); //Gọi hàm Tạo Tabel
} catch (Exception e) {
// TODO: handle exception
Log.e("Error", "Table is exists");
}

//-------------------Insert Records to Table Lop-------------------


btnibsertlop.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
doinsertrecordtolop(); // Gọi hàm chèn thêm lớp mới
}
});
//------------------------Delete Record from Table Lop--------------
btndelop.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
deleterowLop(); // Gọi hàm xóa lớp
}
});
//-------------------Update Record to Table lop-------------------
btnuplop.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
doupdaterowlop(); //Gọi hàm update lớp
}
});
btnqerylop.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
querytablelop(); // Gọi hàm truy vấn lớp
}
});
//---------------TẠO TABLE--------------------

private void docreattable() {


// TODO Auto-generated method stub
String sql1="CREATE TABLE tbllop ("+
"malop TEXT primary key,"+
"tenlop TEXT,"+
"siso INTEGER)";
database1.execSQL(sql1);
}
private void doinsertrecordtolop() {
// TODO Auto-generated method stub
String malop = edtmalop.getText().toString();
String tenlop = edttenlop.getText().toString();
String siso = edtsiso.getText().toString();
ContentValues values=new ContentValues();
values.put("malop", malop);
values.put("tenlop", tenlop);
values.put("siso", siso);
String msg="";
if(database1.insert("tbllop", null, values)==-1){
msg="Failed to insert record";
}
else{
msg="insert record is successful";
}
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
private void deleterowLop() {
// TODO Auto-generated method stub
String malop = edtmalop.getText().toString();
int d = database1.delete("tbllop", "malop =?", new String[]{malop});
String msg = "";
if (d ==0)
{
msg ="Delete Row "+malop +" Fail";
}
else
{
msg ="Delete Row "+malop +" Sucessful";

}
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
private void doupdaterowlop() {
// TODO Auto-generated method stub
String malop = edtmalop.getText().toString();
String new_tenlop = edttenlop.getText().toString();
String siso = edtsiso.getText().toString();
ContentValues values=new ContentValues();
values.put("tenlop", new_tenlop);
values.put("siso", siso);
String msg="";
int ret=database1.update("tbllop", values,
"malop=?", new String[]{malop});
if(ret==0){
msg="Failed to update";
}
else{
msg="updating is successful";
}
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
public void querytablelop()
{
Cursor c = database1.query("tbllop", null, null, null, null, null, null);
c.moveToFirst();
String data="";
while(c.isAfterLast()==false)
{
data+=c.getString(0)+"-"+
c.getString(1)+"-"+
c.getString(2);
data+="\n";
c.moveToNext();
}
Toast.makeText(this, data, Toast.LENGTH_LONG).show();
c.close();
}
}
3. Cho chạy chương trình, thực hiện các thao tác chèn dữ liệu, sau đó kích vào biểu tượng
DDMS trên thanh công cụ

Chọn Tab File Explorer/Data/Data  Chọn thư mục lưu dữ liệu chương trình đang chọn,

chọn vào qlsinhvien.db  chọn biểu tượng Save trên thanh công cụ, lưu lại dữ liệu
- Mở công cụ SQLite Database Browers, sau đó mở file Database qlsinhvien.db vừa lưu để
kiểm tra dữ liệu đã tạo. Tiếp tục thực hiện các thao tác Delete, Update, Query và kiểm tra lại
dữ liệu

You might also like