首先到http://ormlite.com/releases/下载ormlite-android-4.48.jar 和 ormlite-core-4.48.jar到项目libs目录下.
然后生成一个数据库 survey.db(名字随意)放入/res/raw/目录下.
该数据库下包含表
CREATE TABLE USERS ( ID TEXT NOT NULL UNIQUE, USER_NAME TEXT NOT NULL UNIQUE, PASSWORD TEXT NOT NULL, PRIMARY KEY ( ID ) );
跟据此表就可以在android项目下创建相应的class了.
@DatabaseTable(tableName = "users") public class Users { // id = true 必须要有. @DatabaseField(columnName = "ID", id = true) private String ID; @DatabaseField(columnName = "USER_NAME") private String USER_NAME; @DatabaseField(columnName = "PASSWORD") private String PASSWORD; public String getID() { return ID; } public void setID(String iD) { ID = iD; } public String getUSER_NAME() { return USER_NAME; } public void setUSER_NAME(String uSER_NAME) { USER_NAME = uSER_NAME; } public String getPASSWORD() { return PASSWORD; } public void setPASSWORD(String pASSWORD) { PASSWORD = pASSWORD; } public Users() { } public Users(String iD, String uSER_NAME, String pASSWORD) { super(); ID = iD; USER_NAME = uSER_NAME; PASSWORD = pASSWORD; } }
用ormlite操作数据库非常简单.就是生成dao.然后对此dao操作.现在封装一个生成dao的dbhelper
public class DBHelper { public static final String DB_DIR = Environment .getExternalStorageDirectory().getAbsolutePath() + "/survey/"; public static final String DB_NAME = "survey.db"; private AndroidConnectionSource connectionSource; private static DBHelper dbHelper; public static DBHelper getInstance(Context context) { if (dbHelper == null) { dbHelper = new DBHelper(context); } return dbHelper; } public DBHelper(Context context) { File dir = new File(DB_DIR); if (!dir.exists()) { dir.mkdirs(); } File file = new File(dir, DB_NAME); if (!file.exists()) { try { loadFile(context, file, R.raw.survey); } catch (IOException e) { e.printStackTrace(); } } SQLiteDatabase db = SQLiteDatabase.openDatabase(file.getPath(), null, SQLiteDatabase.OPEN_READWRITE); connectionSource = new AndroidConnectionSource(db); } /** * 下在文件到指定目录 * * @param context * @param file * sd卡中的文件 * @param id * raw中的文件id * @throws IOException */ public static void loadFile(Context context, File file, int id) throws IOException { InputStream is = context.getResources().openRawResource(id); FileOutputStream fos = new FileOutputStream(file); byte[] buffer = new byte[1024]; int count = 0; while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); } /** * 获取dao * * @param clazz * @return * @throws SQLException */ public <D extends Dao<T, ?>, T> D getDao(Class<T> clazz) throws Exception { if (connectionSource != null) { return DaoManager.createDao(connectionSource, clazz); } return null; } }
在activity里就可以操作了
public class MainActivity extends Activity { DBHelper dbHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dbHelper = DBHelper.getInstance(this); try { Dao<Users, String> dao = dbHelper.getDao(Users.class); Users users1 = new Users("123", "456", "789"); dao.createOrUpdate(users1); Users users2 = new Users("qwe", "asd", "zxc"); dao.createOrUpdate(users2); List<Users> userList = dao.queryForAll(); for (int i = 0; i < userList.size(); i++) { LogUtil.showLog(userList.get(i).getUSER_NAME()); } } catch (Exception e) { e.printStackTrace(); } } @Override protected void onDestroy() { super.onDestroy(); if (dbHelper != null) { OpenHelperManager.releaseHelper(); dbHelper = null; } } }