﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-banxitan</title><link>http://www.blogjava.net/banxitan/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2026 08:55:32 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2026 08:55:32 GMT</pubDate><ttl>60</ttl><item><title>Android  Activity MainThread 中不能执行http通信解决办法</title><link>http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Thu, 11 Jul 2013 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/401439.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/401439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/401439.html</trackback:ping><description><![CDATA[
 
今天在做离线文件传输时。用HTTP上传文件。程序一运行　报如下的错误<br /><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: rgb(0, 0, 0);">android.os.NetworkOnMainThreadException  </span></div><br />原因是Google从3开始，强制默认禁止UI主线程发起通信请求　<br /><br />解决办法：<strong>&nbsp;<br /><br />把通信的代码转移到子线程里去做， 比较靠谱的是new一个AyncTask，在里面做通信</strong><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有几个细节性的问题是，</strong></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第一， 一般原有通信的代码都是共通的API， 被许多个Activity调用， 一个良好的修改方法是在共通API里面new AyncTask</strong></p><p><strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二， 通信的API一般来说都是同步的， 你通信，然后画面主线程需要堵塞住，等待API的通信结果，再决定下面的业务逻辑的走向。</strong></p><p><strong>所以，这块可以采取 AyncTask.get()， 让主线程堵塞，直到通信结束。 当然，如果你需要将通信异步的话， 可以用Handler机制来解决<br /><br /><br />具体调用代码如下：HTTP异</strong></p><strong><p>步请求<br /><br /></p><div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: rgb(0, 0, 255);">package</span><span style="color: rgb(0, 0, 0);"> com.qqtech.ucstar.utils;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.io.File;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.io.IOException;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> java.nio.charset.Charset;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.HttpResponse;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.client.HttpClient;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.client.methods.HttpPost;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.entity.mime.HttpMultipartMode;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.entity.mime.MultipartEntity;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.entity.mime.content.FileBody;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> org.apache.http.impl.client.DefaultHttpClient;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: rgb(0, 0, 255);">import</span><span style="color: rgb(0, 0, 0);"> android.os.AsyncTask;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_561_1728_Open_Image" onclick="this.style.display='none'; Codehighlighter1_561_1728_Open_Text.style.display='none'; Codehighlighter1_561_1728_Closed_Image.style.display='inline'; Codehighlighter1_561_1728_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none;" id="Codehighlighter1_561_1728_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_561_1728_Closed_Text.style.display='none'; Codehighlighter1_561_1728_Open_Image.style.display='inline'; Codehighlighter1_561_1728_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> HttpReqTask </span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);"> AsyncTask</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">Object, Object, HttpResponse</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);"> </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_561_1728_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_561_1728_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />    @Override<br /><img id="Codehighlighter1_630_1725_Open_Image" onclick="this.style.display='none'; Codehighlighter1_630_1725_Open_Text.style.display='none'; Codehighlighter1_630_1725_Closed_Image.style.display='inline'; Codehighlighter1_630_1725_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_630_1725_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_630_1725_Closed_Text.style.display='none'; Codehighlighter1_630_1725_Open_Image.style.display='inline'; Codehighlighter1_630_1725_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">    </span><span style="color: rgb(0, 0, 255);">protected</span><span style="color: rgb(0, 0, 0);"> HttpResponse doInBackground(Object<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /> arg0) </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_630_1725_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_630_1725_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        String fileUploadUrl </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (String) arg0[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        String streamid </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (String) arg0[</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        File file </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> (File) arg0[</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">boolean paramBoolean = Boolean.parseBoolean((String) arg0[3]);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">String paramString3 = (String) arg0[4];</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">        HttpClient localHttpClient </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DefaultHttpClient();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">String str1 = "fileName";</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">        File localFile </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> file;<br /><img id="Codehighlighter1_971_1077_Open_Image" onclick="this.style.display='none'; Codehighlighter1_971_1077_Open_Text.style.display='none'; Codehighlighter1_971_1077_Closed_Image.style.display='inline'; Codehighlighter1_971_1077_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_971_1077_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_971_1077_Closed_Text.style.display='none'; Codehighlighter1_971_1077_Open_Image.style.display='inline'; Codehighlighter1_971_1077_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_971_1077_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_971_1077_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> ((localFile </span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(0, 0, 0);">||</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 0);">!</span><span style="color: rgb(0, 0, 0);">localFile.exists()))<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />                </span><span style="color: rgb(0, 0, 255);">throw</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> IOException(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">文件不存在:</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);"> localFile);<br /><img id="Codehighlighter1_1102_1131_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1102_1131_Open_Text.style.display='none'; Codehighlighter1_1102_1131_Closed_Image.style.display='inline'; Codehighlighter1_1102_1131_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1102_1131_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1102_1131_Closed_Text.style.display='none'; Codehighlighter1_1102_1131_Open_Image.style.display='inline'; Codehighlighter1_1102_1131_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        }</span></span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (IOException e1) </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1102_1131_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1102_1131_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            e1.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />        }</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        HttpPost localPostMethod </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> HttpPost(fileUploadUrl</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">?streamid=</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">streamid</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&amp;fileencode=UTF-8</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);</span><span style="color: rgb(0, 128, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: rgb(0, 0, 0);">        MultipartEntity reqEntity </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">, Charset.forName(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">UTF-8</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">));<br /><img id="Codehighlighter1_1450_1657_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1450_1657_Open_Text.style.display='none'; Codehighlighter1_1450_1657_Closed_Image.style.display='inline'; Codehighlighter1_1450_1657_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1450_1657_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1450_1657_Closed_Text.style.display='none'; Codehighlighter1_1450_1657_Open_Image.style.display='inline'; Codehighlighter1_1450_1657_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        </span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);"> </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1450_1657_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1450_1657_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            FileBody bin </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> FileBody(file);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            reqEntity.addPart(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">file</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, bin);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            localPostMethod.setEntity(reqEntity);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            HttpResponse response </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> localHttpClient.execute(localPostMethod);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> response;<br /><img id="Codehighlighter1_1679_1707_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1679_1707_Open_Text.style.display='none'; Codehighlighter1_1679_1707_Closed_Image.style.display='inline'; Codehighlighter1_1679_1707_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none;" id="Codehighlighter1_1679_1707_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1679_1707_Closed_Text.style.display='none'; Codehighlighter1_1679_1707_Open_Image.style.display='inline'; Codehighlighter1_1679_1707_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">        }</span></span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);"> (Exception e) </span><span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_1679_1707_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1679_1707_Open_Text"><span style="color: rgb(0, 0, 0);">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />            e.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />        }</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />        </span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />    }</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: rgb(0, 0, 0);"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div></strong><br /><br />调用代码如下：<br /><br /><br />Object[] param = new Object[5];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[0] = answer.getUploadURL();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[1] = answer.getStreamid();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[2] = new File(answer.getFileURL());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[3] = "false";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;param[4] = "";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AsyncTask res = new HttpReqTask().execute(param);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpResponse rep = null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rep = (HttpResponse) res.get();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (rep.getStatusLine().getStatusCode() == 200) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("文件上传成功");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("文件上传失败");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br /><br /><br /><img src ="http://www.blogjava.net/banxitan/aggbug/401439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-07-11 10:51 <a href="http://www.blogjava.net/banxitan/archive/2013/07/11/401439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修改模拟器DNS方法</title><link>http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 04 Jun 2013 12:24:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/400196.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/400196.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/400196.html</trackback:ping><description><![CDATA[<div>今天在做手机终端开发时，发现连上域名服务器老是连不上，而直接用ＩＰ连接是ＯＫ的，初步怀凝是ＤＮＳ问题引起来，经查相关的资料，现记录如下：<br /><br />Android模拟器默认的地址是10.0.2.3，默认的DNS也是10.0.2.3，而一般电脑的IP都是192.168.1.100之类的，不在同一个网段。所以就会出现电脑可以上网但是模拟器不能上网的情况。其实设置方法很简单，只要把模拟器的默认DNS设置成电脑的DNS地址即可。</div><div></div><div>第一步：用系统的命令进入Android开发包的tools目录</div><div></div><div>&nbsp;cd X:\...\android-sdk-windows\tool</div><div></div><div>第二布：使用adb的shell，确认系统的各项属性</div><div></div><div>adb shell</div><div></div><div>getprop&nbsp;</div><div></div><div>getprop会列出系统当前的各项属性</div><div></div><div>第三步：得到模拟器的DNS地址</div><div></div><div>在结果里可以看到：</div><div></div><div>[net.dns1]: [10.0.2.3]</div><div>[net.dns2]: [10.0.2.4]</div><div>[net.dns3]: [10.0.2.5]</div><div>[net.dns4]: [10.0.2.6]</div><div></div><div>第四步：把dns改成我们自己的DNS</div><div></div><div>setprop net.dns1 192.168.1.1</div><img src ="http://www.blogjava.net/banxitan/aggbug/400196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-06-04 20:24 <a href="http://www.blogjava.net/banxitan/archive/2013/06/04/400196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA 连接 ORCLE RAC连接URL串</title><link>http://www.blogjava.net/banxitan/archive/2013/05/21/399567.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 21 May 2013 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/05/21/399567.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/399567.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/05/21/399567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/399567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/399567.html</trackback:ping><description><![CDATA[
 
连接的URL串<br /><p><span style="color: rgb(255, 0, 0);">jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=vip1)(PORT</span></p><p><span style="color: rgb(255, 0, 0);">=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=vip2)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=</span></p><p><span style="color: rgb(255, 0, 0);">on))(CONNECT_DATA=(SERVICE_NAME=gs))) </span></p><br /><img src ="http://www.blogjava.net/banxitan/aggbug/399567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-05-21 16:48 <a href="http://www.blogjava.net/banxitan/archive/2013/05/21/399567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oralce 监听器启动</title><link>http://www.blogjava.net/banxitan/archive/2013/05/11/399145.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Sat, 11 May 2013 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/05/11/399145.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/399145.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/05/11/399145.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/399145.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/399145.html</trackback:ping><description><![CDATA[<br />啟動&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lsnrctl start<br />狀態&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lsnrctl status<br />關閉&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lsnrctl&nbsp; stop<img src ="http://www.blogjava.net/banxitan/aggbug/399145.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-05-11 14:47 <a href="http://www.blogjava.net/banxitan/archive/2013/05/11/399145.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 导出、导入某用户所有数据（包括表、视图、存储过程...）</title><link>http://www.blogjava.net/banxitan/archive/2013/05/11/399134.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Sat, 11 May 2013 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/05/11/399134.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/399134.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/05/11/399134.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/399134.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/399134.html</trackback:ping><description><![CDATA[<p><br /><span style="color: red"><strong>导出命令：exp </strong></span>用户名/密码@数据库&nbsp;owner=用户名&nbsp;file=文件存储路径（如：F:\abcd.dmp）<br /></p>
<p>测试截图：exp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#90;&#77;&#47;&#115;&#113;&#108;&#49;&#50;&#51;&#64;&#79;&#82;&#67;&#76;"><font color="#78afd3">ZM/sql123@ORCL</font></a>&nbsp;owner=ZM file=F\abcd.dmp<br /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/banxitan/导出.png" width="681" height="744" /><br /><br /><br /></p>
<p><span style="color: red"><strong>导入命令：</strong></span>imp 用户名<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#117;&#47;&#109;&#121;&#99;&#117;&#64;&#100;&#98;"><font color="#78afd3">/密码@数据库</font></a> fromuser=用户名 touser=用户名 file=d:\cu.dmp ignore=y</p>
<p>&nbsp;imp:命令类型 &nbsp;</p>
<p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#117;&#47;&#109;&#121;&#99;&#117;&#64;&#100;&#98;"><font color="#78afd3">cu/mycu@db</font></a>:导入的数据库登陆(用户名/密码@数据库) &nbsp;</p>
<p>fromuser:文件的指定用户</p>
<p>&nbsp;touser：指定导入到当前登录的数据库某个用户 &nbsp;</p>
<p>file:需要导入的数据文件 &nbsp;</p>
<p>ignore:是否忽略创建错误</p>
<p>&nbsp;</p>
<p>测试截图：<br /><br />imp <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#90;&#77;&#47;&#115;&#113;&#108;&#49;&#50;&#51;&#64;&#79;&#82;&#67;&#76;"><font color="#78afd3">ZM/sql123@ORCL</font></a> fromuser=ZM touser=SZZM file=F:\test.dmp ignore=y<br /><br /></p>
<p><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/banxitan/导入.png" /><br /><br /></p><br /><br /><img src ="http://www.blogjava.net/banxitan/aggbug/399134.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-05-11 09:59 <a href="http://www.blogjava.net/banxitan/archive/2013/05/11/399134.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux环境下的rmi常见问题</title><link>http://www.blogjava.net/banxitan/archive/2013/05/08/399020.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Wed, 08 May 2013 12:26:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/05/08/399020.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/399020.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/05/08/399020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/399020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/399020.html</trackback:ping><description><![CDATA[<p><strong style="color: #ff0000"><em>linux环境下的rmi常见问题</em></strong></p>
<p>问题一：RMI服务提供程序运行在Windows操作系统下，RMI服务可以正常访问，但将RMI服务提供程序部署到Linux操作系统下后，RMI服务无法访问，提示</p>
<p>org.springframework.remoting.RemoteConnectFailureException: </p>
<p>Cannot connect to remote service [rmi://192.168.0.106:1199/ItemRetag]; nested exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; &#8230;&#8230;&nbsp;&nbsp;&nbsp; <br />&nbsp;解决办法：在加载RMI服务之前将当前服务器的IP指定给hostName，如 System.setProperty("java.rmi.server.hostname", "192.168.100.7");或者修改/etc/hosts文件，在这个文件中加 192.168.100.54&nbsp; testlinux1 localhost.localdomain localhost 就行，或者将/etc/hosts文件中默认的127.0.0.1改成当前机器的IP即可！<br /><br /></p>
<p>问题二：java.rmi.server.ExportException: internal error: ObjID already in use Caused by: java.rmi.server.ExportException: internal error: ObjID already in use&#8230;&#8230; <br /><br /></p>
<p>出现这种问题及有可能是/etc/hosts文件中指定的IP并不是当前服务器的真实IP，RMI在初始化时注册服务失败。</p>
<p>通过System.out.println(InetAddress.getLocalHost().toString());查看当前主机的IP是否为真实IP，如显示为SIMBANK/220.250.64.24，而真实IP为192.168.1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>解决办法：修改/etc/hosts文件中错误的IP即可，将：</p>
<p>220.250.64.24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIMBANK<br />修改为</p>
<p>192.168.1.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIMBANK<br /></p><img src ="http://www.blogjava.net/banxitan/aggbug/399020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-05-08 20:26 <a href="http://www.blogjava.net/banxitan/archive/2013/05/08/399020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IBM JDK 、SUN JDK、HP JDK如何产生Heapdump文件</title><link>http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Tue, 26 Mar 2013 08:03:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/397006.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/397006.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/397006.html</trackback:ping><description><![CDATA[<span style="border-collapse: separate; font-family: Tahoma; line-height: normal; text-align: -webkit-auto; border-spacing: 0px; font-size: medium; "><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 14px; line-height: 24px; background-color: #ffffff; ">JAVA中，通过分析Heapdump文件可以检查程序是否存在内存泄露，但是这个文件一般是在程序遇到致命问题时才会产生，而如何事前生成这个文件，从而在程序尚末崩溃前找出问题的所在。</span></span><div><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; line-height: 24px; background-color: #ffffff; "><br /></span></div><div><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; line-height: 24px; background-color: #ffffff; ">以下记述了各个版本的JDK产生DUMP文件的方法：</span></div><div><span style="color: #444444; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; line-height: 24px; background-color: #ffffff; "><br /></span></div><div><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">UN JDK生成Heapdump文件只需要在tomcat启动脚本中增加 HeapDumpOnOutOfMemoryError 参数<br /> 此参数需要Java SE release 5.0 update 14 或以上支持</span></p><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">设置示例:<br /> set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx800m -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak</span></p><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">IBM JDK生成Heapdump文件的开关：<br /> &#8212; export IBM_HEAPDUMP=true<br /> &#8212; export IBM_HEAP_DUMP=true<br /> &#8212; export IBM_HEAPDUMP_OUTOFMEMORY=true<br /> &#8212; export IBM_JAVADUMP_OUTOFMEMORY=true<br /> &#8212; export IBM_JAVACORE_OUTOFMEMORY=true<br /> &#8212; export IBM_HEAPDUMPDIR=&lt;directory_path&gt;</span></p><p style="list-style: none; margin-top: 10px; margin-bottom: 10px; padding: 0px; border-style: none; line-height: 24px; color: #333333; font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif; font-size: 13px; background-color: #ffffff; "><span style="color: #444444; font-size: 14px; ">HP JDK生成Heapdump文件需要在在环境变量上，加上export _JAVA_HEAPDUMP=1</span></p></div><img src ="http://www.blogjava.net/banxitan/aggbug/397006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-03-26 16:03 <a href="http://www.blogjava.net/banxitan/archive/2013/03/26/397006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySql 的批量操作，要加rewriteBatchedStatements参数 </title><link>http://www.blogjava.net/banxitan/archive/2013/03/13/396409.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Wed, 13 Mar 2013 12:38:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2013/03/13/396409.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/396409.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2013/03/13/396409.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/396409.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/396409.html</trackback:ping><description><![CDATA[<div>今天在做某项目的POC测试，甲方提供了一个三十万记录的TXT数据文件，需要把该文件的记录插入到数据库中，由于项目部的同事在搭建测试环境中用的是Mysql数据库，在把数据导入到数据库中用的是JDBC的批处理。代码如下
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_30_999_Open_Image" onclick="this.style.display='none'; Codehighlighter1_30_999_Open_Text.style.display='none'; Codehighlighter1_30_999_Closed_Image.style.display='inline'; Codehighlighter1_30_999_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_30_999_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_30_999_Closed_Text.style.display='none'; Codehighlighter1_30_999_Open_Image.style.display='inline'; Codehighlighter1_30_999_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;batchParseGroup()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_30_999_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_30_999_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Connection&nbsp;con</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PreparedStatement&nbsp;ps&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /><img id="Codehighlighter1_92_882_Open_Image" onclick="this.style.display='none'; Codehighlighter1_92_882_Open_Text.style.display='none'; Codehighlighter1_92_882_Closed_Image.style.display='inline'; Codehighlighter1_92_882_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_92_882_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_92_882_Closed_Text.style.display='none'; Codehighlighter1_92_882_Open_Image.style.display='inline'; Codehighlighter1_92_882_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_92_882_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_92_882_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DbConnectionManager.getConnection();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.setAutoCommit(</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sql&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;insert&nbsp;into&nbsp;jivegroup(uri,groupname,pgroupid,description,creationdate,modificationdate,priority,selfpriority)&nbsp;values(?,?,?,?,?,?,?,?)</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;con.prepareStatement(sql);<br /><img id="Codehighlighter1_394_839_Open_Image" onclick="this.style.display='none'; Codehighlighter1_394_839_Open_Text.style.display='none'; Codehighlighter1_394_839_Closed_Image.style.display='inline'; Codehighlighter1_394_839_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_394_839_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_394_839_Closed_Text.style.display='none'; Codehighlighter1_394_839_Open_Image.style.display='inline'; Codehighlighter1_394_839_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">groupList.size();i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_394_839_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_394_839_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Group&nbsp;group&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;groupList.get(i);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setString(</span><span style="color: #000000">1</span><span style="color: #000000">,&nbsp;group.getUri());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setString(</span><span style="color: #000000">2</span><span style="color: #000000">,&nbsp;group.getName());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setString(</span><span style="color: #000000">3</span><span style="color: #000000">,&nbsp;group.getPgroupId());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setString(</span><span style="color: #000000">4</span><span style="color: #000000">,&nbsp;group.getName());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setString(</span><span style="color: #000000">5</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">+</span><span style="color: #000000">System.currentTimeMillis());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setString(</span><span style="color: #000000">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">+</span><span style="color: #000000">System.currentTimeMillis());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setInt(</span><span style="color: #000000">7</span><span style="color: #000000">,&nbsp;group.getPriority());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.setInt(</span><span style="color: #000000">8</span><span style="color: #000000">,&nbsp;group.getPriority());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.addBatch();<br /><img id="Codehighlighter1_804_834_Open_Image" onclick="this.style.display='none'; Codehighlighter1_804_834_Open_Text.style.display='none'; Codehighlighter1_804_834_Closed_Image.style.display='inline'; Codehighlighter1_804_834_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_804_834_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_804_834_Closed_Text.style.display='none'; Codehighlighter1_804_834_Open_Image.style.display='inline'; Codehighlighter1_804_834_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(i</span><span style="color: #000000">%</span><span style="color: #000000">100</span><span style="color: #000000">==</span><span style="color: #000000">0</span><span style="color: #000000">)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_804_834_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_804_834_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.executeBatch();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;con.commit();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ps.executeBatch();<br /><img id="Codehighlighter1_907_935_Open_Image" onclick="this.style.display='none'; Codehighlighter1_907_935_Open_Text.style.display='none'; Codehighlighter1_907_935_Closed_Image.style.display='inline'; Codehighlighter1_907_935_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_907_935_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_907_935_Closed_Text.style.display='none'; Codehighlighter1_907_935_Open_Image.style.display='inline'; Codehighlighter1_907_935_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(SQLException&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_907_935_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_907_935_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img id="Codehighlighter1_943_996_Open_Image" onclick="this.style.display='none'; Codehighlighter1_943_996_Open_Text.style.display='none'; Codehighlighter1_943_996_Closed_Image.style.display='inline'; Codehighlighter1_943_996_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_943_996_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_943_996_Closed_Text.style.display='none'; Codehighlighter1_943_996_Open_Image.style.display='inline'; Codehighlighter1_943_996_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #0000ff">finally</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_943_996_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_943_996_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DbConnectionManager.closeConnection(ps,&nbsp;con);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div><br />在测试时，发现三十万的数据居然需要十分钟左右的时间。首先想到的就是Mysql的相关配置是不是有问题，反复修改了Mysql的相应配置参数，收效甚微。<br /><br />在Mysql的官网上查到如下：<br />&nbsp;<a href="http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html">http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html</a><br /><br />
<p>关于rewriteBatchedStatements参数，Mysql官方的说明：</p>
<p>Should the driver use multiqueries (irregardless of the setting of "allowMultiQueries") as well as rewriting of prepared statements for INSERT into multi-value inserts when executeBatch() is called? Notice that this has the potential for SQL injection if using plain java.sql.Statements and your code doesn't sanitize input correctly. Notice that for prepared statements, server-side prepared statements can not currently take advantage of this rewrite option, and that if you don't specify stream lengths when using PreparedStatement.set*Stream(), the driver won't be able to determine the optimum number of parameters per batch and you might receive an error from the driver that the resultant packet is too large. Statement.getGeneratedKeys() for these rewritten statements only works when the entire batch includes INSERT statements.</p><br /><br />解决办法：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载最新的JDBC的驱动程序。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MYSQL URL的配置参数如下：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jdbc:mysql://54.200.190.80:3306/ccb_ucstar?rewriteBatchedStatements=true<br /><br />经过测试。三十多万的数据。70秒内搞定！</div><img src ="http://www.blogjava.net/banxitan/aggbug/396409.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2013-03-13 20:38 <a href="http://www.blogjava.net/banxitan/archive/2013/03/13/396409.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux 使用 enca　工具进行文件批量格式转换</title><link>http://www.blogjava.net/banxitan/archive/2012/09/17/387878.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Mon, 17 Sep 2012 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2012/09/17/387878.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/387878.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2012/09/17/387878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/387878.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/387878.html</trackback:ping><description><![CDATA[今天在做项目中，供应源提供了一小段的源代码，但文件编码格式是ＧＢＫ的，而我公司建工程时统一用的ＵＴＦ－８编码，导进来后出现乱码。为了解决这一问题，在网上查找了相关的资料，发现可以用　enca工具来进行批量转换<br /><br />１）下载enca工具<br />　　<font face="Times New Roman">wget http://dl.cihar.com/enca/enca-1.13.tar.gz</font><br />２）　<font face="Times New Roman">tar -zxvf enca-1.13.tar.gz</font><br />３）./configure<br />4) make<br />5) make install<br /><br /><br />转换命令<br />　　enca -L zh_CN -x UTF-8 *.java<br /><br /><br /><img src ="http://www.blogjava.net/banxitan/aggbug/387878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2012-09-17 11:42 <a href="http://www.blogjava.net/banxitan/archive/2012/09/17/387878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>没有那个文件或目录”的解决方法</title><link>http://www.blogjava.net/banxitan/archive/2012/08/18/385730.html</link><dc:creator>MikyTan</dc:creator><author>MikyTan</author><pubDate>Sat, 18 Aug 2012 08:01:00 GMT</pubDate><guid>http://www.blogjava.net/banxitan/archive/2012/08/18/385730.html</guid><wfw:comment>http://www.blogjava.net/banxitan/comments/385730.html</wfw:comment><comments>http://www.blogjava.net/banxitan/archive/2012/08/18/385730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/banxitan/comments/commentRss/385730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/banxitan/services/trackbacks/385730.html</trackback:ping><description><![CDATA[<div class="postText">如果sh目录存在且脚本无误，最可能是原因是在windows下写的脚本是dos格式的，放在Linux下编码不识别，解决方法是使用dos2unix命令转一下，即输入： dos2unix 文件名 </div><img src ="http://www.blogjava.net/banxitan/aggbug/385730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/banxitan/" target="_blank">MikyTan</a> 2012-08-18 16:01 <a href="http://www.blogjava.net/banxitan/archive/2012/08/18/385730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>