栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Db4o 新建、查询、更新、删除操作

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Db4o 新建、查询、更新、删除操作

Db4o一个轻巧的、面向对象的数据库。为了方便调用,将新建、查询、更新、删除操作封装到了Db4oUtil工具类,懒人可一键调用哦哈哈哈
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.*;



@Component
public class Db4oUtil {

    private static Logger logger = LoggerFactory.getLogger(Db4oUtil.class);

	// 通过此方式向静态变量赋值
    @Value("${db4o.database.name}")
    private void setDatabaseName(String databaseName) {
        Db4oUtil.databaseName = databaseName;
    }

    private static String databaseName;

    
    public synchronized static  List 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 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();
        }
    }

    
    public synchronized static  List search(Class clazz) {
        ObjectContainer db = null;
        try {
            db = Db4o.openFile(databaseName);
            Query query = db.query();
            query.constrain(clazz);
            List 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();
        }
    }

    
    public synchronized static  boolean create(T T) {

        ObjectContainer db = null;
        try {
            db = Db4o.openFile(databaseName);
            db.store(T);
            db.commit();
            return true;
        } catch (Exception e) {
            logger.error("创建操作失败", e);
            return false;
        } finally {
            if (db != null)
                db.close();
        }
    }

    
    public synchronized static  boolean updateLimit(Class clazz, String descend, String constrain, Map map) {
        ObjectContainer db = null;
        try {
            db = Db4o.openFile(databaseName);
            Query query = db.query();
            query.constrain(clazz);
            query.descend(descend).constrain(constrain);
            List results = query.execute();
            if (results == null || results.size() <= 0) {
                return false;
            } else {
                Object object = results.get(0);
                Set> 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();
        }
    }

    
    public synchronized static  boolean delete(Class clazz, String descend, String constrain, String /confirm/iFiledName, String /confirm/iData) {
        ObjectContainer db = null;
        try {
            db = Db4o.openFile(databaseName);
            Query query = db.query();
            query.constrain(clazz);
            query.descend(descend).constrain(constrain);
            List results = query.execute();
            if (results == null || results.size() <= 0) {
                return false;
            } else {
                Object object = results.get(0);
                Field declaredField = clazz.getDeclaredField(/confirm/iFiledName);
                declaredField.setAccessible(true);
                if (declaredField.get(object).equals(/confirm/iData)) {
                    db.delete(object);
                    db.commit();
                    return true;
                } else
                    return false;
            }
        } catch (Exception e) {
            logger.error("删除操作失败", e);
            return false;
        } finally {
            if (db != null)
                db.close();
        }
    }
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号