西藏

chrome浏览器的世界之窗的皮肤

一直比较喜欢世界之窗的皮肤,现在虽然转移使用了谷歌浏览器,但还保留着世界之窗的皮肤,作为纪念,也希望世界之窗浏览器能继续发展下去。下载:http://www.everbox.com/f/ooqnonGNa4vTLAjOJhI1CDzbsT目前网盘使用的盛大的;115的很好用,缺点是有时间限制。dbank的广告多的一大堆,更多时候还需要登陆,才能下载。新浪的v盘,也是需要登陆才可以下载的。百度网盘不能指定单一文件共享,暂时还是盛大的everbox好用一些。

代码优化实例-Java用JDBC批处理插入

代码的使用性很强的啊! 让我们看看如何使用JDBC API在Java中执行批量插入。虽然你可能已经知道,但我会尽力解释基础到复杂的场景。在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据。此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作。首先,使用Java JDBC基本的API批量插入数据到数据库中。Simple Batch - 简单批处理我把它叫做简单批处理。要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能。想想一下下面的代码:Bad Code[java]String [] queries = { insert into employee (name, city, phone) values ('A', 'X', '123'), insert into employee (name, city, phone) values ('B', 'Y', '234'), insert into employee (name, city, phone) values ('C', 'Z', '345'), }; Connection connection = new getConnection(); Statement statemenet = connection.createStatement(); for (String query : queries) { statemenet.execute(query); } statemenet.close(); connection.close(); [/java]这是糟糕的代码。它单独执行每个查询,每个INSERT语句的都提交一次数据库。考虑一下,如果你要插入1000条记录呢?这是不是一个好主意。 下面是执行批量插入的基本代码。来看看:Good Code[java] Connection connection = new getConnection(); Statement statemenet = connection.createStatement(); for (String query : queries) { statemenet.addBatch(query); } statemenet.executeBatch(); statemenet.close(); connection.close();[/java]请注意我们如何使用addBatch()方法,而不是直接执行查询。然后,加入所有的查询,我们使用statement.executeBatch()方法一次执行他们。没有什么花哨,只是一个简单的批量插入。 请注意,我们已经从一个String数组构建了查询。现在,你可能会想,使其动态化。例如:[java] import java.sql.Connection; import java.sql.Statement; //... Connection connection = new getConnection(); Statement statemenet = connection.createStatement(); for (Employee employee: employees) { String query = "insert into employee (name, city) values(' + employee.getName() + ',' + employee.getCity + '); statemenet.addBatch(query); } statemenet.executeBatch(); statemenet.close(); connection.close();[/java]请注意我们是如何从Employee对象中的数据动态创建查询并在批处理中添加,插入一气呵成。完美!是不是?等等……你必须思考什么关于SQL注入?这样动态创建的查询SQL注入是很容易的。并且每个插入查询每次都被编译。 为什么不使用PreparedStatement而不是简单的声明。是的,这是个解决方案。下面是SQL注入安全批处理。SQL Injection Safe Batch - SQL注入安全批处理思考一下下面代码:[java] import java.sql.Connection;import java.sql.PreparedStatement;//...String sql = "insert into employee (name, city, phone) values (?, ?, ?);;Connection connection = new getConnection();PreparedStatement…

工作遇到的问题分析【1】

计划是把工作中遇到的一些典型的问题,做个问题总结,之前遇到的,找时间来写。先把今天遇到的一个问题分析下问题场景:     是项目中有一块的程序数据处理变慢了,而且,现象是中午有变慢,下午的时候,就会趋于正常。查看日志也没有发现出现错误。过程分析:    程序流程:          问题分析:     现象是表2的数据插入很慢。     分析问题有两点可能出问题, 一个是在读取q1,做数据封装,数据逻辑处理给变慢了;     另外一个是在做删除表1的时候,删除的慢了;          最后分析的是排除了第一种原因,因为这一步简单,在实际中也就是服务器进行一下交互,服务器和网关都是足够健壮的。     定位在第二种情况,原因是删除表1 和 插入表2是个串行的操作。表1每天中午都会做大量的插入操作,在程序流程处理中也同时在做更新、删除的操作,对表的压力巨大,当删除操作变慢了,同样就影响了对表2的插入,导致插入表2的操作变慢,这样的后果,q2的队列存储容量也长时间处于饱和状态,存入Q2也随之延后,读取Q1,封装数据的逻辑处理也延后了,当然Q1的容量也饱和了,第一步的操作也变慢了。     最终的结果就是整个数据处理都变慢了。     解决办法:      a、将表1的删除和表2的插入进行异步操作      b、对表1的不做删除,将表1的删除做记录id的操作,每天晚上定时进行删除。

dojo中的懒加载和提前加载

提前加载:var pane= new dijit.layout.ContentPane({  href:".html"});懒加载:var pane= new dijit.layout.ContentPane({});pane.set("href",".html")在用法上来说,两种的使用是没有区别的,但我在实际使用中,使用提前加载不能把*.html加载进去,而懒加载可以。而且推荐使用懒记载的方式,懒加载在效率上面也要比提前加载好一些。

利用set去除list中的重复值

import java.util.ArrayList;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;public class TestSet { public static void main(String[] args) { List list = new ArrayList(); list.add("zhaopeng"); list.add("zhaopeng"); list.add("zhaopeng"); list.add("momo"); list.add("momo"); list.add("momo"); for (Iterator iterator = list.iterator(); iterator.hasNext();) { String object = (String) iterator.next(); System.err.println(object); } System.err.println("----------------------"); List newList = TestSet.removeList(list); for (Iterator iterator = newList.iterator(); iterator.hasNext();) { String object = (String) iterator.next(); System.err.println(object); } } public static List removeList(List list) { Set someList = new HashSet(list); List newList = new ArrayList(); for (Iterator iterator = someList.iterator(); iterator.hasNext();) { Object object = (Object) iterator.next(); newList.add(object); } return newList; }}

祝爷爷寿比南山

祝爷爷寿比南山爷爷刚刚过寿,先祝爷爷寿比南山啊!身体健康,高高兴兴就好。我的弟弟妹妹们都回家了,就我在外面。看着爷爷过寿的相片,一家人团团圆圆的,真是幸福啊!

一个解放的日子

一个解放的日子

很有心境的话

昼闲人寂,听数声鸟语悠扬,不觉耳根尽彻;夜静天高,看一片云光舒卷,顿令眼界俱空。

为什么要买好电脑

我们都喜欢买电脑,我也喜欢,但我的要求也就是够用就行。哈哈!

虾米一下

虾米网是我喜欢的是一个在线听歌的网址,最近要改版了,我也来虾米一下。新版的虾米我想回更加好用,更加的贴心的!不过虾米的搜索使用起来还不是很好用,比如我们输入万晓利的拼音"wanxiaoli",他就什么也不能搜索到了!现在应该更能支持那种拼音的搜索,喜欢搜索功能更加的好用的啊!