本人微信公众号"aeolian"~
秋夜雨巷

通过.frm和.ibd恢复mysql数据

.frm文件:保存了每个表的元数据,包括表结构的定义等; .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。 1、安装相同版本的mysql; 找回表结构 2、找回表结构(若有表结构,直接导入表即可) 建立同名的表(InnoDB),不知道列数的话随意一个字段即可(如果字段个数不一致会报错,去日志文件中查看有列数重复这些步骤) 关闭mysql服务 用需要恢复的.frm文件覆盖新生成的.frm文件。…

秋夜雨巷

架构探险笔记9-框架优化之参数优化

目前的框架已具备IOC、AOP、MVC等特性,基本上一个简单的WEB应用可以通过它来开发了。但或多或少还存在一些不足,需要优化的地方还很多,此外,还有一些更强大的功能需要不断地补充进来。 优化Action参数 明确Action参数优化目标 对于某些Action方法,根本用不上Param参数,但框架需要我们必须提供一个Param参数,这样未免有些勉强。 /** * 进入客户端界面 */ @Action("get:/customer") public…

秋夜雨巷

架构探险笔记8-实现事务控制特性

定义事务注解 我们之前实现过一个Service 注解,用于定义服务类,而在服务类中会包括若干方法, 有些方法是具备事务性的,比如创建、修改、删除等。如何保证这类方法具有事务性呢? 我们可以利用这个Proxy 框架来实现一个简单的事务控制特性。只需要开发者使用Transaction 注解,将其定义在需要事务控制的方法上即可。下面我们就来实现这个事务管理框架。 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public…

秋夜雨巷

架构探险笔记7-事务管理简介

什么是事务 事务(Transaction)通俗的理解为一件事,要么做完,要么不做,不能做一半留一半。也就是说,事务必须是一个不可分割的整体,就像我们在化学课上学到的原子,原子是构成物质的最小单位。于是人们就归纳出第一个事务的特性:原子性(Atomicity)。 特别是在数据库领域,事务是一个非常重要的概念,除了原子性以外,它还有一个及其重要的特性,那就是一致性(Consistency)。也就是说,执行完数据库操作后,数据库不会被破坏。打个比方,如果从A账户转到B账号,不可能A账户扣了钱,而B账户没有加钱。 当我们编写了一条update语句,提交到数据库的那一刹那,有可能别人也提交了一条delete语句到数据库中。也许我们都是对同一条记录进行操作,可以想象,如果不稍加控制,就会有大麻烦。我们必须保证数据库操作之间是“隔离”的(线程之间有时也要做到隔离)。彼此之间没有任何干扰,这就是隔离性(Isolation)。要想真正做到操作之间完全没有任何干扰是很难的,于是数据库权威转件就开始动脑筋了,“我们要指定一个规范,让各个数据库厂商都支持我们的规范!”,这个规范就是事务隔离级别(Transaction Isolation Level)。能定义出这么牛的规范真的挺不容易的,其实说白了就四个级别: READ_UNCOMMITED;  读未提交(脏读、不可重复读、虚读都是有可能发生的) READ_COMMITED;  读已提交(避免脏读,但是不可重复读和虚读是有可能发生的) REPEATABLE_READ;  可重复读(避免脏读、不可重复读,但是虚读是有可能发生的)…