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
相关推荐
ORM(Object-Relational Mapping)技术提供了一种便捷的方式将Java对象映射到关系数据库,如SQLite。ORMlite是适用于Android的一个轻量级ORM库,它简化了在Android应用中操作SQLite数据库的过程。本示例将介绍如何...
ORMLite是一个轻量级的Java ORM框架,它可以将Java对象映射到SQLite数据库中的表,通过对象的方法来执行CRUD(Create、Read、Update、Delete)操作,大大降低了数据库操作的复杂性。 **SQLite数据库自动升级** 在...
可以通过读取SQLite数据库文件(通常是`.db`格式)来实现数据的备份和恢复。在Android中,数据库文件通常位于`/data/data/your_package_name/databases/`目录下。 10. **第三方库封装** 对于更高级的使用场景,...
在Android中,由于SQLite是内置的本地数据库,开发者通常会使用OrmLite来方便地操作SQLite数据库,将Java对象映射为SQLite表,反之亦然。OrmLite提供了强大的API,支持数据库创建、查询、更新和删除等操作,大大降低...
在Android应用开发中,通常需要处理数据存储,Ormlite为开发者提供了一种方便的方式来将Java对象与SQLite数据库中的表进行映射,避免了繁琐的SQL语句编写。 一、Ormlite简介 Ormlite库的核心思想是通过注解将Java类...
以上代码在`onCreate`方法中创建一个新的`Hello`对象并保存到数据库,然后打印出插入后的对象信息。这只是一个简单的示例,实际应用中可以根据需要进行更复杂的查询和操作。 总之,ORMLite为Android开发提供了便捷...
ORMLite框架是一款轻量级的Java ORM(对象关系映射)库,它允许开发者将数据库操作转换为对Java对象的操作,从而简化了Android应用中的数据管理。在Android Studio项目中,ORMLite的二次封装是为了更好地适应项目...
ORMLite是一个开源的Java ORM库,它允许开发者通过简单的Java对象来操作数据库,而无需编写SQL语句。ORMLite提供了一套API,用于创建、查询、更新和删除数据库中的数据。在Android环境中,ORMLite通过SQLite数据库...
SQLite数据库是一种轻量级、开源的嵌入式关系型数据库,广泛应用于移动设备、桌面系统以及需要本地数据存储的应用程序中。它不依赖任何数据库管理服务,而是直接将数据库存储在文件系统中,因此非常便于集成到各种...
ORMLite提供了直观的API,让开发者能够将Java对象与SQLite数据库中的表进行映射。它支持基本类型、自定义类型、集合以及嵌套对象的映射,还提供了事务处理、查询构建器等功能,简化了数据库操作。 二、集成ORMLite...
SQLite是Android系统内置的关系型数据库,它为应用程序提供数据存储功能。ORM(Object-Relational Mapping)框架则是将数据库操作转化为对象操作的一种技术,简化了开发者对数据库的使用。在Android开发中,使用轻量...
在实际项目中,这些库可以协同工作,例如:通过`json-simple`处理服务器返回的JSON数据,使用ORMLite将数据存储到本地数据库,然后在需要时利用`js.jar`执行客户端的JavaScript逻辑,增强应用的交互性和动态性。
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。本篇将详细讲解如何在Android应用中使用SQLite,以及一个简单的...
本话题主要探讨如何在Android中使用SQLite数据库,并通过AndroidInject库和sqlite3注解实现对象关系映射(ORM),以简化数据库操作。ORM允许开发者用面向对象的方式来处理数据库,而无需直接编写SQL语句,提高了代码...
例如,创建一个新的对象实例,调用`create()`方法将其保存到数据库;通过`queryForAll()`或`queryForId()`等方法检索数据;使用`delete()`方法删除数据;以及通过`update()`方法更新数据。 ##### 外键字段与集合 ...
SQLite是一个开源、轻量级的嵌入式数据库引擎,它被广泛应用于移动设备和桌面系统的应用程序中,特别是在...在实际项目中,还可以结合ORM(对象关系映射)库,如ORMLite或Room,进一步简化数据库操作,提高开发效率。
在Android项目中,ORMLite通常与SQLite数据库结合使用,SQLite是Android内置的关系型数据库,适合小型、轻量级的数据存储。 1. **安装与配置** 要使用ORMLite,首先要在项目中添加依赖。如果是Gradle项目,可以在...
例如,当我们需要插入数据时,只需创建一个Java对象并设置属性,然后调用框架提供的方法将对象保存到数据库,框架会自动完成SQL语句的构建和执行。 在实际应用中,我们可以创建一个基类,比如`BaseModel`,在这个...
同样,`@ViewById`注解可以自动将XML布局文件中的视图绑定到Java类的字段上,省去了手动调用`findViewById`的步骤。 接着,我们来看看`ORMLite`。它是一个强大的ORM库,允许开发者以面向对象的方式来操作数据库,...
在Android系统中,SQLite被集成到每个设备中,为应用程序提供本地数据存储功能。 2. **Android与SQLite**: 在Android应用开发中,SQLite主要用于持久化数据,如用户设置、应用程序状态等。Android提供了`...