Db4o 新建、查询、更新、删除操作
生活随笔
收集整理的這篇文章主要介紹了
Db4o 新建、查询、更新、删除操作
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Db4o一個(gè)輕巧的、面向?qū)ο蟮臄?shù)據(jù)庫。為了方便調(diào)用,將新建、查詢、更新、刪除操作封裝到了Db4oUtil工具類,懶人可一鍵調(diào)用哦哈哈哈
import com.db4o.Db4o; import com.db4o.ObjectContainer; import com.db4o.query.Query; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;import java.lang.reflect.Field; import java.util.*;/*** @Author: yuc* @Description:* @Date: */@Component public class Db4oUtil {private static Logger logger = LoggerFactory.getLogger(Db4oUtil.class);// 通過此方式向靜態(tài)變量賦值@Value("${db4o.database.name}")private void setDatabaseName(String databaseName) {Db4oUtil.databaseName = databaseName;}private static String databaseName;/*** 條件查詢** @param clazz* @param descend* @param constrain* @param <T>* @return*/public synchronized static <T> List<T> searchLimit(Class clazz, String descend, String constrain) {ObjectContainer db = null;try {db = Db4o.openFile(databaseName);Query query = db.query();query.constrain(clazz);query.descend(descend).constrain(constrain);List<T> results = query.execute();if (results == null || results.size() <= 0) {return null;} else {return new ArrayList<>(results);}} catch (Exception e) {logger.error("查詢操作失敗", e);return null;} finally {if (db != null)db.close();}}/*** 普通查詢** @param clazz* @param <T>* @return*/public synchronized static <T> List<T> search(Class clazz) {ObjectContainer db = null;try {db = Db4o.openFile(databaseName);Query query = db.query();query.constrain(clazz);List<T> results = query.execute();if (results == null || results.size() <= 0) {return null;} else {return new ArrayList<>(results);}} catch (Exception e) {logger.error("查詢操作失敗", e);return null;} finally {if (db != null)db.close();}}/*** 創(chuàng)建對象** @param T* @return*/public synchronized static <T> boolean create(T T) {ObjectContainer db = null;try {db = Db4o.openFile(databaseName);db.store(T);db.commit();return true;} catch (Exception e) {logger.error("創(chuàng)建操作失敗", e);return false;} finally {if (db != null)db.close();}}/*** 更新對象** @param clazz* @param descend* @param constrain* @param map* @param <T>* @return*/public synchronized static <T> boolean updateLimit(Class clazz, String descend, String constrain, Map<Object, Object> map) {ObjectContainer db = null;try {db = Db4o.openFile(databaseName);Query query = db.query();query.constrain(clazz);query.descend(descend).constrain(constrain);List<T> results = query.execute();if (results == null || results.size() <= 0) {return false;} else {Object object = results.get(0);Set<Map.Entry<Object, Object>> entries = map.entrySet();for (Map.Entry entry : entries) {Field declaredField = clazz.getDeclaredField(entry.getKey().toString());declaredField.setAccessible(true);declaredField.set(object, entry.getValue());}db.store(object);db.commit();return true;}} catch (Exception e) {logger.error("更新操作失敗", e);return false;} finally {if (db != null)db.close();}}/*** 刪除對象并校驗(yàn)** @param clazz* @param descend* @param constrain* @param confirmFiledName* @param confirmData* @param <T>* @return*/public synchronized static <T> boolean delete(Class clazz, String descend, String constrain, String confirmFiledName, String confirmData) {ObjectContainer db = null;try {db = Db4o.openFile(databaseName);Query query = db.query();query.constrain(clazz);query.descend(descend).constrain(constrain);List<T> results = query.execute();if (results == null || results.size() <= 0) {return false;} else {Object object = results.get(0);Field declaredField = clazz.getDeclaredField(confirmFiledName);declaredField.setAccessible(true);if (declaredField.get(object).equals(confirmData)) {db.delete(object);db.commit();return true;} elsereturn false;}} catch (Exception e) {logger.error("刪除操作失敗", e);return false;} finally {if (db != null)db.close();}} }總結(jié)
以上是生活随笔為你收集整理的Db4o 新建、查询、更新、删除操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: n维椭球体积公式_洛氏硬度、布氏硬度、维
- 下一篇: 如何从信息化、数字化迈向智能工厂?