1.ormlite 学习笔记

原创 2016年05月31日 16:59:34
1.下载并导入到libs jar包 
orm(对象关系映射)
对于Android为:ormlite-android-4.48.jar 和 ormlite-core-4.48.jar ;

2.创建Bean类

@DatabaseTable(tableName = "user")//声明表名
public class User {
@DatabaseField(generatedId = true)//是否为自增id
private int id;

//列名和是否允许为空
@DatabaseField(columnName = "name",canBeNull = true)
private String name;

@DatabaseField(columnName = "age" ,canBeNull = true)
private int age;

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 int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}
}
3.创建数据库操作helper类

package com.shengqi.ormlite.utils;

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

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;
import com.shengqi.model.User;

import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

/**
* Created by Administrator on 2016/5/26.
*/
public class SqliteHelper extends OrmLiteSqliteOpenHelper {

private static String tableName = "User.db";
private Map<String, Dao> daos = new HashMap<String, Dao>();


public SqliteHelper(Context context) {
super(context, tableName, null, 1);
}



@Override
public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {

try {
TableUtils.createTable(connectionSource , User.class);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}

}

@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {
if (oldVersion != newVersion){
try {
TableUtils.dropTable(connectionSource, User.class, true);
                onCreate(sqLiteDatabase, connectionSource);

} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
}

private static SqliteHelper sqliteHelper = null;

public static synchronized SqliteHelper getSqliteHelper(Context mContext){
if (sqliteHelper == null){
sqliteHelper = new SqliteHelper(mContext);
}
return sqliteHelper;
}

@Override
public void close() {
super.close();
for (String key : daos.keySet())
{
Dao dao = daos.get(key);
dao = null;
}
}

@Override
public <D extends Dao<T, ?>, T> D getDao(Class<T> clazz) throws java.sql.SQLException {

Dao dao = null;

String classname = clazz.getSimpleName();

if (daos.containsKey(classname)){
dao = daos.get(classname);
}

if (dao == null){
dao = super.getDao(clazz);
daos.put(classname, dao);
}

return (D) dao;
}
}
4.为每个bean类创建dao类
package com.shengqi.ormlite.utils;

import android.content.Context;
import android.util.Log;

import com.j256.ormlite.dao.Dao;
import com.shengqi.model.User;

import java.sql.SQLException;
import java.util.List;

/**
* Created by Administrator on 2016/5/26.
*/
public class UserDao {
private Context mContext;
private Dao<User,Integer> userDaoOpe;
private SqliteHelper mSqliteHelper;

public UserDao(Context context){
mContext = context;

mSqliteHelper = SqliteHelper.getSqliteHelper(mContext);
try {
//获取bean的dao类
userDaoOpe = mSqliteHelper.getDao(User.class);
User user = new User();
user.setAge(10);
user.setName("wu");
userDaoOpe.create(user);
} catch (SQLException e) {
e.printStackTrace();
}
}

public void getName(){

try {
List<User> list = userDaoOpe.queryBuilder().selectColumns("name").query();

for (User user:list) {
Log.e("user", user.toString());
}
} catch (SQLException e) {
e.printStackTrace();
}
}

}
5.在应用程序中操作数据库
6.关闭数据库连接
切记关闭数据库连接



版权声明:本文为博主原创文章,未经博主允许不得转载。

ANDROID轻量级ORM框架ORMLITE学习笔记(1)-初识

何为Orm? Object Relational Mapping,即对象关系映射. 作用就在于把业务逻辑与关系数据库相关联.对于初学者的我们来说,其实就是摆脱了访问数据库操作的细节,不用再去写复杂...

Android数据库框架ORMLite的学习笔记

在开发APP过程中,难免会用到数据库。而Android现主要使用SQLite数据库,这里就不对SQLite做介绍了。但SQLite的数据库操作语句难免有些繁琐,而ORMLite框架很好的简化了SQLi...

eclipse开发学习笔记.part1.rar

  • 2013年10月19日 20:43
  • 40MB
  • 下载

python基础学习笔记(1)

  • 2017年05月20日 15:30
  • 1.76MB
  • 下载

ORMLite学习入门笔记

使用原始的SQLiteHelper来操作维护数据库有点过于繁琐,重复工作量较大。所以会想到使用一个比较方便的ORM来维护我们本地的数据库,各位业界前辈都给我推荐了ORMLite(官网:http://o...
  • yzzst
  • yzzst
  • 2013年07月17日 19:09
  • 12397

Labview SE 学习笔记1

  • 2014年03月19日 21:41
  • 1.28MB
  • 下载

Java学习笔记 (1)

  • 2013年08月17日 20:24
  • 100KB
  • 下载

ORMLite学习入门笔记

【转自http://blog.csdn.net/yzzst/article/details/9359271】 使用原始的SQLiteHelper来操作维护数据库有点过于繁琐,重复工作量较大。所以...

struts2学习笔记(1)

  • 2012年10月14日 17:49
  • 14KB
  • 下载

C语言学习笔记1

  • 2012年12月20日 18:16
  • 211KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1.ormlite 学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)