数据库能力放通(记录)
?? 要求数据库中断的情况下,部分功能能力放通:
?? 实现思路:本想用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); } }?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?