Android ORMLite框架入门用法教程
2015-03-21 10:37
561 查看
大家在Android项目中或多或少的都会使用数据库,为了提高我们的开发效率,当然少不了数据库ORM框架了,尤其是某些数据库操作特别频繁的app;本篇博客将详细介绍ORMLite的简易入门用法。
下面开始介绍ORMLite的入门用法~
首先去ORMLite官网下载jar包,对于Android为:ormlite-android-4.48.jar 和 ormlite-core-4.48.jar ;
ps:访问不了的朋友,文章末尾会把jar、源码、doc与本篇博客例子一起打包提供给大家下载。
2、基本项目实例结构图
1)、bean包下为实体类,也就是每个实体类对应一张数据库表,如本实例的User.java类对应数据库的tb_user表,也就是说你有几张表你就要对应有几个实体类。
2)、db包下为DatabaseHelper.java类,这个类是继承于ORMLITE框架里面的OrmLiteSqliteOpenHelper类的,然后在里面实现一些必要的方法,外部在用这个继承类来操作数据库
3)、test包下为测试用例类,用来测试我们写的是否可以运行
总体流程大概这样:下载ormlite的加包,加入到你的项目工程里面去,然后你的项目需要几张表就对应的建立几个实体类,实体类的字段要跟数据库表里面的字段是一致的,然后自定义一个类去继承ORMLITE框架里面的OrmLiteSqliteOpenHelper类,复写里面的onCreate、onUpgrade方法等,然后外部在用这个类去实现对数据库的操作即可。
详情看下面代码:
User.java:
DatabaseHelper.java:
OrmLiteDbTest.java
AndroidManifest.xml
注意:用AndroidTestCase测试记得要配置以下两个:
<uses-library android:name="android.test.runner" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.ormlitedemo" android:label="Tests for My App" />
ps:User.java里面的空的构造方法记得要写不然会报错。
测试效果:
增加后查询结果:
修改后查询结果:
删除后查询结果:
项目源代码下载地址:
http://download.csdn.net/detail/su_tianbiao/8520113
下面开始介绍ORMLite的入门用法~
1、下载 ORMLite Jar
首先去ORMLite官网下载jar包,对于Android为:ormlite-android-4.48.jar 和 ormlite-core-4.48.jar ;ps:访问不了的朋友,文章末尾会把jar、源码、doc与本篇博客例子一起打包提供给大家下载。
2、基本项目实例结构图
1)、bean包下为实体类,也就是每个实体类对应一张数据库表,如本实例的User.java类对应数据库的tb_user表,也就是说你有几张表你就要对应有几个实体类。
2)、db包下为DatabaseHelper.java类,这个类是继承于ORMLITE框架里面的OrmLiteSqliteOpenHelper类的,然后在里面实现一些必要的方法,外部在用这个继承类来操作数据库
3)、test包下为测试用例类,用来测试我们写的是否可以运行
总体流程大概这样:下载ormlite的加包,加入到你的项目工程里面去,然后你的项目需要几张表就对应的建立几个实体类,实体类的字段要跟数据库表里面的字段是一致的,然后自定义一个类去继承ORMLITE框架里面的OrmLiteSqliteOpenHelper类,复写里面的onCreate、onUpgrade方法等,然后外部在用这个类去实现对数据库的操作即可。
详情看下面代码:
User.java:
package com.example.ormlitedemo.bean; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; /** * 注解 * @author Jerry *tableName="tb_user"表示对应的数据库表叫:tb_user表 */ @DatabaseTable(tableName="tb_user") public class User { //generatedId=true:表示是主键 @DatabaseField(generatedId=true) private int id; //columnName="name":表示对应数据库表tb_user表里面的name字段 @DatabaseField(columnName="name") private String name; //columnName="name":表示对应数据库表tb_user表里面的age字段 @DatabaseField(columnName="age") private int age; //columnName="name":表示对应数据库表tb_user表里面的sex字段 @DatabaseField(columnName="sex") private String sex; public User() { } public User( String name, int age, String sex) { //super(); this.name = name; this.age = age; this.sex = sex; } public User(int id, String name, int age, String sex) { //super(); this.id = id; this.name = name; this.age = age; this.sex = sex; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "ID:"+id+"\tNAME:"+name+"\tAGE:"+age+"\tSEX:"+sex; } }
DatabaseHelper.java:
package com.example.ormlitedemo.db; import java.sql.SQLException; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import com.example.ormlitedemo.bean.User; import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper; import com.j256.ormlite.dao.Dao; import com.j256.ormlite.support.ConnectionSource; import com.j256.ormlite.table.TableUtils; public class DatabaseHelper extends OrmLiteSqliteOpenHelper { // 数据库名字 private static final String TABLE_NAME = "ormlite-test.db"; // 表的Dao,每一张表对应一个Dao private Dao<User, Integer> userDao; // 构造函数,私有的外部不能直接访问 private DatabaseHelper(Context context) { super(context, TABLE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase database, ConnectionSource connectionSource) { try { // 通过TableUtils这个类新建User类对应的表 TableUtils.createTable(connectionSource, User.class); } catch (SQLException e) { e.printStackTrace(); } } @Override public void onUpgrade(SQLiteDatabase database, ConnectionSource connectionSource, int oldVersion, int newVersion) { try { // 删除表 TableUtils.dropTable(connectionSource, User.class, true); // 再建表 onCreate(database, connectionSource); } catch (SQLException e) { e.printStackTrace(); } } // DatabaseHelper实例 private static DatabaseHelper instance; /** * 单例模式获取实例 * * @param context * @return */ public static synchronized DatabaseHelper getHelper(Context context) { if (instance == null) { synchronized (DatabaseHelper.class) { if (instance == null) instance = new DatabaseHelper(context); } } return instance; } /** * 获取UserDao * * @return * @throws SQLException */ public Dao<User, Integer> getUserDao() throws SQLException { if (userDao == null) { userDao = getDao(User.class); } return userDao; } /** * 释放 */ @Override public void close() { super.close(); userDao = null; } }
OrmLiteDbTest.java
package com.example.ormlitedemo.test; import java.sql.SQLException; import java.util.List; import com.example.ormlitedemo.bean.User; import com.example.ormlitedemo.db.DatabaseHelper; import android.test.AndroidTestCase; /** * 测试 * @author Jerry * */ public class OrmLiteDbTest extends AndroidTestCase { /** * 增 */ public void addUserTest() { DatabaseHelper helper = DatabaseHelper.getHelper(getContext()); try { User u1=new User("stb", 22, "男"); helper.getUserDao().create(u1); User u2=new User("stb2", 23, "男"); helper.getUserDao().create(u2); User u3=new User("stb3", 24, "男"); helper.getUserDao().create(u3); } catch (SQLException e) { e.printStackTrace(); } } /** * 删 */ public void delUserTest() { DatabaseHelper helper=DatabaseHelper.getHelper(getContext()); try { helper.getUserDao().deleteById(1); } catch (SQLException e) { e.printStackTrace(); } } /** * 改 */ public void updateUserTest() { DatabaseHelper helper=DatabaseHelper.getHelper(getContext()); User u=new User("我爱你", 25, "女"); u.setId(1); try { helper.getUserDao().update(u); } catch (SQLException e) { e.printStackTrace(); } } /** * 查 */ public void queryUserTest() { DatabaseHelper helper=DatabaseHelper.getHelper(getContext()); List<User> list=null; try { list = helper.getUserDao().queryForAll(); } catch (SQLException e) { e.printStackTrace(); } if(list!=null) { for(int i=0;i<list.size();i++) { System.out.println(list.get(i).toString()); } } } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.ormlitedemo" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <uses-library android:name="android.test.runner" /> <activity android:name="com.example.ormlitedemo.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!-- 记住这个一要放在application外面,不然会出现配置错误 信息 --> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.ormlitedemo" android:label="Tests for My App" /> </manifest>
注意:用AndroidTestCase测试记得要配置以下两个:
<uses-library android:name="android.test.runner" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.ormlitedemo" android:label="Tests for My App" />
ps:User.java里面的空的构造方法记得要写不然会报错。
测试效果:
增加后查询结果:
修改后查询结果:
删除后查询结果:
项目源代码下载地址:
http://download.csdn.net/detail/su_tianbiao/8520113
相关文章推荐
- Android ORMLite框架入门用法教程二(两张表关联外键)
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- (4.2.9)【android开源工具】Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法-数据库
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法
- Android ORMLite 框架的入门用法