摘要: 记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。 三、尤其关键的是,当一个线程访问object的一个synchronized(this 阅读全文
posted @ 2014-03-06 16:40 mano 阅读(544) 评论(1) 推荐(0)
摘要: 相比于Statement,PreparedStatement可以动态改变sql语句的参数,所以应用更灵活。代码和上一篇的差不多,不过这里我特意感受了一下MyEclipse的调试功能,感觉还行。 improt ……;public class Test2 {//连接本地数据库的两种写法 // private static final String URL="jdbc:sqlserver://localhost:1433;DatabaseName=TestDB"; // private static final String URL="jdbc:sqlserver:// 阅读全文
posted @ 2014-03-06 14:06 mano 阅读(201) 评论(0) 推荐(0)
摘要: //mysql脚本create table deletetest(id bigint primary key auto_increment,name varchar(12) not null,age int);insert into deletetest(name,age) values ('admin',20);insert into deletetest(name,age) values ('centre',19);insert into deletetest(name,age) select name,age from deletetest;------- 阅读全文
posted @ 2014-03-06 12:13 mano 阅读(307) 评论(0) 推荐(0)
摘要: 昨天在项目中需要对日志的查询结果进行导出功能。日志导出功能的实现是这样的,输入查询条件,然后对查询结果进行导出。由于日志数据量比较大。多的时候,有上亿条记录。之前的解决方案都是多次查询,然后使用limit 限制每次查询的条数。然后导出。这样的结果是效率比较低效。那么能不能一次查询就把所有结果倒出来了?于是我就使用一次查询,不使用limit分页。结果出现java.lang.OutOfMemoryError: Java heap space问题。看来是DB服务器端将一次将查询到的结果集全部发送到Java端保存在内存中。由于结果集比较大,所以出现OOM问题。首先我想到的是游标功能。那么是不是可以使用 阅读全文
posted @ 2014-03-06 10:46 mano 阅读(7013) 评论(1) 推荐(0)