摘要:数据的溢出:当整数的数据大小超出了可以表示的范围,而程序中又没有做数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。01 // 整数值如果超出了自己所可以表示范围的最大值,会出现溢出 02 public class TestJava3_4 03 { 04 public static void main(String args[]) 05 { 06 int x = java.lang.Integer.MAX_VALUE ; // 得到整型的最大值 07 08 System.out.println("x = "+x); 09 System.out.pri
阅读全文
摘要:bat是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。目录简单批处理内部命令简介1.Echo 命令2.@ 命令3.Goto 命令4.Rem 命令5.Pause 命令6.Call 命令7.start 命令8.choice 命令9.If 命令选项语法:代码雏形:如何在批处理文件中使用参数管道命令的使用1.| 命令2.>、>
阅读全文
摘要:导读:作者陈皓在微博上说过这样一段话:“聪明的程序员使用50%-70%的时间用来思考,尝试和权衡各种设计和实现,而用30%–50%的时间是在忙碌着编码,调试和测试。聪明的老板也会让团队这样做。而愚蠢的老板,愚蠢的程序员会拿出来100%-150%的时间来忙着赶进度,返工,重构,fix大量的bug…所以,越差的团队一般会越忙,而且还忙不完。”文中作者就此观点进行阐述。文章内容如下:在现在这个浮躁的时期,再加上敏捷咨询师们念的歪经,他们让人感觉上就像是软件产品是可以在很短的时间内高质量的完成的,这令那些管理者们很兴奋,就像巴甫洛夫的条件反射实验中的狗看到了肉就像流口水那样兴奋。他们使用TDD,快速迭
阅读全文
摘要:为工作中需要查看byte[]原始编码,eclipse中debug模式下默认查看byte使用10进制显示,上网查找发现配置为16进制(Hex)显示的办法,记录下来备忘在debug模式试图下,Variables试图窗内 View Menu->Java Preferences... 在打开的对话框中Primative Display Options中选中Display hexadecimal values即可 最后在debug时查看byte值就会显示对应16进制编码内容 http://lj6684.iteye.com/blog/537530
阅读全文
摘要:如何成为一个设计专家?这个过程很难吗?没有设计天份也可以做到吗?这些可能是想从事设计工作的人心中共有疑问。Purin在Pluse中发表了一篇博文《Design Secrets for Engineers》,文中表示他也曾是一个对设计很不灵通的人,后来听取了从事图形设计的朋友的一些建议,几年后,他成功地成为了一名设计专家。他将这些经验总结成为八点并在文中分享。下文是对该博文的编译。如果你是一个像我一样的设计师,你所设计的作品首先要美观。这一点可能会触动你的自尊心,让你以为设计者需要有一种超能力,这种能力足以把整个世界变得更加美好。如果你是一个工程师,你可能想知道这些设计师为什么会有如此大的力量呢
阅读全文
摘要:在访谈中,我们问了这样的问题:那些想法是从哪里来的?把想法转化为现实有多难?开发大型程序是什么感觉?这是一门艺术还是一门科学?是手艺还是技能?同样的事情还能再做一次吗?访谈的目标不是支配、欺骗或操控,而是程序员自由地反思、反省,然后用言语把他自己的编程方法表达出来。世界上的优秀程序员为数众多,他们不会都出现在本书中。所以,这是对当代杰出程序员进行访谈的系列图书的第一本。在本书出版之前,有必要让读者预先了解一下各位大师的时代背景,后续会推出访谈样章,敬请关注!Charles Simonyi1948年9月10日,Charles Simonyi出生于匈牙利布达佩斯。上高中时,Charles开始接触计
阅读全文
摘要:在讨论如何衡量一个操作系统是否成功之前,首先必须明确,怎样的系统软件才算作是一个操作系统?并不是所有的系统软件都是操作系统,我认为,一个完整的操作系统,必须具备下列功能(或特征):1、 基于一种或多种硬件平台(或硬件体系架构),能够成功的启动这个硬件计算机平台,并能够对硬件平台的基本资源进行管理。这里的基本资源,至少包括CPU、内存,以及键盘和显示器等输入输出设备;2、 提供一个人机接口,比如一个字符界面的shell或一个图形交互界面,用户能够通过这个人机接口直接操作硬件设备;3、 提供一个应用编程接口(API),程序员能够采用一种或多种计算机语言设计出针对该操作系统的软件程序,能够完成某些特
阅读全文
摘要:毫无疑问,世界上所有关注开发技术的人都意识到“大数据”对企业商务所蕴含的潜在价值,其目的都在于解决在企业发展过程中各种业务数据增长所带来的痛苦。现实是,许多问题阻碍了大数据技术的发展和实际应用。因为一种成功的技术,需要一些衡量的标准。现在我们可以通过几个基本要素来衡量一下大数据技术,这就是——流处理、并行性、摘要索引和可视化。谁会用到大数据呢?一年前,大数据技术的一些主要用户是大型Web企业,例如Facebook和雅虎,它们需要分析点击流数据。但是今天,“大数据技术已经超出了Web,是要是有大量数据需要处理的企业都有可能用到它。”例如银行、公用事业机构、情报部门等都在搭乘大数据这辆车。实际上,
阅读全文
摘要:H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没
阅读全文
摘要:在eclipse中进行调试时经常出现下面这样的提示Application XXX is waiting for the debugger to attach但是一般情况下,过了一会之后会进入调试状态但是最近两天进行调试的时候模拟器上九一直停留在上面这个提示对话框,一直不能进入调试状态在按照网上说的在dos命令行中进行adb kill-serveradb start-server两个命令操作之后偶尔会有效(进入调试状态)今天下午才发现真正的原因(指的是一直停留在这个提示对话框上,不能进入调试状态)这是由于我打开了两个eclipse进行调试,关掉一个eclipse之后便正常了个人认为这是一个ecl
阅读全文
摘要:JAVA数组的复制是引用传递,而并不是其他语言的值传递。这里介绍java数组复制的4种方式极其问题:第一种方式利用for循环:int[]a={1,2,4,6};intlength=a.length;int[]b=newint[length];for(inti=0;i<length;i++){b[i]=a[i];}第二种方式直接赋值:int[]array1={1,2,4,6};int[]array2=a;这里把array1数组的值复制给array2,如果你这样去运行,就会发现此时两个数组的值是一样的。这是传递的是引用(也就是地址),之后改变其中一个数组另一个也会跟着变化。第三种方式:利用A
阅读全文
摘要:DevExpress控件之GridControl控件(代码篇) 1. 设置数据源: string sql = "select fid,fname from dual";DataTable dt = DALUse.Query(sql).Tables[0];gridControl1.DataSource = dt; *:Daluse是项目数据库连接基类,不用特别理会 2.绑定字段: 这部分工作主要是在Designer中进行的,dev的Designer设计器提供了非常方便的设置方式.我么可以省去敲代码,直接在设计器中就可以完成了.在左边选Columns,添加完列以后,在列的Fie
阅读全文
摘要:本文摘录一篇meego粉丝关于从手机角度讲述meego 2.0的体验这篇文章的主角是N950,也就是N9的开发者版本,仅供开发者测试使用,并不对外发售,N950和N9的不同之处在于: *N950多了一个QWERTY全键盘 *N950的屏幕为4英寸的TFT,N9则是3.9英寸的AMOLED屏幕 *N950使用的是标准的SIM卡,而N9和iPhone4一样必须要剪卡才可以使用 一.外形 外形上,这家伙头部和顶部几乎一模一样,以至于我总会不小心握住手机底部,直到发现没有电源键才发现拿错了方向。同时,我一向不喜欢带键盘的触摸屏手机,所以N950上的QWERTY键盘很遗憾的要在这篇文章里被忽略...
阅读全文
摘要:时过境迁,伴随成长的中国互联网信息安全走过了艰难的十个年头,整个社会运转也已与网络密不可分,网络信息安全已成为经济得以繁荣和可持续增长的基石,信息安全与否已经影响到经济发展以及社会的稳定,甚至国家安全。要实现真正意义上的安全,就要具备相应的安全管理规范,进行自下而上的安全管理。日前,COG(信息安全专业委员会)的发起者之一——李麒(网名liwrml,绿色兵团麒麟站的创建者)接受了CSDN独家采访,并以“专业”的角度为我们解读了现今国内外安全形势现状以及对中国未来信息化安全的展望。李麒 绿色兵团麒麟站的创建者黑色产业链猖獗 黑客正面临失控化“目前国内外的互联网安全形势可以说是非常严峻”,在谈到国
阅读全文
摘要:http://www.wpf123.com/news/?143.html定义 combox绑定类:public class ComboxData{public string Text{ set; get; }public string Value{ set; get; }public override string ToString() { return Text; } }具体绑定:DevExpress.XtraEditors.ComboBoxEdit combox;ComboxData data = new ComboxData();data.Text ="需要显示的文本"
阅读全文
摘要:最近做项目新增光纤线路清查功能模块,思路和算法已经想好了,些代码时候居然在一个控件上纠结了好长的时间,虽然后来搞定了,但是好记性不然烂笔头,还是写下来,以后要用到的时候直接翻就行,帮助文档看得比较纠结,还是自己写的好。往往当时会用了,一段时间没用后再用的时候有要翻帮助文档或网上搜,纠结很久。我们学东西的时候一般不应该花过多精力和时间到控件或框架上,但是做项目要的是结果。记得有次去面试败在机试上,题也简单,CRUD而已,就是不会用控件,浪费了很多时间。1.数据绑定最基本的两个属性:KeyFieldName和ParentFieldName。SELECT OfficeID,OfficeName,Pa
阅读全文
摘要:在进行项目开发过程中、曾遇到过需用到dev系列的treelist进行数据绑定、将方法贴出来希望对有需要的朋友有所帮助. 1 2 3 /// <summary> 4 /// treeList绑定 5 /// </summary> 6 /// <param name="parent">父ID</param> 7 private void TreeListBind(string parent) 8 { 9 treeList1.Nodes.Clear();10 ...
阅读全文
摘要:DevExpress TreeList加载大批量数据的时候绑定数据源 dataTable.注意事项1: 由于一旦绑定了数据源dataTable的些许变化便在TreeList中有所体现, 所以等dataTable完全填充好了之后再绑定数据源.注意事项2:dataTable每行的父节点ID当加载到目前为止,还没有找到那么可能就当成空了, 所以最后treelist呈现就有问题, 所以解决办法有3个, 1: 大范围数据,也就是父节点的数据一定要先于子节点在表中排列.(这个不好控制). 2: 等完全填充完datatable时再重新设置每行的父节点ID. 3:可以边填充边设置, 最后再绑定数据源, 在填充
阅读全文
摘要:首先考虑代码中的字符串比较是否使用到 "==" 符号,该符号在string的比较中非常耗性能,如果存在则需要全部修改成 "Equal()"按照如上修改后一般速度有显著飞跃,如果还是很卡,参照如下方法:Devexrepss Treelist 常用绑定方式有两种:1.直接treeList.DataSource=dt;2.使用AppendNode逐条添加优缺点:1.绑定方便,但是速度很慢,特别表现在最大化最小化和关闭的时候,巨卡无比2.绑定复杂,但是速度很快,推荐使用下面贴出速度较快的第二种参考代码: TreeListNode parentNode = nul
阅读全文
摘要:Eclipse调试时出现Exception Processing async thread queue异常。Problem Reports Fixed88752: Exception processing async thread queue: NullPointerException in ASTInstructionCompiler官方的描述是 https://bugs.eclipse.org/bugs/show_bug.cgi?id=88752在debug视图经常得到'Exception processing async thread queue' 这个消息。当'
阅读全文
摘要:public Student getById(int id) { // TODO Auto-generated method stub return (Student) getSqlMapClientTemplate().queryForList("getStudentById",id); }这是自己写的代码遇到了个错误,很纠结……上网找了好半天最后才发现是自己的函数写错了:queryForList只能是返回一个Arraylist的序列值并不能转化为Student的对象。这里需要用到的是queryForObject函数来返回一个对象Student类。
阅读全文
摘要:本人用的是win7的系统,所以在这里我就专对win7做解释;首先说下Java的环境配置:[计算机]右键的[属性]----->[高级系统设置]----->[高级]中的[环境变量(N)]----->在用户变量中点击[新建]按键,建立一个[变量名]为[classpath],[变量值]为[,;C:\jdk\lib;]设定好后点击确定(在变量值中所要填写的为你的JDK所安装的文件夹目录中,而且最终要对应的文件夹为jdk中的lib)----->再次点击[新建]按键,建立一个[变量名]为[path],[变量值]为[C:\jdk\bin;],设定好后点击确定----->之后再点击
阅读全文
摘要:1、在java中定义一个String str;在这里实际上只是定义了一个引用,并不是对象,如果此时在某处调用了str将会产生错误;安全的做法是在创建一个引用的时候同时进行初始化:String str="Hello World!";2、java中数据存储的地方 (1)寄存器:由于寄存器数量有限,所以系统会根据需要进行分配,而不能由程序员直接控制; (2)堆栈:它位于通用的RAM(随机访问存储器)中,他可以以仅次于寄存器的速度快速分配内存,对象的引用一般存于堆栈中;java系统必须知道存储在堆栈中所有数据的确切生命周期 (3)堆:编译器不需要知道存储在这里的数据的生命周期,ne
阅读全文
摘要:在平时的编程中,经常遇到一个线程要产生数据,而另一个线程要处理产生出来的数据,这其实就是生产者和消费者的关系。生产者在产生数据后可以直接调用消费者处理数据;也可以把数据放在一个缓冲区中,让消费者从缓冲区中取出数据处理,两种方式从调用方式上来说,第一种可是说是同步的,即生产者在生产出数据后要等待消费者消耗掉后才能生产下一个数据,等待时间的长短取决于消费者处理数据的能力;第二种方式是异步的,生产者只管生产数据,然后扔到一个缓冲区内,不管数据是否被立即处理了,消费者则从缓冲区中依次取出数据进行自己节奏的处理。从线程模型角度来说,第一种是单线程的,而第二种则是多线程的。 多线程必须要考虑的一个问题是.
阅读全文
摘要:private static void decodeYUV420SP(int[] rgbBuf, byte[] yuv420sp,int width, int height) {final int frameSize = width * height;if (rgbBuf == null)throw new NullPointerException("buffer 'rgbBuf' is null");if (rgbBuf.length < frameSize * 3)throw new IllegalArgumentException("b
阅读全文
摘要:5 MYSQL数据库管理我们在第二章已经简单介绍了一些MYSQL数据库的基本操作,这一章我们将针对MYSQL数据库管理员详细介绍下MYSQL数据库的常用管理内容。1MYSQL界面管理工具MYSQL的管理工具很多,我自己从网上下载了一个:mysql-gui-tools-noinstall-5.0-r12-win32,是一个不用安装的管理软件,包含四个基本工具:MySQLAdministratorMySQLMigrationToolMySQLQueryBrowserMySQLSystemTrayMonitor这些工具的具体使用都很简单,操作比较灵活,这里就不对这些工具的功能做详细介绍了,如果...
阅读全文
摘要:MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎:MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不
阅读全文
摘要:创建MYSQL索引mysql> create procedure p_test()-> begin-> declare counter int;-> set counter = 1000;-> while counter >= 1 do-> insert into test(id,mc) values(counter,'test');-> set counter = counter - 1;-> end while;-> end;//Query OK, 0 rows affected (0.98 sec)mysql&g
阅读全文
摘要:4 创建用户数据库mysql> CREATE DATABASE MYTEST;Query OK, 1 row affected (0.00 sec)如果想改变MYSQL数据文件的默认路径,我们可以关闭MYSQL实例,修改配置文件”my.cnf”或”my.ini”(WINDOWS系统)中的datadir对应的参数值,然后把MYSQL默认安装的datadir下的内容拷贝到新的数据文件路径下,启动MYSQL实例这样我们再次创建数据库的时候数据文件就放在新的路径下了。mysql> SHOW DATABASES;+--------------------+| Database |+-----
阅读全文
摘要:原文章地址:http://www.itpub.net/thread-788049-1-1.html1 MYSQL安装先下载安装包:mysql-5.0.27-win32.zipmysql-noinstall-6.0.0-alpha-win32.zip下载了2个版本:一个5.0.27安装版;一个6.0.0非安装版。本人测试用的为5.0.27安装版,安装过程不再赘述。各个操作系统平台的安装可以看MYSQL联机文档。2 登录及一些基本操作本章的主要目的是让我们对MYSQL的基础框架有个大概的了解。1 连接与断开MYSQL服务器安装完毕登陆MYSQL(有过一些其他数据库基础的人都应该很容...
阅读全文
摘要:在网上找了点儿资料学习mysql,就照着上面的开始写 让我很纠结的事情发生了。我在写存储过程时,只要打上“;”系统就会提示我错误百思不得其解啊 最后反复的看 查 终于找到了方法:原来是在写存储过程时要在前面加上一句:mysql> DELIMITER //mysql> CREATE PROCEDURE P_WITH_PARA(IN PARA_IN INT,OUT PARA_OUT INT)
阅读全文
摘要:一.final总结 1.final修饰类:表示该类不可继承 final不能修饰interface接口 2.final修饰方法:表示该方法不能被子类覆盖(即子类不能重写父类的final方法,可以继承) final不能修饰构造函数 3.final修饰字段属性:表示属性值第一次初始化后不能被修改 final属性可以直接初始化或在构造函数中初始化 如果属性是直接初始化,则其值不能被其它函数(包括构造函数)修改 4.final修饰函数参数 参数值不能被函数修改 5.final修饰函数中的局部变量 局部变量被第一次初始化后不能被修改 public void hello() { f...
阅读全文
摘要:值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为true时,==不一定为true;一、String中的equals和==1、public class TestString { public static void main(String[] args
阅读全文
摘要:在Java中,byte类型数据在运算之前要转换成int类型数据。比如:byte a=1;byte b=2;byte c;c=a+b; //这样是计算不出c,是错误的c=a+1; //这样也是不能计算c的c=64+1; //为什么这样就能计算c,在Java中这是什么原理啊?运算符对基本类型的影响 当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则: 只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型; 否则,只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型; 否则,只要两
阅读全文
摘要:在上次的操作中只是简单的利用了spring容器中注入dataSource元素来建立数据库的连接,而没有发挥出spring框架的核心作用。这里在继续对spring进行深入的理解:在进行数据库操作时,我们每次都要进行一次链接,一来很费时费力,二来对以后的开发起不到很好的作用。因此这里我们借助spring对JDBC的强大支持利用JDBCTemplate类来对JDBC的控制(调用、执行、查询、更新),JDBCTemplate的操作步骤如下:打开数据库连接。指定在连接上执行的语句。设置要求的参数并执行语句。如需求,可以得到Reslutset,迭代返回结果,接着不管任何异常关闭Reslutset。运行每次
阅读全文
摘要:没有使用spring注入时 我们需要采用的方法就是利用dataSource进行与数据库的连接: DriverManagerDataSource dataSource=new DriverManagerDataSource(); dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mysql"); dataSource.setUser("root"); dataSource.setPa
阅读全文
摘要:鉴于各大网友对于源代码的需求,我把源代码上传到了dbank网盘上了,有需要的可以下载。地址为http://dl.dbank.com/c0vf2uh0uw2010-10-13晚上 更新~ 将之前做过的一个比较实用的在Android实时采集视频,并在PC上显示出采集到的视频的程序,包括PC端和Android端程序,基于Android 1.5 在HTC G3上测试通过。代码在分界线之后。之前网上找了很多资料,没有找到如何截取Android视频流。后来发现在Android的拍照视频预览时就可以截取视频数据。每获得一帧就调用一下接口函数。我的开发平台是Android 1.5,这个程序实现视频流的获取,程
阅读全文
摘要:动态SQL语句1)二元条件元素的属性: prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选) property - 被比较的属性(必选) compareProperty - 另一个用于和前者比较的属性(必选或选择 compareValue) compareValue - 用于比较的值(必选或选择 compareProperty) <isEqual> 比较属性值和静态值或另一个属性值是否相等。 <isNotEqual> 比较属性值和静态值或另一个属性值是否不相等。<isGreaterThan> 比较属性值是否大于静态值或另一个属性值。
阅读全文
摘要:再倒入spring的jar包时注意:下面的3个包都要导入,否则就会出现错误。原因没有搞懂还有在Myeclipes下导入Hibernate工程时选择copy的选项,好像是因为spring包与Hibernate包冲突造成的:Myeclipes添加spring工程和Hibernate工程时先后顺序没有什么要求,我试过了只是如果先导入Hibernate工程可以按照导航来做,可是如果先导入spring在需要手动的添加sessionFactoryid:sessionFactory就行了其实熟练了过程以后知道原理了 先后顺序都一样得心应手。
阅读全文
摘要:构造注入就是指在构造事例时,已经为其完成了依赖关系的初始化,因此在现实类中必须要有类的构造器才行,这里我们构造了personserviceImpl的构造器:public class PersonServiceImpl implements PersonService { private PersonDao personDao; private String name; public PersonServiceImpl(PersonDao personDao, String name) { this.personDao = personDao; this.name = name; }...
阅读全文
摘要:设置注入是指IOC容器使用属性的setter方法来注入被依赖的实例,此方法很直观;这里有两层结构service和action service层的实现类personserviceImpl部分代码如下: private PersonAction personAction; /** * @return the personAction */ public PersonAction getPersonAction() { return personAction; } /** * @param personAction the personAction to set */ public vo...
阅读全文
摘要:<typeAlias>元素让您为一个通常较长的、全限定类名指定一个较短的别名。例如:<!-- 其实就是将bean的替换成一个短的名字 --><typeAlias alias="Student" type="ncut.com.bean.Student"/><parameterMap>负责将javabean与sql语句进行关联 例如:<parameterMap class="com.isbn.bean.AlbumDetailInfo" id="albumDetailInfo&
阅读全文
摘要:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfigPUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN""http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig><!-- 1. cacheModelsEnabled 是否启动sqlMapClient上的缓存机制;2. enhancementE
阅读全文