`

java 调用ORMlite 实现sqlite 本地文件对象存储

阅读更多

 

java 调用ORMlite 实现sqlite 本地文件对象存储,原创,转载请注明出处!

SqliteHelper.java

 

package annhoa.sqlite;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.logging.Logger;
import com.j256.ormlite.dao.Dao;
import com.j256.ormlite.dao.DaoManager;
import com.j256.ormlite.jdbc.JdbcConnectionSource;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;

/**
 * @author annhoa
 * @param <T>
 * @date create 2018/1/19 update 2018/4/27
 * @decript sqlite 
 */
@SuppressWarnings({"unchecked", "rawtypes", "static-access"})
public class SqliteHelper {
    private static final Logger logger = Logger.getLogger(SqliteHelper.class.toString());
    private static Dao daoSupport;

    private static String SQLPATH = "jdbc:sqlite:sqlite.db";
    
    public static <T> Dao getDaoSupport(Class<T> clazz) throws SQLException {
        daoSupport = DaoManager.createDao(getConnectionSource(), clazz);
        return daoSupport;
    }

    public void setDaoSupport(Dao daoSupport) {
        this.daoSupport = daoSupport;
    }

    public static <T> void init(Class<T> clazz) {
        try {
            TableUtils.createTableIfNotExists(getConnectionSource(), clazz);
        } catch (Exception exception) {
            logger.info("创建表失败:{}"+ exception.getMessage());
        }
    }

    public static ConnectionSource getConnectionSource() throws SQLException {
        return new JdbcConnectionSource(SQLPATH);
    }
    
    
    /**
	 * 新增
     * @param <T>
	 * 
	 * @param t
	 *            泛型对象
	 * @throws SQLException
	 */
	public <T> void save(T t) throws SQLException {
		init(t.getClass());
		this.getDaoSupport(t.getClass()).create(t);
	}

	/**
	 * 根据Id删除
	 * @param <T>
	 *
	 * @param id
	 *            对象id参数
	 * @return
	 * @throws SQLException
	 */
	public <T> int deleteById(T t,Integer id) throws SQLException {
		return this.getDaoSupport(t.getClass()).deleteById(id);
	}

	/**
	 * 根据对象删除
	 * @param <T>
	 * 
	 * @param t
	 *            泛型对象
	 * @return
	 * @throws SQLException
	 */
	public <T> int deleteById(T t) throws SQLException {
		return this.getDaoSupport(t.getClass()).delete(t);
	}

	/**
	 * 根据多个对象ID批量删除
	 * @param <T>
	 * 
	 * @param ids
	 *            对象id参数集合
	 * @return
	 * @throws SQLException
	 */
	public <T> int deleteByIds(T t , Collection<Integer> ids) throws SQLException {
		return this.getDaoSupport(t.getClass()).deleteIds(ids);
	}

	/**
	 * 更新对象
	 * @param <T>
	 * 
	 * @param t
	 *            泛型对象
	 * @return
	 * @throws SQLException
	 */
	public <T> int update(T t) throws SQLException {
		return this.getDaoSupport(t.getClass()).update(t);
	}

	/**
	 * 根据对象id更新对象
	 * @param <T>
	 * 
	 * @param t
	 *            泛型对象
	 * @param id
	 *            对象id参数
	 * @return
	 * @throws SQLException
	 */
	public <T> int update(T t, Integer id) throws SQLException {
		return this.getDaoSupport(t.getClass()).updateId(t, id);
	}

	/**
	 * 根据对象id查询对象
	 * @param <T>
	 * 
	 * @param id
	 *            对象id参数
	 * @return
	 * @throws SQLException
	 */
	public <T> T queryForId(T t, Integer id) throws SQLException {
		return  (T) this.getDaoSupport(t.getClass()).queryForId(id);
	}

	/**
	 * 查询所有列表
	 * @param <T>
	 * @param <T>
	 * 
	 * @return
	 * @throws SQLException
	 */
	public <T> List<T> queryForAll(T t) throws SQLException {
		return this.getDaoSupport(t.getClass()).queryForAll();
	}

    
}

 

 

SqliteEntity.java

package annhoa.sqlite;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

@DatabaseTable(tableName = "sqliteEntity")
public class SqliteEntity {
	@DatabaseField(generatedId = true)
	private int id;
	@DatabaseField(columnName = "name")
	private String name;
	@DatabaseField(columnName = "address")
	private String address;
	public SqliteEntity() {
		super();
	}
	
	public SqliteEntity(String name, String address) {
		super();
		this.name = name;
		this.address = address;
	}
	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 String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
}

 

SqliteTest.java

package annhoa.sqlite;

import java.lang.reflect.Array;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

public class SqliteTest {

	public  static void main(String[] args) {
		SqliteHelper  sqliteHelper= new SqliteHelper();
		
		try {
//			SqliteEntity sqliteEntity = new SqliteEntity( "axiba0", "ajax:java:127.0.0.0");
//			SqliteEntity sqliteEntity1 = new SqliteEntity( "axiba1", "ajax:java:127.0.0.1");
//			sqliteHelper.save( sqliteEntity);
//			sqliteHelper.save( sqliteEntity1);
			List<SqliteEntity> list= sqliteHelper.queryForAll(new SqliteEntity());
			System.out.println(list.size());	
			for (int i = 0; i < list.size(); i++) {
				System.out.println(list.get(i).getId());	
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}

 

所需jar:

ormlite-core-5.0.jar

ormlite-jdbc-5.0.jar

sqlite-jdbc-3.21.0.1.jar

 

1
0
分享到:
评论
2 楼 阿拉扫思密达 2018-05-02  
好像图片有问题。我补充了文字说明
1 楼 qq1264926943 2018-04-28  
大佬,需要用到哪些jar包大佬,需要用到哪些jar包

相关推荐

    使用ormlite实现sqlite持久demo

    ORM(Object-Relational Mapping)技术提供了一种便捷的方式将Java对象映射到关系数据库,如SQLite。ORMlite是适用于Android的一个轻量级ORM库,它简化了在Android应用中操作SQLite数据库的过程。本示例将介绍如何...

    采用mvp实现;sqlite结合ormlite,实现本地数据库结构的自动升级;

    ORMLite是一个轻量级的Java ORM框架,它可以将Java对象映射到SQLite数据库中的表,通过对象的方法来执行CRUD(Create、Read、Update、Delete)操作,大大降低了数据库操作的复杂性。 **SQLite数据库自动升级** 在...

    安卓SQLite本地数据库操作

    可以通过读取SQLite数据库文件(通常是`.db`格式)来实现数据的备份和恢复。在Android中,数据库文件通常位于`/data/data/your_package_name/databases/`目录下。 10. **第三方库封装** 对于更高级的使用场景,...

    Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)

    在Android中,由于SQLite是内置的本地数据库,开发者通常会使用OrmLite来方便地操作SQLite数据库,将Java对象映射为SQLite表,反之亦然。OrmLite提供了强大的API,支持数据库创建、查询、更新和删除等操作,大大降低...

    OrmLite实现数据库增删改查操作

    在Android应用开发中,通常需要处理数据存储,Ormlite为开发者提供了一种方便的方式来将Java对象与SQLite数据库中的表进行映射,避免了繁琐的SQL语句编写。 一、Ormlite简介 Ormlite库的核心思想是通过注解将Java类...

    Android中使用ormlite实现持久化(一)--HelloOrmLite.docx

    以上代码在`onCreate`方法中创建一个新的`Hello`对象并保存到数据库,然后打印出插入后的对象信息。这只是一个简单的示例,实际应用中可以根据需要进行更复杂的查询和操作。 总之,ORMLite为Android开发提供了便捷...

    ORMLite框架二次封装工具类

    ORMLite框架是一款轻量级的Java ORM(对象关系映射)库,它允许开发者将数据库操作转换为对Java对象的操作,从而简化了Android应用中的数据管理。在Android Studio项目中,ORMLite的二次封装是为了更好地适应项目...

    android数据库ormlite的使用

    ORMLite是一个开源的Java ORM库,它允许开发者通过简单的Java对象来操作数据库,而无需编写SQL语句。ORMLite提供了一套API,用于创建、查询、更新和删除数据库中的数据。在Android环境中,ORMLite通过SQLite数据库...

    SQLite数据库示例

    SQLite数据库是一种轻量级、开源的嵌入式关系型数据库,广泛应用于移动设备、桌面系统以及需要本地数据存储的应用程序中。它不依赖任何数据库管理服务,而是直接将数据库存储在文件系统中,因此非常便于集成到各种...

    ORMLitePractice:使用ORMLite的Android SQLite实践

    ORMLite提供了直观的API,让开发者能够将Java对象与SQLite数据库中的表进行映射。它支持基本类型、自定义类型、集合以及嵌套对象的映射,还提供了事务处理、查询构建器等功能,简化了数据库操作。 二、集成ORMLite...

    Android轻量级sqlite orm框架.rar

    SQLite是Android系统内置的关系型数据库,它为应用程序提供数据存储功能。ORM(Object-Relational Mapping)框架则是将数据库操作转化为对象操作的一种技术,简化了开发者对数据库的使用。在Android开发中,使用轻量...

    json-simple-1.1.1.jar/ormlite.jar/js.jar

    在实际项目中,这些库可以协同工作,例如:通过`json-simple`处理服务器返回的JSON数据,使用ORMLite将数据存储到本地数据库,然后在需要时利用`js.jar`执行客户端的JavaScript逻辑,增强应用的交互性和动态性。

    android sqlite 的应用例子

    在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。本篇将详细讲解如何在Android应用中使用SQLite,以及一个简单的...

    AndroidInject增加sqlite3数据库映射注解(ORM).rar

    本话题主要探讨如何在Android中使用SQLite数据库,并通过AndroidInject库和sqlite3注解实现对象关系映射(ORM),以简化数据库操作。ORM允许开发者用面向对象的方式来处理数据库,而无需直接编写SQL语句,提高了代码...

    ormlite说明手册

    例如,创建一个新的对象实例,调用`create()`方法将其保存到数据库;通过`queryForAll()`或`queryForId()`等方法检索数据;使用`delete()`方法删除数据;以及通过`update()`方法更新数据。 ##### 外键字段与集合 ...

    SQLite实例

    SQLite是一个开源、轻量级的嵌入式数据库引擎,它被广泛应用于移动设备和桌面系统的应用程序中,特别是在...在实际项目中,还可以结合ORM(对象关系映射)库,如ORMLite或Room,进一步简化数据库操作,提高开发效率。

    Android ORMLite小例子

    在Android项目中,ORMLite通常与SQLite数据库结合使用,SQLite是Android内置的关系型数据库,适合小型、轻量级的数据存储。 1. **安装与配置** 要使用ORMLite,首先要在项目中添加依赖。如果是Gradle项目,可以在...

    AndroidInject增加sqlite3数据库映射注解(ORM).zip

    例如,当我们需要插入数据时,只需创建一个Java对象并设置属性,然后调用框架提供的方法将对象保存到数据库,框架会自动完成SQL语句的构建和执行。 在实际应用中,我们可以创建一个基类,比如`BaseModel`,在这个...

    ormlite_annotation_demos

    同样,`@ViewById`注解可以自动将XML布局文件中的视图绑定到Java类的字段上,省去了手动调用`findViewById`的步骤。 接着,我们来看看`ORMLite`。它是一个强大的ORM库,允许开发者以面向对象的方式来操作数据库,...

    Android平台sqlite快速入门

    在Android系统中,SQLite被集成到每个设备中,为应用程序提供本地数据存储功能。 2. **Android与SQLite**: 在Android应用开发中,SQLite主要用于持久化数据,如用户设置、应用程序状态等。Android提供了`...

Global site tag (gtag.js) - Google Analytics