首先到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;
}
}
}