Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例(二)

4】包com.andyidea.db下DatabaseHelper.java源码:

  1. package com.andyidea.db;  
  2.   
  3. import java.sql.SQLException;  
  4.   
  5. import Android.content.Context;  
  6. import Android.database.sqlite.SQLiteDatabase;  
  7. import Android.util.Log;  
  8.   
  9. import com.andyidea.bean.Student;  
  10. import com.j256.ormlite.Android.apptools.OrmLiteSqliteOpenHelper;  
  11. import com.j256.ormlite.dao.Dao;  
  12. import com.j256.ormlite.support.ConnectionSource;  
  13. import com.j256.ormlite.table.TableUtils;  
  14.   
  15. public class DatabaseHelper extends OrmLiteSqliteOpenHelper {  
  16.       
  17.     private static final String DATABASE_NAME = "ormlite.db";  
  18.     private static final int DATABASE_VERSION = 1;  
  19.       
  20.     private Dao<Student,Integer> stuDao = null;  
  21.       
  22.     public DatabaseHelper(Context context){  
  23.         super(context, DATABASE_NAME, null, DATABASE_VERSION);  
  24.     }  
  25.   
  26.     /**  
  27.      * 创建SQLite数据库  
  28.      */  
  29.     @Override  
  30.     public void onCreate(SQLiteDatabase sqliteDatabase, ConnectionSource connectionSource) {  
  31.         try {  
  32.             TableUtils.createTable(connectionSource, Student.class);  
  33.         } catch (SQLException e) {  
  34.             Log.e(DatabaseHelper.class.getName(), "Unable to create datbases", e);  
  35.         }  
  36.     }  
  37.   
  38.     /**  
  39.      * 更新SQLite数据库  
  40.      */  
  41.     @Override  
  42.     public void onUpgrade(  
  43.             SQLiteDatabase sqliteDatabase,   
  44.             ConnectionSource connectionSource,   
  45.             int oldVer,  
  46.             int newVer) {  
  47.         try {  
  48.             TableUtils.dropTable(connectionSource, Student.class, true);  
  49.             onCreate(sqliteDatabase, connectionSource);  
  50.         } catch (SQLException e) {  
  51.             Log.e(DatabaseHelper.class.getName(),   
  52.                     "Unable to upgrade database from version " + oldVer + " to new "  
  53.                     + newVer, e);  
  54.         }  
  55.     }  
  56.       
  57.     public Dao<Student,Integer> getStudentDao() throws SQLException{  
  58.         if(stuDao == null){  
  59.             stuDao = getDao(Student.class);  
  60.         }  
  61.         return stuDao;  
  62.     }  
  63.   
  64. }  
【5】包com.andyidea.ormsqlite下源码:

MainActivity.java源码:

[html]
  1. package com.andyidea.ormsqlite;  
  2.   
  3. import java.sql.SQLException;  
  4.   
  5. import com.andyidea.bean.Student;  
  6. import com.andyidea.db.DatabaseHelper;  
  7. import com.j256.ormlite.Android.apptools.OrmLiteBaseActivity;  
  8. import com.j256.ormlite.dao.Dao;  
  9.   
  10. import Android.content.Intent;  
  11. import Android.os.Bundle;  
  12. import Android.view.Menu;  
  13. import Android.view.MenuItem;  
  14. import Android.widget.EditText;  
  15.   
  16. public class MainActivity extends OrmLiteBaseActivity<DatabaseHelper> {  
  17.       
  18.     private EditText stuNO;  
  19.     private EditText stuName;  
  20.     private EditText stuAge;  
  21.     private EditText stuSex;  
  22.     private EditText stuScore;  
  23.     private EditText stuAddress;  
  24.       
  25.     private Student mStudent;  
  26.     private Dao<Student,Integer> stuDao;  
  27.       
  28.     private final int MENU_ADD = Menu.FIRST;  
  29.     private final int MENU_VIEWALL = Menu.FIRST+1;  
  30.     private final int MENU_EDIT = Menu.FIRST+2;  
  31.       
  32.     private Bundle mBundle = new Bundle();  
  33.       
  34.     /** Called when the activity is first created. */  
  35.     @Override  
  36.     public void onCreate(Bundle savedInstanceState) {  
  37.         super.onCreate(savedInstanceState);  
  38.         setContentView(R.layout.main);  
  39.           
  40.         initializeViews();  
  41.     }  
  42.       
  43.     /**  
  44.      * 初始化UI界面  
  45.      */  
  46.     private void initializeViews(){  
  47.         stuNO = (EditText)findViewById(R.id.stuno);  
  48.         stuName = (EditText)findViewById(R.id.name);  
  49.         stuAge = (EditText)findViewById(R.id.age);  
  50.         stuSex = (EditText)findViewById(R.id.sex);  
  51.         stuScore = (EditText)findViewById(R.id.score);  
  52.         stuAddress = (EditText)findViewById(R.id.address);  
  53.           
  54.         mBundle = getIntent().getExtras();  
  55.         if(mBundle!=null && mBundle.getString("action").equals("viewone")){  
  56.             mStudent = (Student)getIntent().getSerializableExtra("entity");  
  57.             setStudentUIData(mStudent);  
  58.         }  
  59.           
  60.         if(mBundle!=null && mBundle.getString("action").equals("edit")){  
  61.             mStudent = (Student)getIntent().getSerializableExtra("entity");  
  62.             setStudentUIData(mStudent);  
  63.         }  
  64.     }  
  65.       
  66.     @Override  
  67.     public boolean onPrepareOptionsMenu(Menu menu) {  
  68.         if(mBundle!=null && mBundle.getString("action").equals("viewone"))  
  69.             return false;  
  70.         else  
  71.             return super.onPrepareOptionsMenu(menu);  
  72.           
  73.     }  
  74.   
  75.     @Override  
  76.     public boolean onCreateOptionsMenu(Menu menu) {  
  77.         if(mBundle!=null && mBundle.getString("action").equals("edit")){  
  78.             menu.add(1,MENU_EDIT,0,"保存");  
  79.         }else{  
  80.             menu.add(0,MENU_ADD,0,"增加");  
  81.             menu.add(0,MENU_VIEWALL,0,"查看");  
  82.         }  
  83.         return super.onCreateOptionsMenu(menu);  
  84.     }  
  85.   
  86.     @Override  
  87.     public boolean onOptionsItemSelected(MenuItem item) {  
  88.         switch (item.getItemId()) {  
  89.         case MENU_ADD:  
  90.             try {  
  91.                 stuDao = getHelper().getStudentDao();  
  92.                 getStudentData();  
  93.                 if(mStudent != null){  
  94.                     //创建记录项  
  95.                     stuDao.create(mStudent);  
  96.                 }  
  97.             } catch (SQLException e) {  
  98.                 e.printStackTrace();  
  99.             }  
  100.             break;  
  101.         case MENU_VIEWALL:  
  102.             Intent intent = new Intent();  
  103.             intent.setClass(MainActivity.this, StudentListActivity.class);  
  104.             startActivity(intent);  
  105.             break;  
  106.         case MENU_EDIT:  
  107.             try {  
  108.                 getStudentData();  
  109.                 stuDao = getHelper().getStudentDao();  
  110.                 if(mStudent != null){  
  111.                     //更新某记录项  
  112.                     stuDao.update(mStudent);  
  113.                 }  
  114.             } catch (SQLException e) {  
  115.                 e.printStackTrace();  
  116.             }  
  117.             break;  
  118.         default:  
  119.             break;  
  120.         }  
  121.         return super.onOptionsItemSelected(item);  
  122.     }  
  123.   
  124.     /**  
  125.      * 获取界面值(实体信息)  
  126.      */  
  127.     private void getStudentData(){  
  128.         mStudent = new Student();  
  129.         mStudent.setStuNO(stuNO.getText().toString());  
  130.         mStudent.setName(stuName.getText().toString());  
  131.         mStudent.setAge(Integer.parseInt(stuAge.getText().toString()));  
  132.         mStudent.setSex(stuSex.getText().toString());  
  133.         mStudent.setScore(Double.parseDouble(stuScore.getText().toString()));  
  134.         mStudent.setAddress(stuAddress.getText().toString());  
  135.     }  
  136.       
  137.     /**  
  138.      * 赋值给UI界面  
  139.      * @param student  
  140.      */  
  141.     private void setStudentUIData(Student student){  
  142.         stuNO.setText(student.getStuNO());  
  143.         stuName.setText(student.getName());  
  144.         stuAge.setText(String.valueOf(student.getAge()));  
  145.         stuSex.setText(student.getSex());  
  146.         stuScore.setText(String.valueOf(student.getScore()));  
  147.         stuAddress.setText(student.getAddress());  
  148.     }  


你可能感兴趣的:(android,sqlite,null,database,action,menu)