煩惱歲月

          付出總是有回報(bào)的 take action follow your heart , or follow your head
          posts - 40, comments - 5, trackbacks - 0, articles - 4

          2010年5月16日

          自動(dòng)地可視化表示數(shù)據(jù)庫也可以讓您受益匪淺。實(shí)體關(guān)系圖(ERD)是實(shí)現(xiàn)數(shù)據(jù)庫可視化的最流行的圖示類型。大多數(shù)創(chuàng)建 ERD 的工具(例如,ERWinfor)都需要手動(dòng)生成 ERD。雖然我將要示范的工具 SchemaSpy 無法與現(xiàn)存的一些更復(fù)雜的工具媲美,但是它能夠提供數(shù)據(jù)庫的高級(jí) ERD 視圖 — 以及約束、關(guān)系等。而且,通過自動(dòng)構(gòu)建來運(yùn)行它,您就可以輕松地從您的版本控制庫中檢查數(shù)據(jù)定義語言(Data Definition Language,DDL)的最新顯示。

          Ant 腳本使用 SchemaSpy 工具來創(chuàng)建 Javadoc 格式的文件:

          結(jié)合使用 SchemaSpy、Ant 和 Javadoc

          <property name="reports.dir" value="${basedir}"/>
          <java jar="schemaSpy_3.1.1.jar"
            output="${reports.dir}/output.log"
            error="${reports.dir}/error.log"
            fork="true">
            <arg line="-t mysql"/>
            <arg line="-host localhost"/>
            <arg line="-port 3306"/>
            <arg line="-db brewery"/>
            <arg line="-u root"/>
            <arg line="-p sa"/>
            <arg line="-cp mysql-connector-java-5.0.5-bin.jar"/>
            <arg line="-o ${reports.dir}"/>
          </java>
          

           

          使用 java Ant 任務(wù)調(diào)用 SchemaSpy,傳遞了很多屬性:

          • -t 為數(shù)據(jù)庫類型(有效值為 mysqloradb2,等等。)
          • -host 為托管數(shù)據(jù)庫的計(jì)算機(jī)名。
          • -port 為數(shù)據(jù)庫 URL 的端口數(shù)。
          • -u 為數(shù)據(jù)庫用戶名。
          • -p 為數(shù)據(jù)庫密碼。
          • -cp 為類路徑(用于指示數(shù)據(jù)庫驅(qū)動(dòng)程序 JAR 文件的位置)。
          • -o 為輸出目錄的位置。

          這些 SchemaSpy 的命令行屬性用于生成顯示 ERD 的 HTML 文件

          通過結(jié)合使用多種工具、作為構(gòu)建的一部分針對(duì)數(shù)據(jù)庫執(zhí)行 ERD 生成腳本,并調(diào)度 ERD 生成,您就可以在開發(fā)過程中輕松、快速地做出很多數(shù)據(jù)庫決策。

          另外,對(duì)于喜歡maven的同學(xué),SchemaSpy  也提供了plugin

          http://maven.wakaleo.com/mojo/maven-schemaspy-plugin/faq.html

          posted @ 2010-05-16 16:16 不需要解釋 閱讀(537) | 評(píng)論 (0)編輯 收藏

          2010年5月4日

               參加工作也已經(jīng)5年多了,一直想回頭回想一下自己,然后動(dòng)筆寫下來,一來是自己目前還可以記憶起一些事情,等自己將來老了,可以看看這些東西回憶回憶。二來也是想做一個(gè)總結(jié)。本來這個(gè)題目也可以叫做我的bmi5年,不過大家知道bmi的實(shí)在是少,而且現(xiàn)在這個(gè)公司已經(jīng)名義上不存在了。

               我是在2001年去沈陽讀書的,一直也是很喜歡沈陽的氣候和東北人的豪爽,東北爺們是真正可以拿心和你交朋友的,不過我實(shí)在不喜歡東北的飲食,覺得不細(xì)膩,另外南方還有我的女人在等我回去,要女人來東北,難度不是一般的大,所以在找工作的時(shí)候,我就下定決心一定要找南方的公司,最好廣州,深圳的,或者老家南昌的也是可以的。但是南方公司去東北招生的實(shí)在是少,除了華為,中興之外真的是少的可憐,盡管我們學(xué)校在沈陽也是數(shù)一數(shù)二的學(xué)校。

               在04年在10月份,我面試的第一家公司是東軟,沒有辦法,誰讓我們學(xué)校是東軟的最大股東尼(不知道現(xiàn)在是不是),面試的過程也還不錯(cuò),考試題也做的很順,東軟還提出我們下學(xué)期直接找一些外教來教我們?nèi)瘴模贿^當(dāng)時(shí)東軟給出的薪水實(shí)在是低的可憐,只有1800元,而且還要自己負(fù)責(zé)住宿,自己當(dāng)時(shí)也老大不小了,還有女人在讀書,是不是也是需要買些禮物的,而且沈陽和大連都不是我想去的地方,結(jié)果就直接沒有去報(bào)道。

               接下來的日子也就整天在校內(nèi)的招聘網(wǎng)站(白山黑水)上看帖子,看到了上海bmi的招聘廣告,一看是上海的公司,而且做的是遼寧網(wǎng)通的項(xiàng)目,感覺項(xiàng)目很大,可以學(xué)到不少東西,關(guān)鍵是上海的公司,項(xiàng)目做完了就可以去上海發(fā)展呢,而且當(dāng)時(shí)女朋友也還在讀研究生,仔細(xì)的想想覺得這個(gè)公司還是比較適合自己,于是也開始做準(zhǔn)備,接下來的事情都很順利,筆試,面試,當(dāng)時(shí)有資格參加面試的,整個(gè)我們學(xué)校也就2個(gè)人,一個(gè)本科生,一個(gè)研究生,不過最后那個(gè)研究生也沒有過去。

               在遼寧項(xiàng)目的前期這段時(shí)間,估計(jì)也會(huì)我成長最快,也是最艱苦的時(shí)間,我后續(xù)的會(huì)詳細(xì)介紹到。我第一天上班就是去做release,也就是做發(fā)布和部署,在當(dāng)時(shí)的項(xiàng)目中,我們并沒有像一些公司還有項(xiàng)目配置員這個(gè)角色,就是直接拉一個(gè)開發(fā)人員來負(fù)責(zé)做release,這個(gè)角色當(dāng)時(shí)是在項(xiàng)目中最辛苦的一個(gè),經(jīng)常是下午6點(diǎn)開始,然后編譯3-4個(gè)小時(shí),到10點(diǎn)才可以編譯完成(比較順利的情況下),如果遇到編譯不過去的時(shí)候,還需要聯(lián)系開發(fā)人員進(jìn)行修改,編譯之后在對(duì)照check list進(jìn)行增量部署。

              在第一天上班,我就從上午10點(diǎn)過去,第2天凌晨3點(diǎn)半才下班,到4點(diǎn)才到學(xué)校宿舍睡覺,后續(xù)的1個(gè)月都是如此,現(xiàn)在回想起來,感覺當(dāng)時(shí)真的是很辛苦,不過那段時(shí)間也開始熟習(xí)了不少東西,知道了基于模塊開發(fā),對(duì)ant,weblogic,oracle,plsql,linux,aix等的使用也開始非常熟習(xí)了。在這段時(shí)間里也開始熟習(xí)了公司的項(xiàng)目情況,開發(fā)人員,測(cè)試人員。

          posted @ 2010-05-04 00:06 不需要解釋 閱讀(302) | 評(píng)論 (0)編輯 收藏

          2010年4月19日

              最近在看一些項(xiàng)目的代碼,總是發(fā)現(xiàn)很少項(xiàng)目提供出uml圖,或者就是提供uml圖的也有可能并沒有和代碼對(duì)應(yīng)上,如果有正確的uml圖,可以非常方便的為大家更好的理解代碼層次邏輯。其實(shí)我們可以使用使用UMLGraph來生成uml圖,直接使用java代碼來生成UMLGraph。對(duì)于大部分項(xiàng)目來說,我們一般使用maven和ant(還在使用ant,你out了)來作為項(xiàng)目的編譯工具。

              在maven中,我們可以在pom.xml增加:

              <reporting>
                  <plugins>
                  <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-javadoc-plugin</artifactId>
                  <version>2.6.1</version>
                  <configuration>
                    <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                    <!-- <docletPath>/path/to/UmlGraph.jar</docletPath> -->
                    <docletArtifact>
                      <groupId>org.umlgraph</groupId>
                      <artifactId>doclet</artifactId>
                      <version>5.1</version>
                    </docletArtifact>
                    <additionalparam>-views</additionalparam>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                  </configuration>
                  </plugin>
                  </plugins>
              </reporting>

          使用javadoc:aggregate 就可以生成出整個(gè)項(xiàng)目按照package的uml圖了。

          如果是使用ant,在build.xml中增加target

             <target name="genuml">
                  <property name="uml.dir" value="${basedir}/uml"/>
                  <property name="src.uml.dir" value="${src.dir}/uml"/>
                  <mkdir dir="${uml.dir}"/>
                  <path id="uml.source.path">
                     <pathelement path="${src.uml.dir}/"/>
                     <pathelement path="${src.java.dir}"/>
                  </path>
                  <javadoc sourcepathref="uml.source.path" packagenames="*" package="true">
                     <doclet name="org.umlgraph.doclet.UmlGraph" path="${basedir}/lib/UmlGraph.jar">
                         <param name="-d" value="${uml.dir}"/>
                     </doclet>
                  </javadoc>
                  <apply executable="dot" dest="${uml.dir}" parallel="false">
                      <arg value="-Tpng"/>
                      <arg value="-o"/>
                      <targetfile/>
                      <srcfile/>
                      <fileset dir="${uml.dir}" includes="*.dot"/>
                      <mapper type="glob" from="*.dot" to="*.png"/>
                  </apply>
              </target>

          注意:要正常使用 UMLGraph,您必須先安裝 Graphviz 工具,請(qǐng)自己google相關(guān)信息。

          posted @ 2010-04-19 23:59 不需要解釋 閱讀(1885) | 評(píng)論 (0)編輯 收藏

          2010年4月16日

                 盡管工作了5年多了,現(xiàn)在能想起來的培訓(xùn)真的是少之又少,但是我想以后,我一定不會(huì)這樣說了,因?yàn)槲覅⒓恿税僦Я耍?/p>

                 百支對(duì)于我來說是一次清洗,洗掉以前的惡習(xí),洗掉以前的老思維,重新培養(yǎng)我丟掉已久的價(jià)值觀,重新找回往日的激情。來阿里之后,也一直在想一個(gè)問題,阿里和我以前公司有什么不同?或者說有什么特別的之處?其實(shí)這個(gè)問題有很簡(jiǎn)單,就是阿里是一家有夢(mèng)想的公司,一家有價(jià)值觀的公司,一家有親情,友情的公司,一家工作生活一體的公司,從中國來看,阿里是唯一一家大的公司,而且價(jià)值體系貫徹的這么好的公司,only one in china。

                百支培訓(xùn)了很多業(yè)務(wù)知識(shí),傳統(tǒng)線,虛擬線,兄弟線,安全線,資金線,…學(xué)到了很多東西。

                百支的培訓(xùn),讓我開始結(jié)識(shí)了新的同學(xué),新的家人,新的伙伴,讓我們happly every day! 認(rèn)真工作,快樂生活!

          posted @ 2010-04-16 21:48 不需要解釋 閱讀(417) | 評(píng)論 (0)編輯 收藏

          2009年11月10日

             隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,很多惡意程序往往按照常規(guī)方法無法徹底刪除。有沒有什么方法能夠在不安裝任何第三方工具的情況下,刪除它們呢?筆者經(jīng)過多年實(shí)踐,告訴大家一個(gè)秘密武器--關(guān)閉Explorer進(jìn)程法。

            在服務(wù)器系統(tǒng)出現(xiàn)問題時(shí),例如某個(gè)文件無法刪除,某個(gè)程序假死或者是系統(tǒng)沒有響應(yīng)都可以按CTRL+SHIFT+ESC,調(diào)出Windows任務(wù)管理器。接下來找到“進(jìn)程”標(biāo)簽,將“explorer.exe”進(jìn)程關(guān)閉。接下來整個(gè)桌面就會(huì)消失,只剩下桌布了。然后通過Windows任務(wù)管理器的“文件”菜單下的“新建任務(wù)(運(yùn)行)”打開“創(chuàng)建新任務(wù)”窗口,通過“瀏覽”按鈕找到要?jiǎng)h除文件所在目錄,在瀏覽窗口里直接刪除即可。99%都可以將這個(gè)頑固的文件刪除,刪除后繼續(xù)選擇“文件”菜單下的“新建任務(wù)(運(yùn)行)”打開“創(chuàng)建新任務(wù)”窗口,在打開處輸入命令--explorer后回車,我們將返回到正常的桌面界面下。顯然,對(duì)付頑固文件,這個(gè)方法尤為簡(jiǎn)單。

          posted @ 2009-11-10 16:19 不需要解釋 閱讀(232) | 評(píng)論 (0)編輯 收藏

          2009年11月8日

              1、專注于構(gòu)建一個(gè)強(qiáng)有力的團(tuán)隊(duì),這一團(tuán)隊(duì)能夠解決困難的問題,并為客戶創(chuàng)造真正的價(jià)值。
            2、領(lǐng)導(dǎo)者鼓舞;管理者授權(quán)。要同時(shí)成為優(yōu)秀的領(lǐng)導(dǎo)者和管理者,你需要就愿景進(jìn)行溝通并理解其細(xì)節(jié)。
            3、對(duì)可能出現(xiàn)的障礙有所準(zhǔn)備,防微杜漸,在這些障礙尚未壯大時(shí)就清除它們。
            4、花時(shí)間來仔細(xì)傾聽別人的意見,但不要過于擔(dān)心其他人的想法。
            5、專注于事實(shí)。
            6、充當(dāng)一個(gè)衰減器,而不是放大器,為團(tuán)隊(duì)提供穩(wěn)定性。
            7、永遠(yuǎn)不要將不能解釋的事情歸咎為蓄意破壞。
            8、培養(yǎng)幽默意識(shí)來作為嚴(yán)肅認(rèn)真的一種平衡:對(duì)工作一絲不茍,對(duì)自己輕松自如。
            9、除了工作,還應(yīng)該懂得享受生活,而且每年要讀25本書。
            10、相信你的直覺:如果你感覺不妙,那么很可能預(yù)感就會(huì)成真。

          posted @ 2009-11-08 03:10 不需要解釋 閱讀(231) | 評(píng)論 (0)編輯 收藏

          2009年11月2日

          Productize software

          When talking about the productized software, people often think of Microsoft Office and Microsoft XP. Of course the Microsoft product series is very successful. They can provide excellent GUI, and good user experience.

          In China, there is a different picture for software products. Let me take Chinese software development companies for example. Most of the companies in China work on some projects, instead of specific products, When a company starts a new project, they need to invest lots of developers and money into the project. Sometimes, they also need to send a number of technicians to the customer site to do the development. In my opinion, there are two reasons.

          (1) The software is not very satisfactory enough to be a perfect product.

          (2) Chinese customers have lots of special requirements.

          Customer is GOD. We can not change the ideas of customer most of time. So, we need to improve our product. Then how to evaluate a software product's success? Because of various concerns, different users hold different opinions and will arrive at different conclusions.

          As for redevelopment and customization, the following should be more concerned:

          (1) Software scaffolding

          If the product provides scaffolding, the redevelopment people will quickly generate code (from database, UML, etc….). As we know, the Spring, Hibernate also provide some scaffolding.

          (2) Easy installation package

          Most of time, the installation gives the first impression to the customer. So it is very important.

          A simple installation must ensure everyone, even someone not very familiar with the application, can install the software.

          The installation log file also plays significant role. Sometimes, it’s possible for the customer’s environment to have some problem so that the installation runs unsuccessfully. In this situation, the customer can send the log file to the technicians for analysis.

          People who do not know about your product also can install easily according to wizard.

          (3) Lots of Examples

          The examples are the best teacher. Why most of java developer favor apache ant? The reason is that apache ant can provide lots of examples; you can find any task example in apache ant web site.

          Example not only provides assistance to the development but also the product redevelopment If your product provides lost of examples, the questions from customers will be reduced substantially.

          (4) Online documentation

          If the developer can find some on-line document, he will not worry about that the document in his hands is an old version. And of course, the product developer also can work more effectively. For example, if the document has some error, or need to be modified, he can fix it quickly.

          (5) Very good support

          If the customer has some problem when he use or customize, he can get easily the support.

          As for end-users, the following is very important.

          (1) Friendly GUI, operator easily

          (2) Collection client information online active, when some error happen.

          (3) Auto-update to new version.

          For customer, he does not need install some patch.

          (4) In a conspicuous place clearly marked version of the software, and contact method

          As for a kernel developer, he might think we need to provide:

          (1) OSGI framework or plug-in framework to facilitate the expansion

          (2) Standard software delivery process

          (3) Software quality control

          (4) A very good suite of documents.

          posted @ 2009-11-02 11:26 不需要解釋 閱讀(309) | 評(píng)論 (0)編輯 收藏

          Repositories are remote collections of projects from which Maven uses to populate the local repository of the build system. It is from this local repository that Maven calls it plugins and dependencies. Different remote repositories may contain different projects, and under the active profile they may be searched for a matching release or snapshot artifact.

          Example A.8. Repository Configuration in settings.xml

          <settings xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
                                http://maven.apache.org/xsd/settings-1.0.0.xsd">
            ...
            <profiles>
              <profile>
                ...
                <repositories>
                  <repository>
                    <id>codehausSnapshots</id>
                    <name>Codehaus Snapshots</name>
                    <releases>
                      <enabled>false</enabled>
                      <updatePolicy>always</updatePolicy>
                      <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                      <enabled>true</enabled>
                      <updatePolicy>never</updatePolicy>
                      <checksumPolicy>fail</checksumPolicy>
                    </snapshots>
                    <url>http://snapshots.maven.codehaus.org/maven2</url>
                    <layout>default</layout>
                  </repository>
                </repositories>
                <pluginRepositories>
                  ...
                </pluginRepositories>
                ...
              </profile>
            </profiles>
            ...
          </settings>
          
          releases, snapshots

          These are the policies for each type of artifact, Release or snapshot. With these two sets, a POM has the power to alter the policies for each type independent of the other within a single repository. For example, one may decide to enable only snapshot downloads, possibly for development purposes.

          enabled

          true or false for whether this repository is enabled for the respective type (releases or snapshots).

          updatePolicy

          This element specifies how often updates should attempt to occur. Maven will compare the local POMs timestamp to the remote. The choices are: always, daily (default), interval:X (where X is an integer in minutes) or never.

          checksumPolicy

          When Maven deploys files to the repository, it also deploys corresponding checksum files. Your options are to ignore, fail, or warn on missing or incorrect checksums.

          layout

          In the above description of repositories, it was mentioned that they all follow a common layout. This is mostly correct. Maven 2 has a default layout for its repositories; however, Maven 1.x had a different layout. Use this element to specify which if it is default or legacy. If you are upgrading from Maven 1 to Maven 2, and you want to use the same repository which was used in your Maven 1 build, list the layout as legacy

          posted @ 2009-11-02 11:25 不需要解釋 閱讀(2007) | 評(píng)論 (0)編輯 收藏

          2009年10月19日

          there are lots tools about the java obfuscate. I know two.

          (1)proguard

          (2)yguard

          the proguard support ant, maven. I use maven as the project and build tools. so I want use the maven proguard plugin, but It is not easy to use. so I use yguard.

          in your pom.xml, you can  add:

              <plugin>
                      <groupId>net.sf.mgp</groupId>
                      <artifactId>maven-unclasses-plugin</artifactId>
                      <version>0.0.2</version>
                  </plugin>
                  <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>yguard</groupId>
                <artifactId>yguard</artifactId>
                <version>2.3.0</version>
                <scope>system</scope>
                <systemPath>lib/yguard.jar</systemPath>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <phase>package</phase>
                <configuration>
                  <tasks>
                    <property refid="maven.compile.classpath"
                      name="mvn.classpath"></property>
                    <!-- <echo message="Using Maven Classpath: ${mvn.classpath}" /> -->
                    <taskdef name="yguard"
                      classname="com.yworks.yguard.YGuardTask"/>
                    <yguard>
                      <!-- Input file and output file is the same. -->
                      <inoutpair
                        in="${project.build.directory}/${project.build.finalName}.${project.packaging}"
                        out="${project.build.directory}/${project.build.finalName}.jar"/>
                      <!-- Obfuscate classes plus string references. -->
                      <rename
                        logfile="${project.build.directory}/yguard.log.xml"
                        replaceClassNameStrings="true">
                        <!-- Keep the only class to be used for easy running and its public method main(). -->
                        <keep>
                            <class classes="public" methods="public">
                            <patternset>
                              <include name=”xx.xxx.xxx.util.ConnectionUtil"/>
                            </patternset>
                          </class>
                        </keep>
                      </rename>
                      <!-- There are some external libraries used - Maven knows details. -->
                      <externalclasses>
                        <pathelement path="${mvn.classpath}"/>
                      </externalclasses>
                    </yguard>
                  </tasks>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>


          It is very cool!!!.

          posted @ 2009-10-19 00:50 不需要解釋 閱讀(775) | 評(píng)論 (0)編輯 收藏

          2009年10月17日

          有個(gè)大師說過一句話,有人的地方就有江湖,有江湖的地方就有斗爭(zhēng)。今天在java eys就看到了一場(chǎng)Resourcebundle引起的口角,集體見:

          http://www.javaeye.com/topic/6417?page=1.

          這個(gè)問題在jdk1.6已經(jīng)不存在

          clearCache
          public static final void clearCache()
          Removes all resource bundles from the cache that have been loaded using the caller's class loader.
          Since:
          1.6
          See Also:
          ResourceBundle.Control.getTimeToLive(String,Locale)

          clearCache
          public static final void clearCache(ClassLoader loader)
          Removes all resource bundles from the cache that have been loaded using the given class loader.
          Parameters:
          loader - the class loader
          Throws:
          NullPointerException - if loader is null
          Since:
          1.6
          See Also:
          ResourceBundle.Control.getTimeToLive(String,Locale)

           

          在1.5,1.4怎么辦呢:

             Class klass = ResourceBundle.getBundle("your.Bundle").getClass().getSuperclass();
             Field field = klass.getDeclaredField("cacheList");
             field.setAccessible(true);
             sun.misc.SoftCache cache = (sun.misc.SoftCache)field.get(null);
             cache.clear();
             field.setAccessible(false);

          這樣就可以清楚cache.

          posted @ 2009-10-17 17:23 不需要解釋 閱讀(347) | 評(píng)論 (0)編輯 收藏

          我實(shí)話告訴你們,我可是身經(jīng)百戰(zhàn)了.bbs我見的多了,哪個(gè)版我沒灌過?你們要知道, 一塌糊 涂的triangle,PIC,SEX版,那比你們不知道厲害到哪里去了,我在那談笑風(fēng)聲.你 們有一好就是無論在哪個(gè)版,什么話題都灌,但是灌來灌去的問題,都too simple, sometimes naive!你 們懂不懂呀?啊?所以說灌水啊,關(guān)鍵是要提高自己的知識(shí)水平.你 們啊,不要總想著弄個(gè)大坑,然后灌上十大,再把我羞辱一番……你們啊,naive!你們這 樣灌是不行地!~那你問我支持 不支持灌水,我說支持,我常來這裡灌,你說支持不支持?
          主站蜘蛛池模板: 元江| 永和县| 辉县市| 遵义市| 西丰县| 昌宁县| 抚松县| 鄂尔多斯市| 孙吴县| 武穴市| 泰来县| 化德县| 滦平县| 雅江县| 静乐县| 房产| 龙里县| 兴国县| 吴桥县| 松滋市| 深水埗区| 新源县| 抚顺市| 宾阳县| 彭阳县| 亳州市| 盈江县| 呈贡县| 苗栗县| 宕昌县| 行唐县| 河西区| 巴彦淖尔市| 桂东县| 双柏县| 团风县| 牡丹江市| 宿松县| 久治县| 田阳县| 竹山县|