当前位置:  编程技术>移动开发
本页文章导读:
    ▪事宜的传播特性&&事务的隔离级别        事务的传播特性&&事务的隔离级别 事务传播特性了解事务的几种传播特性     数据库操作1 数据库操作2 PROPAGATION_REQUIRED Transaction1 Transaction1 null Transaction2 PROPAGATION_SUPP.........
    ▪ 获取银幕的分辨率        获取屏幕的分辨率 DisplayMetrics display =  new DisplayMetrics();     //该方法主要是用于 实例化DisplayMetrics 对象,不能省略。                getWindowManager().getDefaultDisplay().getMetrics(display);     .........
    ▪ 【器皿】Collection接口-hashCode       【容器】Collection接口---hashCode java基础中的容器:     Collection接口           hashCode   实例(马士兵视频源码): import java.util.*; public class basicCollectionTest2 { /** * @param args */ public stati.........

[1]事宜的传播特性&&事务的隔离级别
    来源: 互联网  发布时间: 2014-02-18
事务的传播特性&&事务的隔离级别

事务传播特性了解事务的几种传播特性

 

 

数据库操作1

数据库操作2

PROPAGATION_REQUIRED

Transaction1

Transaction1

null

Transaction2

PROPAGATION_SUPPORTS

Transaction1

Transaction1

null

null

PROPAGATION_MANDATORY

 

Transaction1

Transaction1

null

Throws Exception

PROPAGATION_REQUIRES_NEW

 

Transaction1

Transaction2

null

Transaction2

PROPAGATION_NOT_SUPPORTED

 

Transaction1

null

null

null

PROPAGATION_NEVER

 

Transaction1

Throws Exception

null

null

PROPAGATION_NESTED(Spring)

 

Transaction1

Transaction2

[Transaction1]

null

Transaction2

 

    1.   PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启

     2.   PROPAGATION_SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行

     3.   PROPAGATION_MANDATORY: 如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。

     4.   PROPAGATION_REQUIRES_NEW: 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。

     5.   PROPAGATION_NOT_SUPPORTED: 总是非事务地执行,并挂起任何存在的事务。

     6.   PROPAGATION_NEVER: 总是非事务地执行,如果存在一个活动事务,则抛出异常

     7.   PROPAGATION_NESTED:如果一个活动的事务存在,则运行在一个嵌套的事务中. 如果没有活动事务,

          则按TransactionDefinition.PROPAGATION_REQUIRED 属性执行

 

 

 

 

 

事务隔离级别

 

脏读

不可重复读

幻象读

ISOLATION_READ_UNCOMMITTED

ISOLATION_READ_COMMITTED

 

ISOLATION_REPEATABLE_READ

 

 

ISOLATION_SERIALIZABLE

 

 

 

ISOLATION_DEFAULT

PlatfromTransactionManager

默认的隔离级别

SQLServer :READ_COMMITTED

MySql:REPEATABLE_READ

 

 

Spring事务的隔离级别

     1.   ISOLATION_DEFAULT: 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.

          另外四个与JDBC的隔离级别相对应

     2.   ISOLATION_READ_UNCOMMITTED: 这是事务最低的隔离级别,它充许令外一个事务可以看到这个事务未提交的数据。

          这种隔离级别会产生脏读,不可重复读和幻像读。

     3.   ISOLATION_READ_COMMITTED: 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据

     4.   ISOLATION_REPEATABLE_READ: 这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。

     5.   ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。

          除了防止脏读,不可重复读外,还避免了幻像读。

 

脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。

不可重复读是 指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。

幻觉读是 指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。  


    
[2] 获取银幕的分辨率
    来源: 互联网  发布时间: 2014-02-18
获取屏幕的分辨率

DisplayMetrics display =  new DisplayMetrics();

 

 

//该方法主要是用于 实例化DisplayMetrics 对象,不能省略。       

        getWindowManager().getDefaultDisplay().getMetrics(display);

 

        String fenbian = display.widthPixels + " x " + display.heightPixels;

 

        mTextView2 = (TextView) findViewById(R.id.mTextView02);

 

        mTextView2.setText(fenbian);


    
[3] 【器皿】Collection接口-hashCode
    来源: 互联网  发布时间: 2014-02-18
【容器】Collection接口---hashCode

java基础中的容器:

 

 

Collection接口

 

 

      hashCode

 

实例(马士兵视频源码):

import java.util.*;
public class basicCollectionTest2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Collection c=new HashSet();
		
		c.add("11");
		c.add(new Name("f1","wang"));
		c.add("zhu");
		System.out.println(c);
		
		//remove   删除
		c.remove("11");
		c.remove(new Name("f1","wang"));
		c.remove("zhu");
		System.out.println(c);
	}

}


class Name {
	
	String firstname,lastname;
	
	//构造函数
	public Name(String firstname,String lastname){
		
		this.firstname=firstname;
		this.lastname=lastname;
		
	}	
	
	//返回
	public String getFirstname(){
		return firstname;
	}
	
	public String getLasttname(){
		return lastname;
	}
	
	public String toString(){
		return lastname+" "+firstname;
	}

	/*
	 * 重写equals方法后要同时重写hashCode方法
	 * 当对象变为索引时,需要hashCode方法
	 * (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
    public boolean equals(Object obj){   
    	if(obj instanceof Name){
    		Name name=(Name)obj;
    		return (firstname.equals(name.firstname)&&
    				lastname.equals(name.lastname));
    	}
		return super.equals(obj);
		
			
		}
    
    public int hashCode(){
    	return firstname.hashCode();
    }
	
}
 

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android提高之MediaPlayer播放网络音频的实现方法... iis7站长之家
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3