1.ormlite 学习笔记

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.关闭数据库连接
切记关闭数据库连接



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值