android数据库框架ormlite的使用

开篇:相信大家在android开发过程中大多数项目都需要使用android的数据库sqllite,但是每次直接利用android提供的api来增删改查数据表有点繁琐,做javaweb的都知道有一款数据库框架叫Hibernate ,android端同样有类似这样的框架,下面就给大家介绍这款框架ormlite的使用。orm就是对象关系映射的意思,就是讲关系性质的数据表转化成java的的对象来操作,极大的符合我们java开发人员的思维模式,也免去了不少重复性的代码编写。

1.下载所需jar包

到http://ormlite.com/releases/ 该网站下载所需jar包,android端使用需要下载以下两个jar包(红框圈出来的),一个是ormlite-core-5.0.jar(该包是ormlite的核心代码包),一个是ormlite-android-5.0.jar(该包是在android工程中所需的jar包,如果在普通java工程或者javaweb工程中则使用核心包和另一个jar包ormlite-jdbc-5.0.jar)。

android数据库框架ormlite的使用_第1张图片

2.新建android工程,考入jar包

新建工程,在libs目录下考入刚下载的两个jar包,如下图所示:
android数据库框架ormlite的使用_第2张图片
3.接下来编写一个简单的存储并读取用户信息的代码。
  (1)先编写userbean类,该类的字段和表字段一一对应,代码如下:
package com.example.androidormlitedemo;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
//用注解标示该类和表user来映射,如果不写tableName则会默认用该类的类名来当做表名。
@DatabaseTable(tableName="user")
public class UserBean {
	//用注解标示字段和表中的字段来对应,id=true表示该字段为主键。
	@DatabaseField(id=true)
	private int uid;
	//普通字段则不用写括号
	@DatabaseField
	private String uname;
	@DatabaseField
	private int age;
	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}
	public String getUname() {
		return uname;
	}
	public void setUname(String uname) {
		this.uname = uname;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}

(2)编写DatabaseHelper类继承OrmLiteSqliteOpenHelper:
package com.example.androidormlitedemo;

import java.sql.SQLException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;

import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
	// 数据库名称,会在程序的目录中生成test_db.db数据库文件
	public static String DATABASE_NAME = "test_db";
	// 数据库version
	private static final int DATABASE_VERSION = 1;

	public DatabaseHelper(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
	}

	public DatabaseHelper(Context context, String databaseName, CursorFactory factory, int databaseVersion) {
		super(context, databaseName, factory, databaseVersion);

	}
	// 初次运行程序会执行该onCreate方法,如果不是初次运行程序则不会执行该方法,防止重复建表。
	@Override
	public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
		try {
			//建立User表
			TableUtils.createTable(connectionSource, UserBean.class);
		} catch (SQLException e) {
			e.printStackTrace();
		}

	}
	//如果不是初次运行并且DATABASE_VERSION数值增加的时候,则会执行该方法,可以在该方法中删除原来的表并建立新表,在要修改数据表结构的时候使用。
	@Override
	public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {
		try {
			TableUtils.dropTable(connectionSource, UserBean.class, true);
			onCreate(sqLiteDatabase, connectionSource);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 释放 DAO
	 */
	@Override
	public void close() {
		super.close();
	}

}

(3)编写dao类,先简单的写一个存储方法和一个查询方法。
package com.example.androidormlitedemo;

import java.sql.SQLException;

import android.content.Context;

import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.dao.Dao;

public class UserDao {
	private Dao dao;

	public UserDao(Context context) {
		DatabaseHelper dbHelper = OpenHelperManager.getHelper(context, DatabaseHelper.class);
		try {
			dao = dbHelper.getDao(UserBean.class);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	// 保存一条用户信息
	public void savaUser(UserBean bean) {
		try {
			// 如果表中没有该用户则保存,根据主键是否相同来标示是否是同一用户
			dao.createIfNotExists(bean);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//根据id获取用户信息
	public UserBean getUserById(int id) {
		try {
			return dao.queryForId(id);
		} catch (SQLException e) {
			e.printStackTrace();
			return null;
		}

	}

}

(4)使用上面创建的dao来保存一个用户并读取改用户信息,示例代码如下:
package com.example.androidormlitedemo;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView textView = (TextView) findViewById(R.id.text);
		
		//模拟创建一个用户信息
		UserBean userBean = new UserBean();
		userBean.setUid(1);
		userBean.setUname("张全蛋");
		userBean.setAge(25);
		
		//创建dao 初次使用的时候表会自动创建,根据UserBean的字段映射成表
		UserDao userDao = new UserDao(this);
		//保存用户到表中
		userDao.savaUser(userBean);
		
		//从表中查询信息
		UserBean userByfind = userDao.getUserById(1);
		//显示查询的用户名
		textView.setText(userByfind.getUname());
		
	}
}

(5)完成,运行程序即可。
4.总结,这是ormlite的简单使用,还有更多功能,详细查看官方api,可以下载doc包,或者源码包,如下图:
android数据库框架ormlite的使用_第3张图片
5.完整Demo下载地址:http://pan.baidu.com/s/1pL3xGaJ


你可能感兴趣的:(android开发)