Javascript for-in 慎用

Array.prototype.min = function() {
		var min = this[0];
		for (var i = 1; i < this.length; i++) {
			if (this[i] < min) {
				min = this[i];
			}
		}
		return min;
	};
	var arr = [1, 56, 34, 12];
	var total = 0;
	for (var i in arr) {
		total += parseInt(arr[i]);
	}
	alert(total);

因为为Array附加了min方法后,用for in输出的是NaN,用普通的for循环没有问题

JDBC事物机制

事务:由一个或多个执行、完成的语句组成,以组的形式提交或回滚。当前事务结束,另一个事务开始。
在JDBC中,事务默认是自动提交的,即每执行一条语句,就是一个事务。
事务特性:ACID特征,Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)。
• 原子性:指整个事务是不可以分割的工作单元。只有事务中所有的操作执行成,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该回到执行事务前的状态。
• 一致性:指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如对于银行转账事务,不管事务成功还是失败,应该保证事务结束后两个转账账户的存款总额是与转账前一致的。
• 隔离性:指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
• 持久性:指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
事务各个特征的实现手段:
• 原子性:日志
• 一致性:日志
• 隔离性:锁机制
• 持久性:日志
事务隔离级别(5级):
• 0:TRANSACTION_NONE
• 1:TRANSACTION_READ_UNCOMMITTED
• 2:TRANSACTION_READ_COMMITTED 防止脏读
• 4:TRANSACTION_REPEATABLE_READ 防止不可重复读
• 8:TRANSACTION_SERIALIZABLE 防止 幻影读
Oracle支持2种:2和8,默认为2.
并发环境中的几种情况:
• 脏读:一个事务在提交前可以看到另一个事务的行为,则出现脏读。一个事务读到了其它事务没有提交的数据;
• 不可重复读:一个事务通过SQL读取数据后,有其它事务立刻作了DML操作,并且提交了,然后第一个事务通过相同的SQL语句再次读取,所得的数据和第一次读取的数据不一致的情况。
要点:同一个事务,同一语句,在多次读取过程中,所得到的结果不一致的情况。
如何防止:在执行SELECT语句时加上for update子句
• 幻(影)读:基本理解同不可重复读。
区别:
不可重复读:指某些列的值的不同,
幻影读:指表的总记录数量上的不同。
如何防止:锁表,代价很高。
使用如下方法控制连接的独立性等级:
conn.setTransactionIsolation(Connection.TRANSACTION_XXX);

事务的开始与结束:
首先,因为默认的JDBC事务是自动提交的,故我们在获取数据库连接后,应该将连接改为非自动提交模式:
conn.setAutoCommit(false); //标志着新事务的开始
conn.commit(); //提交
conn.rollback(); //回滚

在JDBC 3.0新增功能中,提供对事务commit和rollback的更好支持,在事务过程中,在两个操作间可以插入一个命名的存储点作为标记,因此可以将事务回滚到那个标记,保留标记有效前的所有操作。
示例:
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();

stmt.executeUpdate(update1);
Savepoint point1 = conn.setSavepoint(“point1″);

stmt.executeUpdate(update2);
stmt.executeUpdate(update3);

conn.rollback(point1);
conn.commit();

该文为转载

Spring概览

概览
最常用的是他的控制反转和AOP功能:
1. 控制反转(IOC – Inversion of Control):应用本身不负责依赖对象的创建和维护,这些都由Spring来完成,如service里面的dao只需要写构造方法或setter后再service实例化的时候dao会自动被Spring实例化。控制反转的意思就是把控制权给了Spring。由Spring反过来讲实例化对象注入进去。
2. 使用Spring的优点:
* 降低各层之间的耦合:因为以前我们都是手动在action里面实例化service,在service里面实例化dao,而这些事情现在都由Spring来做,降低了各层之间的耦合度。
* Spring还提供了很多服务:事务管理服务,消息服务等,我们就不需要手动控制事物。
* 单例模式:开发人员不需要手动些单例实例化的代码,Spring在控制实例化的时候内部已经做了。
* AOP技术:利用他很容易实现权限拦截,运行期监控等。
* 有很多辅助类,JdbcTemplate,HibernateTemplate,使我们操作更简单。
* 对主流的Hibernate,Struts等框架提供了很好的支持
3. Spring的事物:
我们手动控制比如
Bean1.Update();
Bean2.Save();
在一个事物中,需要让他们具体的每个方法里面的操作在同一个connection实例里面,所以我们需要传入Connection,Bean1.Update(conn);Bean2.Save(conn)
Spring中,我们只需要加入:
public class Bean1{
@Transactional(propagation=Propagation.Required)
public void update(){
executeUpdate(“update …”)
}
}
public class Bean2{
@Transactional(propagation=Propagation.Required)
public void save(){
executeUpdate(“insert …”)
}
}
都为Propagation.Required的时候就在一个事物中了,如果是把save的改成RequiresNew,就是第一个Update是否成功都会执行Save,表示Save这个是一个新事物。
4. Spring到底是轻量级还是重量级
轻量级还是重量级的鉴别主要看他使用的服务,如果使用的服务越多,就会影响性能,越接近重量级,比如Spring提供了很多服务,这些服务默认都没有打开,需要你配置,如果配置越多就越接近重量级。

边疆行 3 — 山水看宁明

简介:宁明县位于广西省崇左市,当地人近80%都是壮族,宁明与越南的凉山和越南的广宁两省接壤。宁明的边境线很长,是广西最长的一个县,明江宁明县的最大河流,也是广西左江上游的最大支流。
主要景点:
1. 崖葬:
宁明的壮族人的先民古骆越人一直有崖葬的风俗,这个风俗一直流传了下来。放置棺木的岩洞一般都要高达几十米,百米的悬崖上,一般是有身份地位的人使用这种风俗。
2. 壮族琴声
天琴是壮族最古老的弹拨乐器,天琴独奏是叫弹天,为山歌伴奏是叫唱天,为独唱独奏伴奏时叫独天,边弹边跳时叫跳天。
3. 花山岩画:
沿着明江下行就能达到世界著名的花山岩画,花山岩画历经了2000年都没有褪色,花山岩画是怎么做上去的和不退色的两个问题一直以来都还是一个迷。因为花山岩画的岩面向河面倾斜,如果是人从顶上挂绳吊下来作画无法接触崖面,所以有可能是通过搭架后作画或者是春秋时期可能江水水位较高,在目前岩画的高度,这几个猜想目前都暂时没有得到证实。
花山岩画的内容有几种说法,1是抗击外敌入侵,祈求胜利的一副庆功图;2是祈求国富民强,风调雨顺;3是镇压河神,保平安的意思;4是一个族人祭祀的场面;
花山岩画宽170多米,高有50多米,整个画面有1900多个图像,创于春秋时期,有2500多年的历史,画面以人物造型为主,人物主要是半蹲的舞状,人像最大的3米高,最小的30厘米,人物描述的十分生动,甚至有些还能分辨出性别。
出于对花山岩画的保护,现在游客只能在船上观看,不能上岸。
4. 白头叶猴
白头叶猴是世界上公认最稀有的猴类,而宁明白头叶猴的数量就占到了总量的一半,至今已有300多万年的生存历史,是全球25种最濒危的灵长类动物,位于宁明的隆瑞自然保护区,生长了300多只白头叶猴,他们主要吃树叶,一般群居。白头叶猴名字的得来是因为他们头顶都有一团白发,远看好像顶着一顶白色的风帽,手和脚的背面也夹杂有白色,尾巴的一段也是白的。
5. 爱店
宁明的爱店镇主要做中药材的出口贸易,大多数药材都发往越南和东南亚其他国家,平均每年的成交额可以达到10几亿元。
爱店口岸是边境陆路二类口岸。

边疆行 2 — 山海防城港

简介:是广西壮族自治区辖下的一个地级市,下辖港口区、防城区、上思县和东兴市,有汉、壮、瑶、京等21个民族
1 京族:
属于我国唯一的海洋少数民族,京族主要居住在东兴市的巫头,山心和澫尾,因此这三个地方也称为京族三岛。
京族最有特色的节日是他们的哈节,也是他们一年中最盛大的节日,在这个节日中通过哈歌来祭祀祖先和祈求丰收平安。京族语言中,哈的意思是歌,唱哈就是唱歌。
京族独弦琴,已有上千年的历史,通过摇杆来弹出不同的音阶。
2 澫尾岛金滩:
京族三岛以前是岛屿,后来修筑海堤以后与大陆连载一起形成了半岛,浅海盛产大小黄鱼,鱿鱼等鱼类,居民通过拉大网即浅海围网的方式捕鱼。
3 防城港-长寿之乡
2010年10月防城港的东兴市成为我国第16个长寿之乡
4 金花茶
主要位于防城区-那梭镇,有金花茶国家自然保护区,也有用于商业的金花茶养殖基地。金花茶是8种一级国家保护植物之一,金花茶树生长较缓慢,资源稀少,所以很珍贵。

边疆行 1 — 从东兴出发

广西东兴与越南有名的边境城市芒街通过北仑河分界
东兴印象:
* 无铁路,但公路便利
* 距离广西首都南宁170公里
* 到口岸可直接看到越南的建筑和大桥
* 70年代末因为中越关系恶化,东兴口岸一度关闭知道80年代末逐渐开放到94年正式完全开放
* 一共只有10多万人,但外地人就有1万多,很多都是来做边贸生意的
* 东兴口岸出入境人数已经成为仅次于罗湖口岸和拱北口岸,为我国陆地出入境人数第三口岸
* 对面越南芒街因为越南以前是法国的殖民地,所以当地还保留一些法式建筑
特色
1:红旗街
主要集中了做中越贸易的小商铺,如越南木材制作的家具和装饰品
2:东兴夜市
东兴人的夜生活非常丰富,可以尝东兴夜市的小吃。
越南口味的炒螺:可以尝到很多的种类的螺,而且是越南的口味,有些店请了越南的厨师掌勺,吃法比较有特色,大多数的螺用回形针,先把回形针往姜里面一插用来消毒,然后用回形针挑出螺肉。
东兴的水果摊通常要到深夜2,3点才收摊,充分说明了东兴是一个真正的不夜城。
3:东兴口岸,跨国上班族
在东兴口岸,具体位于北仑河桥上,东兴人可以使用边民证通过北仑河桥往返越南芒街和东兴,边民证可以在越南境内15公里以内使用,超过15公里需使用护照。东兴口岸每天早上8点到晚上8点开放。桥上有一条分界线,但具体是根据进入东兴口岸的门和芒街口岸的门来辨别进入东兴或者芒街。许多东兴人在芒街开了小店,早上就去芒街做生意,晚上回来,一般经营一些日用品,越南芒街那边也有越南人,他们一般卖一些香水,越南那边的串珠,装饰品,老虎膏之类的。
4:美食
海鲜:东兴靠海,各种海产品丰富
沙虫:蒜蓉沙虫,沙虫粥(被命名为天下第一粥)
海鸭,主要是在海边饲养的鸭子

其他:
中国与越南时差一个小时。