首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

数据库能力置通(记录)

2012-11-05 
数据库能力放通(记录)?? 要求数据库中断的情况下,部分功能能力放通:?? 实现思路:本想用csv文件存储临时数

数据库能力放通(记录)

?? 要求数据库中断的情况下,部分功能能力放通:

?? 实现思路:本想用csv文件存储临时数据,发现用数组拼装太麻烦,后直接采用对象序列化存储

?? 采用读写所操作数据,在业务操作时,捕捉数据库中断异常,把对象写入缓存文件中,

?? 数据库正常后,任意一个用户登陆,开辟一个线程进行读操作,写入数据库,然后删除缓存文件

?

?? 过程中发现学序列化追加存储,无法正常读取,最后一个工具类是处理该问题的

?

?

/** *  * 针对输出流的封装类 * 解决序列化对象追加写入文件无法读取问题 * @author  xxx * @version  [版本号, 2011-9-9] * @see  [相关类/方法] * @since  [产品/模块版本] */public class EccObjectOutputStream extends ObjectOutputStream{    /**     * 公共文件     */    private static File f;        /**       * 初始化静态文件对象,并返回类对象       * @param file 文件对象,用于初始化静态文件对象       * @param out 输出流       * @return MyObjectOutputStream       * @throws IOException       */    public static EccObjectOutputStream newInstance(File file, OutputStream out)        throws IOException    {        f = file;//本方法最重要的地方:构建文件对象,是两个文件对象属于同一个           //return new EccObjectOutputStream(out, f);        return new EccObjectOutputStream(out);//修改pmd问题    }         /**     * {@inheritDoc}     */    @Override    protected void writeStreamHeader()        throws IOException    {        if (!f.exists() || (f.exists() && f.length() == 0))        {            super.writeStreamHeader();        }        else        {            super.reset();        }    }        /**     * <默认构造函数>     */    //public EccObjectOutputStream(OutputStream out, File f) //修改pmd问题    public EccObjectOutputStream(OutputStream out)        throws IOException    {        super(out);    }    }

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

热点排行