<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    當柳上原的風吹向天際的時候...

    真正的快樂來源于創造

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks

    #

    以下是使用SqlToolbox使用圖解教程,雖然是早期版本,但對于當前版本也一樣有參考價值。

    1) 啟動SqlToolBox.
    如下圖,點擊其中的"Run.bat"啟動程序.


    打開后,程序將顯示以下界面:


    2.通過對話框打開數據庫.
    首次啟動時,用戶本機沒有XML描述數據源文件,只能通過對話框來打開數據庫.
    點擊菜單中的"文件"->"打開數據源對話框",將彈出以下界面.


    接下來輸入數據庫服務器的IP地址和數據庫名,舉例如下:


    接著,選擇數據庫類型,我的數據庫是Oracle的,就選它了.選完后,你會發現數據庫類型和Url都被自動填入了.


    接下來填入用戶名和密碼,如果所有信息均正確,你稍等一會就能看到數據庫操作窗口被打開了.

    3.存儲數據庫信息文件.
    點擊數據源窗口中的"保存文件"按鈕,寫入文件名,你就將數據庫信息存儲到了文件中.


    文件信息如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <datasource>
        
    <type>oracle</type>
        
    <url>jdbc:oracle:thin:@192.168.104.173:1521:orcl</url>
        
    <usr>hy</usr>
        
    <pswd>hy</pswd>
    </datasource>


    4.通過數據庫信息文件打開數據庫.
    點擊菜單"文件"->"打開XML形式的數據源文件",找到剛才保存的文件,


    然后出現以下界面:


    "執行中"對話框消失后,表空間和表都被載入了.
    以下是平面視圖狀態的表和表空間.


    以下是樹視圖狀態的表空間和表:


    5.查看表的字段及其字段屬性。
    在平面視圖中中選擇一個表,左下方即出現這個表的字段及其字段屬性,如下圖:


    在樹視圖中左鍵選擇第三級節點-表節點,也可以達到同樣的效果。


    6.取得單表的各種Sql文。
    在平面視圖或樹視圖中,對著表名,點擊右鍵,會彈出一個菜單,選擇“取得單表查詢語句”到“取得單表更新語句”這五個菜單項,能得到Select,insert,delete,update等四種SQl文。它們將出現在右邊的當前選項卡的文本框中。


    樹視圖中的同等操作:

    posted @ 2009-02-01 18:24 何楊 閱讀(1861) | 評論 (5)編輯 收藏

    效果圖:


    代碼如下:
    import java.awt.Graphics;
    import java.awt.Image;

    import javax.swing.ImageIcon;
    import javax.swing.JDesktopPane;

    public class WindowDesktop extends JDesktopPane{
        
    private static final long serialVersionUID = -3458049910691811494L;
        Image image
    =new ImageIcon(MainFrame.class.getResource("/background.jpg")).getImage();
        
        
    public WindowDesktop(){
            
    super();
        }

        
        
    public void paintComponent(Graphics g)
            g.drawImage(image, 
    00, getWidth(), getHeight(), 00, image
                    .getWidth(
    null), image.getHeight(null), null);
        }
     
    }
    posted @ 2009-01-30 19:21 何楊 閱讀(2086) | 評論 (1)編輯 收藏

    界面概覽:


    整體說明
    SqlToolBox是一款純綠色,完全免費的,專為程序員打造的數據庫客戶端管理工具,旨在于向與數據庫打交道的程序員提供各種便利。

    功能簡介:
    1.無需安裝數據庫的客戶端,通過本程序即可訪問各種常用數據庫.
    2.本軟件已經加載了Oracle和MySql兩種數據庫的驅動包,可以暢通無阻的訪問這兩種數據庫,您不用進行任何特別設置。
    3.對于Db2,Sqlserver,Sybase,Informix,PostgreSql等數據庫,軟件已經內置對它們的支持,用戶只需加載相關數據庫的驅動jar包即可。(請參照Run.bat文件進行修改).
    3.打開數據庫時既可通過對話框的形式打開,您只需要輸入“數據庫類型”,“數據庫的URL”,“打開數據庫的用戶名”和“密碼”即可。如果需要多次訪問,您可以把這些信息保存成XML文件打開,以后可以打開這個文件即能快速訪問數據庫.
    4.打開數據庫后,程序會依次列出 DB中的數據庫,數據庫下的各表 和 以及表中的各字段 以方便程序員在數據庫中瀏覽.您還可以根據自己的喜好選擇“樹狀視圖”和“平面視圖”兩種方式進行瀏覽。
    5.在樹狀視圖和平面視圖,您可以輕松獲得某一張表的完整Select,Update,Insert,Delete等語句以及表對應的Pojo文件,Hibernate映射文件,建表語句等.
    6.在右上方的SQL執行窗口中,您可執行各種SQL語句,在結果窗口中可以顯示處理結果,如果是查詢,會以表格的方式顯示出來;如果是Update,Insert和Delete等語句會以文字的形式告訴你執行結果;如果執行的SQL語句有錯誤,則會提示用戶SQL語句錯誤。
    7.如果SQL語句比較復雜,軟件提供了一個功能可對多層的SQL語句進行整形,這可以幫助程序員迅速理清其結構,另外還提供了一個反整形功能將多行SQL合并成一行。
    8.您可以訪問不同的數據庫,只需打開多個窗口即可;您還可以進行不同的處理,只需打開多個選項頁即可。

    如何運行和使用SqlToolBox:
    運行此軟件需要安裝JDK1.5或更高版本。
    本軟件為綠色軟件,不需要進行安裝,只要您下載軟件后,解壓到任何一個目錄,點擊run.bat既、即能將程序運行起來。
    關于SqlToolBox的使用教程,請參看:SqlToolbox使用圖解http://m.tkk7.com/heyang/archive/2009/02/01/252878.html

    最近增加的功能:
    1.Sql語法高亮(1.71  2009年1月28日15:24:46)。
    2.增加一些圖片,特地增加新年壁紙背景(1.72 2009年1月30日19:18:28)。
    3.將背景修改為明代衣冠壁紙,增加了三個圖標(1.73 2009年1月31日17:31:56)。
    4.改善了Sql整形功能(嵌套SQL整形還未完成),全面引入了Spring的JdbcTemplate。(1.74 2009年2月3日14:01:06)
    5.嵌套SQL整形完成。(1.75 2009年2月5日22:38:38)
    6.增加了主鍵識別,改善了建表語句的生成效果。增加一個測試連接按鈕。修改了一些按鈕圖標。(1.76  2009年2月7日16:03:10)

    版本歷程
    2007年7月末  前身 SqlAnywhere1.00 誕生
    2007年8月初  SqlAnywhere1.03問世并發布到華軍軟件園
    2007年11月底到2008年一月初 更名為SqlToolBox并升級到1.60版本 發布到eNet下載頻道(一月二十七日)
    2009年1月 升級到當前最高版本 發布到華軍軟件園,綠色軟件頻道多特下載站。

    作者寄語:
    本軟件歷經了三次大的修改,十數次小修改,軟件名也從SqlAnywhere1.3變到了現在的版本,規模也從1.98M變到了5M多,目的是使它真正能對程序員訪問數據庫有所幫助,限于本人水平和時間有限,如果此軟件可能和您的需要有差別,或者沒有提供您想要的功能,請您將意見和建議盡量告訴我(可通過博客留言或是發送Email),我會把您想要的功能融入到新版本中。如果您覺得此軟件還不錯,請告知您的朋友們,作者在此向您表示感謝。    

    1.60版本下載地址
    http://www.box.net/shared/3y80aucin6

    1.8.0版下載地址:
    http://www.box.net/shared/ggmlmyjrrg

    與本軟件功能類似的開源軟件:
    Java開源數據庫管理工具 

    posted @ 2009-01-23 07:26 何楊 閱讀(1635) | 評論 (8)編輯 收藏

    全文如下:

    @echo off 
    set CLASSPATH_BAK
    =%CLASSPATH%
    set classpath
    =%CLASSPATH%;.\lib\dom4j-1.6.1.jar;.\lib\classes12.jar;.\lib\log4j-1.2.14.jar;.\lib\commons-dbcp-1.2.2.jar;.\lib\commons-pool-1.4.jar;.\lib\mysql-connector-java-5.0.6-bin.jar;.\lib\commons-logging-1.0.4.jar;.\lib\spring.jar;.\;.\SqlToolBox.jar
    start javaw com.sitinspring.Main  
    set classpath
    =%CLASSPATH_BAK%  
    posted @ 2009-01-22 17:46 何楊 閱讀(830) | 評論 (0)編輯 收藏

    凡是存在多人協作的系統必然具備權限子系統,它用于控制用戶能否執行某個操作,以此來控制系統的功能,業務的流向和業務權利的分配。

    權限系統具體來說分為等級控制類型和角色控制類型兩種形式,再復雜的權限系統都是這兩種形式的有限組合。前者可用于范圍控制,適用于用戶權力大小不同的場合;后者可用于單點控制,適用于用戶權力多寡有異的場合。現實世界中,軍隊中官銜類似于等級權限控制,現代企業中各司其職的權力分配類似于角色控制。角色權限控制是把單項權限一項項的賦予用戶,如同現實世界中把具體職位一個個的賦予某個員工一樣。在他執行操作前,先看他是否擁有執行此操作的權限,如果有則執行,否則不執行。

    下面的文章分別總結和討論了這兩種系統和具體的實現技術:

    等級權限控制的相關文章:
    1.簡單值控制權限系統的設計
    2.簡單值控制權限系統的改進
    3.使用AOP完善簡單值權限系統
    4.在簡單值權限系統中使用Annotation替代了原來處于XML中的值設置

    角色權限控制的相關文章:
    1.用戶角色權限控制的實現

    歡迎大家和我討論。
    posted @ 2009-01-20 09:24 何楊 閱讀(339) | 評論 (0)編輯 收藏

     在一個程序中,相對User這個領域對象的諸屬性進行修改,用來容納存儲數據的ActionForm是這樣寫的:

    public final class ModifyUserForm extends ActionForm {
        
    private static final long serialVersionUID = -3447738664240089399L;

        
    private User user;
        
        
    public ModifyUserForm(){

        }


        
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        }


        
    public ActionErrors validate(ActionMapping mapping,
                                     HttpServletRequest request) 
    {

            ActionErrors errors 
    = new ActionErrors();

            
    return (errors);

        }


        
    public User getUser() {
            
    return user;
        }


        
    public void setUser(User user) {
            
    this.user = user;
        }

    }

    結果,進行頁面數據驗證的JS能準確無誤的進行前段驗證,但Action中沒有收到請求,驗證完畢提交表單后出現下面的異常,

    HTTP Status 500 -


    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    javax.servlet.ServletException: javax.servlet.ServletException: BeanUtils.populate
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    com.heyang.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
    

     

    root cause

    javax.servlet.ServletException: BeanUtils.populate
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:469)
    org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
    org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    com.heyang.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
    

     

    root cause

    java.lang.IllegalArgumentException: No bean specified
    org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:751)
    org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:937)
    org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    org.apache.struts.util.RequestUtils.populate(RequestUtils.java:467)
    org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
    org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
    org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    com.heyang.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35)
    

     

    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.


    Apache Tomcat/6.0.10

    發生這個錯誤的原因應該是使用工具類commons beanutil向ActionForm中的屬性user輸入數據時發生了錯誤,解決這個問題也很簡單,在ActionForm內部將屬性user實例化即可,代碼如下:

    public final class ModifyUserForm extends ActionForm {
        
    private static final long serialVersionUID = -3447738664240089399L;

        
    private User user=new User();
        
        
    public ModifyUserForm(){

        }


        
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        }


        
    public ActionErrors validate(ActionMapping mapping,
                                     HttpServletRequest request) 
    {

            ActionErrors errors 
    = new ActionErrors();

            
    return (errors);

        }


        
    public User getUser() {
            
    return user;
        }


        
    public void setUser(User user) {
            
    this.user = user;
        }

    }

    posted @ 2009-01-15 16:06 何楊 閱讀(730) | 評論 (0)編輯 收藏

    公安人員抓捕了四個盜竊嫌疑犯,下面是他們的審訊記錄:
    A:是B偷的,不是D偷的
    B:我沒有偷,是C偷的
    C說:A沒有偷,是B偷的
    D:我沒有偷
    現已經確切知道只有一人參與偷竊,且四人的話語要么全是真話,要么全在撒謊。
    請根據這些條件編程判斷誰是小偷?

    package com.heyang;

    public class WhoIsTheThief{
      
    public static void main(String[] args){
        
    int[] arr=new int[4]; 
        
        
    for(arr[0]=0;arr[0]<=1;arr[0]++){
          
    for(arr[1]=0;arr[1]<=1;arr[1]++){
            
    for(arr[2]=0;arr[2]<=1;arr[2]++){
              
    for(arr[3]=0;arr[3]<=1;arr[3]++){           
                
    // 只有一個人是小偷
                if(hasOnlyOneThief(arr)==false){
                  
    continue;
                }

                
                
    boolean wordByA=(arr[1]==1 && arr[3]==0);
                
    boolean wordByB=(arr[1]==0 && arr[2]==1);
                
    boolean wordByC=(arr[0]==0 && arr[1]==1);
                
    boolean wordByD=(arr[3]==0);
                
                
    boolean resultFinal=allTrueOrAllFalse(wordByA,wordByB,wordByC,wordByD);
                
                
    if(resultFinal==false){
                  printThief(arr);              
                  
    return;
                }

              }

            }

          }

        }

      }

      
      
    private static boolean hasOnlyOneThief(int[] arr){
        
    int thiefCount=0;
        
        
    for(int i:arr){
          thiefCount
    +=i;
        }

        
        
    return thiefCount==1;
      }

      
      
    private static boolean allTrueOrAllFalse(boolean wordByA,boolean wordByB,boolean wordByC,boolean wordByD){
        
    if(wordByA==true && wordByB==true && wordByC==true && wordByD==true){
          
    return true;
        }

        
    else if(wordByA==false && wordByB==false && wordByC==false && wordByD==false){
          
    return true;
        }

        
    else{
          
    return false;
        }

      }

      
      
    private static void printThief(int[] arr){
        
    char[] arrNames={'A','B','C','D'};  
        
        
    for(int i=0;i<arr.length;i++){
          
    if(arr[i]==i){
            System.out.println(arrNames[i]
    +"是竊賊");
          }

          
    else{
            System.out.println(arrNames[i]
    +"不是竊賊");
          }

        }
     
      }

    }
    posted @ 2009-01-15 08:35 何楊 閱讀(170) | 評論 (0)編輯 收藏

    package com.heyang;

    /**
     * 兩個隊進行比賽,各出三人。甲隊為'張','李','王'三人,乙隊為'A','B','C'三人。已抽簽決定
       比賽名單。有人向隊員打聽比賽的名單。張說他不會對陣A,李說他不會對陣C,王說他不會對陣B,請編程序找出
       三隊賽手的名單。
     * 
    @author 何楊(heyang78@gmail.com)
     *
     * 
    @since 2009-1-14 下午04:17:11
     * 
    @version 1.00
     
    */

    public class MatchSchedule{
        
    public static void main(String[] args){
            
    char[] team1={'','',''};
            
    char[] team2={'A','B','C'};
            
            
    int arraySize=team2.length;
            
    for(int i=0;i<arraySize;i++){
                
    // team2[i]是張的對手
                
                
    if(team2[i]!='A'){        // 張說他不會對陣A    
                    for(int j=0;j<arraySize;j++){
                        
    // team2[j]是李的對手
                        
                        
    if(team2[j]!='C'){  // 李說他不會對陣C    
                            for(int k=0;k<arraySize;k++){
                                
    // team2[k]是王的對手
                                
                                
    if(team2[k]!='B')// 王說他不會對陣B    
                                    
                                    
    // 不會出現一名選手同時對戰兩人
                                    if(team2[i]!=team2[j] && team2[j]!=team2[k] && team2[k]!=team2[i] ){
                                        System.out.println(
    "\n比賽可能對陣表");
                                        System.out.println(team1[
    0]+" vs "+team2[i]);
                                        System.out.println(team1[
    1]+" vs "+team2[j]);
                                        System.out.println(team1[
    2]+" vs "+team2[k]);
                                    }

                                }

                            }

                        }

                    }

                }

            }

        }

    }
    posted @ 2009-01-14 16:18 何楊 閱讀(155) | 評論 (0)編輯 收藏

    package com.heyang;

    public class CompletedBitmapMethod{
        
    public static void main(String[] args){
            
    int[] arr={1,7,3,6,9,-1};        
            System.out.println(hasDuplicatedItem(arr));
        }
        
        
        
    public static boolean hasDuplicatedItem(int[] arr){
            
    // 找出數組中最大值
            int max=arr[0];
            
    int min=max;
            
    for(int i:arr){
                
    if(max<i){
                    max
    =i;
                }

                
    if(min>i){
                    min
    =i;
                }

            }

            
            
    int[] newArr=new int[max-min+1];
            
    for(int i:arr){
                
    int index=i-min;
                
                
    if(newArr[index]==0){
                    
    // 以前未在此位置存值
                    newArr[index]=1;
                }

                
    else{
                    
    // 以前已經在此位置存值
                    return true;
                }

            }
        
            
            
    return false;
        }

    }
    posted @ 2009-01-14 16:16 何楊 閱讀(203) | 評論 (0)編輯 收藏

         摘要: 權限系統文章之五,業務和文章之一相同,使用Annotation替代了原來處于XML中的值設置。  閱讀全文
    posted @ 2009-01-06 15:59 何楊 閱讀(479) | 評論 (0)編輯 收藏

    僅列出標題
    共28頁: First 上一頁 20 21 22 23 24 25 26 27 28 下一頁 
    主站蜘蛛池模板: 日本三级在线观看免费| 久久亚洲精品成人av无码网站| 亚洲gv猛男gv无码男同短文| 久久夜色精品国产噜噜亚洲a| 中文在线观看国语高清免费| 男女啪啪永久免费观看网站| 亚洲AV色无码乱码在线观看| 亚洲 综合 国产 欧洲 丝袜| 亚洲狠狠婷婷综合久久蜜芽| 114一级毛片免费| 亚洲成a人片77777老司机| 18禁网站免费无遮挡无码中文| 亚洲熟妇成人精品一区| 国产成人亚洲影院在线观看| 黄网站色视频免费观看45分钟| 日本高清免费aaaaa大片视频| 在线亚洲高清揄拍自拍一品区| 国产一级理论免费版| 大地影院MV在线观看视频免费 | 特级做A爰片毛片免费69| 国产成人人综合亚洲欧美丁香花 | 在线亚洲精品视频| 亚洲中文字幕无码一区二区三区| 一区二区3区免费视频| 免费一级大黄特色大片| 精品成人免费自拍视频| 亚洲中文无码永久免费| 久久精品国产亚洲Aⅴ香蕉| 曰批视频免费30分钟成人| 久久青草免费91线频观看站街| 国产亚洲精品久久久久秋霞| 久久精品国产亚洲av天美18| 亚洲精品国偷自产在线| 国产成人A在线观看视频免费| 亚洲色偷偷综合亚洲av78| 国产成人综合亚洲亚洲国产第一页 | 中文在线日本免费永久18近| 亚洲人成人网毛片在线播放| 国产亚洲精品a在线观看app| 亚洲国产综合无码一区| 亚洲日韩精品无码专区网址|