- 浏览: 36936 次
- 性别:
- 来自: 杭州
最新评论
文章列表
初始化几十万数据库来的时候,我们一般用多线程访问数据库,多线程初始化。
比如map对类似手机归属地的缓存映射,一开始就是用的hashMAP,发现在初始30万的数据一直停在那里过了半小时还没完,最先以为是查询库的问题,毕竟量多,后来把map的put操作去掉后,居然只用了20秒(机器差),后来发现就是hashmap导至死循环。具体原因,百度查。
但是可以用ConcurrentHashMap解决问题。hashtable会锁住整个map结构,性能稍微差。所以没采用。还有如果知道MAP的长度的情况下,最好将其他初始化一个长度,因load系数与map长度的一个关系值(默认是0.75),初始100,那它可以装 ...
java 对oracle 批量处理
- 博客分类:
- java
当通过springjdbcTemplate.batchUpdate 执行批量处理时,一旦其他一条出现错误,则是不会有返回值的,会抛出BatchUpdateException,异常,但是我们这个异常获取成功数量
spring 的bean默认是单实例,但是要保证多线程来访问,底层技术采用的是threadlocal来处理生成当前线程的一个bean.同理与事务相关的bean==jdbctemplate也是一样的。这样的话,问题就来了。
比如你在一个service方法,调用多个dao,或是service,这些都可以在同一个事务当中。
但是如果你开始多线程,在每个线程做数据库操作.每个线程的事务就是独立的。哪怕是你传入每个线程的都是同一个jdbctemplate或是dao,也会是事务独立。因为只要开启一个新线程,那么这个事务bean在新的事务当中,一定是通过threadlocal产生了一个副本来操作。所以通过th ...
今天找了半天的毛病 关于java的一个写入记事本的小程序 封装成jar包后 因为我的机器上有运行环境 所以双击 就能在jar包的所在位置执行 并且生成了一个记事本 但是在控制台里用java -jar 执行的时候 就没有生成记事本 ...
当一个java程序打包成jar文件时,对里面文件的操作:
例如文件test.xml在根目录下的file下面 /file/test.xml
当把它打成jar包后,获取这个文件的目录应该这样获取.
A代表某个类。
A.class.getResource(“/file/test.xml”)
这种写法是没错的,在eclipse中是可以执行的,能找到文件。
但是打成JAR后就不行了。为什么了?
因为当打成JAR包后,JAR包中的文件都称为resource。不称为文件。
所以不能用那种方式才操作。而只能用
InputStream is = this.getClass().getResourceAsStre ...
select sid,serial#,username,logon_time from v$session where username='SBGL' order by logon_time desc
alter system kill session '95,30531';
drop user 'SBGL' cascade;
select * FROM v$session
select * from tab_organization start with strupcode is null connect by prior strcode=strupcode order siblings by strcode asc
.....start with .A... connect by prior ...B ..order siblings .C
注意:tab_organization 中的strupcode是父节点的编码,这是一个关联。
A:表示顶级节点的条件,这里是 stru ...
对于checkbox ,要把它设置为选中或不选中状态,是先获取这个对象,如box,再box.setValue(true or false);这样的话获取这个box的值时,用box.value来获取,如果说用box.getValue()来获取得到的是true or false;
所以getValue()得到的是check的是否选中,是true or false;
而要获取这个checkbox的值,则是用box.value。
在用form提交时,combo的值,应该加上hiddenName='name',这样的话,在后端才能取到直正的确value, 要不然取到的是display值。
同时 ...
简单工厂模式及实例
简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的实例说明简单工厂及其优点。
比如有个国家的运动员协会,他们是负责登记与注册职业运动员的( ...
http://www.ibm.com/developerworks/cn/opensource/os-xadisk/
Apache的commons-transaction
http://www.cnblogs.com/codr/archive/2009/06/10/1858992.html
Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形式存放在文件中,使得规则的变更不需要修正代码重启机器就可以立即在线上环境生效。
本文所使用的demo已上传 http://download.csdn.net/source/3002213
1、Drools语法
开始语法之前首先要了解一下drools的基本工作过程,通常而言我们使用一个接口来做事情,首先要穿进去参数,其次要获取到接口的实现执行完毕后的结果,而drools也是一样的,我们需要传递进去数据,用于规则的检查,调用外部接口,同时还可能需要获取到规则执行完毕后得到的结果。在drool ...
在用struts2时 ,前台向提交数据时,如果说是提交的对象过来,则struts2会通过自身的封装特性,将这个封装成一个对象;这个对象在没有提交事务前,如果你马上又从数据库把这个查询出来,实际上这两个对象是同一个对象,都是持久态的,这个时个你要是做update,会出错。
还有就是我们在用hibernate时,从数据库中查询出来一个对象后,对这个对象做set方法操作,则它会去做update操作,这个我还是第一遇到。
getClass().getClassLoader().getResourceAsStream("jdbc.properties")
这个方法,是用来读取一个文件的,从用来加载类的搜索路径打开具有指定名称的资源,以读取该资源,用这种方法读取,则这个文件必须要.class文件的根目录下。
@JSON(serialize = false)
public String getSystem(){
System.out.println("===================================");
return "success";
}
上面这个方法是在action中定义的一个方法,如果说不加方法上面的一句,则在每次调用这个方法所在的action的任何一个方法时,这个getSystem方法,都会被调用一次,因struts2是一个多实例的,每调用一次action,这个action都会被序列化一次,都会执行get开头的方法 ...
一、
private static void test(StringBuffer id,int i){
if(i>0){
id=id.append("aa;");
i--;
test(id,i);
}
}
public static void main(String[] args) {
StringBuffer id=new StringBuffer("ysa");
test(id,8);
System.out.println(id.toString());
}
二、
private static void test(String id, ...