首先要在 http://ormlite.com/releases 页面下载两个jar 包:
(1)core列表下的jar包; (2)android列表下的jar包。
将上面的两个jar包下载后放到Android工程项目中的libs包中。
在创建一个java类来存放数据,
1 package zhangphil.ormlitetest.database; 2 3 import com.j256.ormlite.field.DatabaseField; 4 import com.j256.ormlite.table.DatabaseTable; 5 6 @DatabaseTable(tableName = "users") 7 public class User { 8 9 public final static String USER_ID = "user_id"; 10 public final static String NAME = "name"; 11 public final static String AGE = "age"; 12 13 public User() { 14 15 } 16 17 public User(String name, int age) { 18 this.name = name; 19 this.age = age; 20 } 21 22 // @DatabaseField(generatedId = true) 23 // public int id; 24 25 @DatabaseField(id = true, columnName = USER_ID) 26 public int user_id; 27 28 @DatabaseField(columnName = NAME) 29 public String name; 30 31 @DatabaseField(columnName = AGE) 32 public int age; 33 34 public int getUserId() { 35 return user_id; 36 } 37 38 public void setUserId(int uid) { 39 this.user_id = uid; 40 } 41 42 public String getName() { 43 return name; 44 } 45 46 public void setName(String name) { 47 this.name = name; 48 } 49 50 public int getAge() { 51 return age; 52 } 53 54 public void setAge(int age) { 55 this.age = age; 56 } 57 58 @Override 59 public String toString() { 60 return "user_id:" + user_id + " 姓名:" + name + " 年龄:" + age; 61 } 62 }
创建一个ORMLite数据库管理工具类:
1 2 3 import java.sql.SQLException; 4 5 import android.content.Context; 6 import android.database.sqlite.SQLiteDatabase; 7 import android.database.sqlite.SQLiteDatabase.CursorFactory; 8 import android.util.Log; 9 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 ORMLiteDatabaseHelper extends OrmLiteSqliteOpenHelper { 16 17 private static ORMLiteDatabaseHelper mDatabaseHelper = null; 18 private Dao<User, Integer> mUserDao = null; 19 20 private final static String DataBase_NAME = "ormlite.db"; 21 private final static int DataBase_VERSION = 1; 22 23 public ORMLiteDatabaseHelper(Context context, String databaseName, 24 CursorFactory factory, int databaseVersion) { 25 super(context, DataBase_NAME, factory, DataBase_VERSION); 26 } 27 28 public static ORMLiteDatabaseHelper getInstance(Context context) { 29 if (mDatabaseHelper == null) { 30 mDatabaseHelper = new ORMLiteDatabaseHelper(context, DataBase_NAME, 31 null, DataBase_VERSION); 32 } 33 34 return mDatabaseHelper; 35 } 36 37 @Override 38 public void onCreate(SQLiteDatabase arg0, ConnectionSource connectionSource) { 39 40 Log.d(this.getClass().getName(), "ORMLite数据库 -> onCreate"); 41 42 try { 43 TableUtils.createTableIfNotExists(connectionSource, User.class); 44 } catch (Exception e) { 45 e.printStackTrace(); 46 } 47 } 48 49 @Override 50 public void onUpgrade(SQLiteDatabase database, ConnectionSource arg1, 51 int arg2, int arg3) { 52 53 Log.i(this.getClass().getName(), "数据库 -> onUpgrade"); 54 55 try { 56 // 删除旧的数据库表。 57 TableUtils.dropTable(connectionSource, User.class, true); 58 59 // 重新创建新版的数据库。 60 onCreate(database, connectionSource); 61 } catch (SQLException e) { 62 e.printStackTrace(); 63 } 64 } 65 66 /** 67 * 每一个数据库中的表,要有一个获得Dao的方法。 可以使用一种更通用的模板方法如: 68 * 69 * public Dao<Class, Integer> getORMLiteDao(Class cls) throws SQLException { 70 * if (dao == null) { dao = getDao(cls); } 71 * 72 * return dao; } 73 */ 74 public Dao<User, Integer> getUserDao() { 75 if (mUserDao == null) { 76 try { 77 mUserDao = getDao(User.class); 78 } catch (java.sql.SQLException e) { 79 e.printStackTrace(); 80 } 81 } 82 83 return mUserDao; 84 } 85 86 @Override 87 public void close() { 88 super.close(); 89 mUserDao = null; 90 } 91 }
最后在mainactivity中操作添加数据:
1 import java.sql.SQLException; 2 import java.util.List; 3 import java.util.Random; 4 5 import com.j256.ormlite.dao.Dao; 6 7 import zhangphil.ormlitetest.database.ORMLiteDatabaseHelper; 8 import zhangphil.ormlitetest.database.User; 9 import android.support.v7.app.ActionBarActivity; 10 import android.widget.Toast; 11 import android.os.Bundle; 12 13 public class MainActivity extends ActionBarActivity { 14 15 private Dao<User, Integer> mUserDao; 16 17 @Override 18 protected void onCreate(Bundle savedInstanceState) { 19 super.onCreate(savedInstanceState); 20 21 ORMLiteDatabaseHelper mDatabaseHelper = ORMLiteDatabaseHelper 22 .getInstance(this); 23 mUserDao = mDatabaseHelper.getUserDao(); 24 25 Random rand = new Random(); 26 for (int i = 0; i < 3; i++) { 27 User user = new User(); 28 user.setUserId(i); 29 user.setName("name" + i); 30 // 生成随机测试的年龄。 31 user.setAge(rand.nextInt(100)); 32 33 try { 34 mUserDao.createOrUpdate(user); 35 } catch (SQLException e) { 36 e.printStackTrace(); 37 } 38 } 39 } 40 41 @Override 42 public void onStart() { 43 super.onStart(); 44 45 // 全局查询 46 try { 47 List<User> users = mUserDao.queryForAll(); 48 49 for (User u : users) { 50 Toast.makeText(this, u.toString(), Toast.LENGTH_SHORT).show(); 51 } 52 } catch (SQLException e) { 53 e.printStackTrace(); 54 } 55 56 // 条件查询QueryBuilder 57 // 假设我们给定一个用户的id=1 58 int uid = 1; 59 try { 60 List<User> users = mUserDao.queryBuilder().where() 61 .eq(User.USER_ID, uid).query(); 62 63 for (User u : users) { 64 Toast.makeText(this, "查询结果 : " + u.toString(), 65 Toast.LENGTH_SHORT).show(); 66 } 67 } catch (SQLException e) { 68 e.printStackTrace(); 69 } 70 } 71 }
时间: 2024-08-07 17:01:40