`
文章列表
看到一个关于Java锁机制Synchronized很贴切的比喻, 非常便于理解锁的工作方式. 打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。 在此我们先来明确一下我们的前提条件。该对象至少有一个synchronized方法,否则这个key还有啥意义。当然也就不会有我们的这个主题了。 一个 ...
最近有个需求, 当DB压力过大时获取Connction的时间过慢长时间不返回的话, 就不连接DB了, 研究了好久,DataSource里面的setLoginTimeOut 根本没法用, 刚开始一直纠结在大google搜索"java get connection 超时"答案上, 但始终找不到答案, 偶然尝试了下"java 设置超时" 问题就迎刃而解了. java早已经给我们提供了解决方案。jdk1.5自带的并发库中Future类就能满足这个需求。Future类中重要方法包括get()和cancel()。get()获取数据对象,如果数据没有加载,就会阻塞直到 ...
今天在用smartgwt的datasource的时候,debug模式一直遇到这个错误, 刚开始没留心看, 后来才注意到如果要用datasource一定要有返回值的, 查看阿三写的代码发型spring controller层没有任何返回, 于是加上对应返回后问题遍不再存在了! the default RestDataSource requires some tags in it, even if there are no results. or it will get error amessage like this - 17:39:30.320 [ERROR] [...] 17:3 ...
1. Querying for Single Row Here’s two ways to show you how to query or extract a single row from database, and convert it into a model class. 1.1 Custom RowMapper In general, It’s always recommend to implement the RowMapper interface to create a custom RowMapper to suit your needs. package com. ...
弄hibernate时,想显示sql语句,可以设置show_sql为true来达到这个目的,但是参数值全是像PreparedStatement一样,用?来代替的。 用p6spy可以达到显示的那些参数原值的目的,但可读性差。可以利用SQL Profiler来处理这个事情。 p6spy还可以用来记录web app访问DB的sql总数,从而更好的帮我们分析项目中的隐藏问题. p6spy: http://www.p6spy.com SQL Profile: http://www.jahia.net/jahia/page597.html p6spy安装: * 将p6spy.jar放到WEB-INF/li ...
前言:   本文档将讲解一下,如何借助Spring Module项目,实现配置声明性缓存功能。 说明:   本档的配置经过本人测试,都能正确运行。   运行环境: Jdk6.0, Spring-2.5, Spring-modules-0.9, ehcache-1.5.0.jar, cglib-nodep-2.1_3.jar backport-util-concurrent.jar oro-2.0.8.jar 首先创建一个PortalMenuService服务类,本文将对其所有的以find* 方式命令的方法,进行缓存处理。当调用update* 命令时,需要其删除缓存以更做数据的更 ...
Oracle 序列(Sequence)主要用于生成流水号,Oracle EBS系统中是经常用到的。但是,有时需要修改序列初始值(START WITH)时,好多人凭感觉认为:Alter Sequence SequenceName Start With N。事实上,在Oracle Db中,修改序列没有这样的语法。没有这样的语法情况怎么办,有二种方法可以完成         1.先删除序列,然后重新创建。不过这不是当前要讲的重点。这个方法比较方便。         2.通过Increment By来实现修改初始值。             例如:若序列名称是SeqTest2010_S,初始值是1 ...
1.    事务介绍: 1.1.       事务的定义: 事务就是指作为单个逻辑工作单元执行的一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。 1.2.       事务具有ACID属性: o 原子性(Atomic):事务由一个或多个行为绑在一起组成,好像是一个单独的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。 o 一致性(Consistent):一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。 o 隔离性(Isolated):事务应该允许多个用户操作同一个数据,一个用户的操作不会和其他用 ...
1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table table_name_new as select * from table_name_old where 1=2; 或者: create table table_name_new like table_name_old 3. 只复制表数据: 如果两个表结构一样: insert into table_name_new select * from table_name_old ...
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) {     Map.Entry entry = (Map.Entry) iter.next();     Object key = entry.getKey();     Object val = entry.getValue(); } 效率高,以后一定要使用此种方式! 第二种: Map map = new HashMap(); Iterator iter = map.keySet().iterator() ...
O_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:             yy two digits 两位年                显示值:07         yyy three digits 三位年                显示值:007         yyyy four digits 四位年                显示值:2007                    Month:             mm    number     两位月              显示值:11         ...
我就是一个小新手+小菜鸟,正在发奋学习linux,初有心得遂决定记录下来,也许对有些人来说我写的都太浅显,但是对初学者来说绝对是有用的,可以让你少走很多弯路,况且我会由浅入深的,沿着我的足迹一起学习吧,加油!       本来想先写系统安装,然后环境配置,这样一步步下来。但最后决定把此篇文章写在前面,也是给大家传递一个信息,学习linux要先会操作此系统,你连用都不会用,何谈安装、配置、维护呢。不多解释,自己去体会吧,下面来讲命令: 1、whereis (1) 功能说明:在特定目录中查找符合条件的文件(包括二进制文件、手册页文件、源码文件)。 (2) 玲珑说话:对于新手来说这个命令很有用,当 ...
1,循环递归删除目录下的.svn文件夹 find . -type d -name ".svn" | xargs sudo rm -rf 2,若一个目录中小文件过多,直接用rm报错,可以每次取十个循环删除 ls | xargs -n 10 rm -fr 3,分析log:以“&”符分隔,打印出第一列,排序,除重 awk -F '&' '{print $1}' | sort | uniq 4, Remove SVN directories $ find . -name '.svn' -exec \rm -fr {} \; -print; 5, Remove ...
用JUNIT4,GroboUtils进行多线程测试 多线程编程和测试一直是比较难搞的事情,特别是多线程测试。只用充分的测试,才可以发现多线程编码的潜在BUG。下面就介绍一下我自己在测试多线程并发程序时用的一个比较简单好用的测试 ...
今天出现了这个问题,Eclipse Ctrl+Shift+T 失效了,试图重启几次之后无效。 查阅eclipse新闻组消息后,Window-->Customize Perspective,弹出的窗口里,commands里,找到Java Navigate 发现被勾掉了,重新勾选,一切正常。
Global site tag (gtag.js) - Google Analytics