zoukankan      html  css  js  c++  java
  • eclipse开发一个文件向导

    比如我们要生成一个生成jdbc帮组类的插件

    此时我们就要用到文件生成向导

    打开eclipse 或者myeclipse  选中任意位置 new puginproject

    输入工程名称 其他默认

    选择向导里面的一项  custom plugin in wizard 右边的框中

    进入下一步 里面有文件导入导出向导 xml编辑器向导 我们选择

    NeW File Wizard

    利用jigloo 插件生成一个composite的页面 jigloo可以使用拖拽可视化设计swt界面

    拓展点

       <extension
             point="org.eclipse.ui.newWizards">
          <category
                name="LH语言互相转换工具"
                id="lhplugin">
          </category>
           <wizard
                name="LH Jdbc帮助类"
                icon="icons/sample.gif"
                category="lhplugin"
                class="lhplugin.wizards.SqlNewWizard"
                id="lhplugin.wizards.SqlNewWizard">
          </wizard>
       </extension>

    <category
                name="LH语言互相转换工具"
                id="lhplugin">
          </category>
    表示会在 eclipse --new ---others  会弹出一个选择生成内容的列表

    表示会添加一个文件夹分类  名字是 LH语言互相转换工具

    <wizard
                name="LH Jdbc帮助类"
                icon="icons/sample.gif"
                category="lhplugin"
                class="lhplugin.wizards.SqlNewWizard"
                id="lhplugin.wizards.SqlNewWizard">
          </wizard>
    表示添加一个向导的控制类 类是lhplugin.wizards.SqlNewWizard 添加到lhplugin 这个文件夹分类下面

    SqlNewWizard 负责添加向导页到里面 该类必须extends Wizard implements INewWizard

    package lhplugin.wizards;

    import java.io.ByteArrayInputStream;
    import java.io.InputStream;
    import java.lang.reflect.InvocationTargetException;
    import java.util.List;

    import lhplugin.utils.ConnectEntry;
    import lhplugin.utils.JdbcGen;

    import org.eclipse.core.runtime.CoreException;
    import org.eclipse.core.runtime.IProgressMonitor;
    import org.eclipse.core.runtime.IStatus;
    import org.eclipse.core.runtime.Status;
    import org.eclipse.jdt.core.ICompilationUnit;
    import org.eclipse.jdt.core.IJavaElement;
    import org.eclipse.jdt.core.IMember;
    import org.eclipse.jdt.core.IPackageFragment;
    import org.eclipse.jdt.core.JavaCore;
    import org.eclipse.jdt.core.JavaModelException;
    import org.eclipse.jdt.internal.core.JavaElement;
    import org.eclipse.jdt.internal.core.ResolvedSourceMethod;
    import org.eclipse.jdt.ui.JavaUI;
    import org.eclipse.jface.operation.IRunnableWithProgress;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.jface.viewers.IStructuredSelection;
    import org.eclipse.jface.wizard.Wizard;
    import org.eclipse.ui.IEditorPart;
    import org.eclipse.ui.INewWizard;
    import org.eclipse.ui.IWorkbench;
    import org.eclipse.ui.IWorkbenchWizard;
    import org.eclipse.ui.PartInitException;

    /**
     * This is a sample new wizard. Its role is to create a new file resource in the
     * provided container. If the container resource (a folder or a project) is
     * selected in the workspace when the wizard is opened, it will accept it as the
     * target container. The wizard creates one file with the extension "mpe". If a
     * sample multi-page editor (also available as a template) is registered for the
     * same extension, it will be able to open it.
     */

    public class SqlNewWizard extends Wizard implements INewWizard {
     private SqlNewWizardPage page;
     private ISelection selection;

     /**
      * Constructor for SampleNewWizard.
      */
     public SqlNewWizard() {
      super();
      setNeedsProgressMonitor(true);
     }

     /**
      * Adding the page to the wizard.
      */

     public void addPages() {
      page = new SqlNewWizardPage(selection);
      this.setWindowTitle("sql帮组类生成工具 作者:小琼琼");
      addPage(page);
     }

     /**
      * This method is called when 'Finish' button is pressed in the wizard. We
      * will create an operation and run it using wizard as execution context.
      */
     public boolean performFinish() {
      final IPackageFragment frg = page.pac;
      final String url = page.getTxtUrl().getText();
      final String pac = page.pac.getElementName();
      final String cls = "JdbcHelper";
      final String clsName = page.getText1().getText();
      final String uid = page.getText2().getText();
      final String pwd = page.getText3().getText();
      final ConnectEntry entry = new ConnectEntry();
      entry.setCls(cls);
      entry.setClsName(clsName);
      entry.setPac(pac);
      entry.setPwd(pwd);
      entry.setUid(uid);
      entry.setUrl(url);
      IRunnableWithProgress prs = new IRunnableWithProgress() {

       public void run(IProgressMonitor m)
         throws InvocationTargetException, InterruptedException {
        try {
         m.beginTask("开始提取模板需要的资源", 2);
         JdbcGen gen = new JdbcGen();
         String content = gen.generate(entry);
         m.worked(1);
         m.setTaskName("生成类文件");
         try {
          // 可以使用这种方法创建 下面注视为foler下创建文件
          final ICompilationUnit u = frg.createCompilationUnit(
            cls + ".java", content, false, m);
          /**
           * 如果是获取到 IFolder对象如何创建一个文件了代码如下 IWorkspaceRoot
           * myWorkspaceRoot =
           * ResourcesPlugin.getWorkspace().getRoot(); IProject
           * myProject = myWorkspaceRoot.getProject("MyProject");
           * if (myProject.exists() && !myProject.isOpen())
           * myProject.open(null); IFolder imagesFolder =
           * myProject.getFolder("images"); if
           * (imagesFolder.exists()) { IFile newLogo =
           * imagesFolder.getFile("newLogo.png"); FileInputStream
           * fileStream = new FileInputStream(
           * "c:/MyOtherData/newLogo.png");
           * newLogo.create(fileStream, false, null); }
           */
          getShell().getDisplay().asyncExec(new Runnable() {

           public void run() {
            // TODO Auto-generated method stub
            try {
             // 获取方法
             IMember member = new ResolvedSourceMethod(
               (JavaElement) u, "queryList",
               new String[] {
                 String.class.getName(),
                 List.class.getName(),
                 int.class.getName() }, null);
             IEditorPart part = JavaUI.openInEditor(u);
             // 定位到该方法 让别人去看我的
             JavaUI.revealInEditor(part,
               (IJavaElement) member);
            } catch (PartInitException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            } catch (JavaModelException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
            }
           }

          });

         } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
         }
         m.worked(1);
        } finally {
         m.done();
        }

       }

      };
      try {
       getContainer().run(true, false, prs);
      } catch (InvocationTargetException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      } catch (InterruptedException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
      }
      return true;
     }

     /**
      * We will initialize file contents with a sample text.
      */

     private InputStream openContentStream() {
      String contents = "This is the initial file contents for *.mpe file that should be word-sorted in the Preview page of the multi-page editor";
      return new ByteArrayInputStream(contents.getBytes());
     }

     private void throwCoreException(String message) throws CoreException {
      IStatus status = new Status(IStatus.ERROR, "lhplugin", IStatus.OK,
        message, null);
      throw new CoreException(status);
     }

     /**
      * We will accept the selection in the workbench to see if we can initialize
      * from it.
      *
      * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
      */
     public void init(IWorkbench workbench, IStructuredSelection selection) {
      this.selection = selection;
     }
    }

     以下表示添加页面  添加的页面 比如SqlNewWizardPage  必须extends WizardPage

     public void addPages() {
      page = new SqlNewWizardPage(selection);
      this.setWindowTitle("sql帮组类生成工具 作者:小琼琼");
      addPage(page);
     }

     下面是向导页面

    package lhplugin.wizards;

    import java.sql.Connection;
    import java.sql.DriverManager;

    import javax.swing.JFileChooser;
    import javax.swing.JOptionPane;

    import lhplugin.utils.SampleUtils;

    import org.eclipse.core.resources.IFile;
    import org.eclipse.core.resources.IResource;
    import org.eclipse.jdt.core.IJavaElement;
    import org.eclipse.jdt.core.IPackageFragment;
    import org.eclipse.jdt.core.JavaCore;
    import org.eclipse.jface.dialogs.IDialogPage;
    import org.eclipse.jface.dialogs.MessageDialog;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.jface.viewers.IStructuredSelection;
    import org.eclipse.jface.wizard.WizardPage;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.events.FocusEvent;
    import org.eclipse.swt.events.FocusListener;
    import org.eclipse.swt.events.ModifyEvent;
    import org.eclipse.swt.events.ModifyListener;
    import org.eclipse.swt.events.SelectionAdapter;
    import org.eclipse.swt.events.SelectionEvent;
    import org.eclipse.swt.layout.FormAttachment;
    import org.eclipse.swt.layout.FormData;
    import org.eclipse.swt.layout.FormLayout;
    import org.eclipse.swt.layout.GridData;
    import org.eclipse.swt.layout.GridLayout;
    import org.eclipse.swt.widgets.Button;
    import org.eclipse.swt.widgets.Combo;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Group;
    import org.eclipse.swt.widgets.Label;
    import org.eclipse.swt.widgets.Text;

    /**
     * The "New" wizard page allows setting the container for the new file as well
     * as the file name. The page will only accept file name without the extension
     * OR with the extension that matches the expected one (mpe).
     */

    public class SqlNewWizardPage extends WizardPage {

     private ISelection selection;
     private Group group1;
     private Button button2;
     private Button button1;
     private Label label5;
     private Label label4;
     private Text text3;
     private Text text2;
     private Label label3;
     private Text text1;
     private Combo cboDb;
     private Label label2;
     private Text txtUrl;
     private Label label1;
     /**
      * Constructor for SampleNewWizardPage.
      *
      * @param pageName
      */
     public SqlNewWizardPage(ISelection selection) {
      super("sql帮组类生成工具向导页面");
      setTitle(" LH-SQL帮组类生成工具");
      setDescription("/n LH产品 提供商 提供 此工具 ,此 插件 那是 相当的nb");
      this.selection = selection;
      
     }

     public void addSpaceGraid(Composite container, int length) {
      for (int i = 0; i < length; i++) {
       Label temp = new Label(container, SWT.NULL);
      }
     }
     private void initGUI(Composite parent) {
      try {
       final Composite container=new Composite(parent,SWT.NULL);
       GridLayout thisLayout = new GridLayout();
       thisLayout.makeColumnsEqualWidth = true;
       container.setLayout(thisLayout);
       container.setSize(481, 234);
       {
        group1 = new Group(container, SWT.NONE);
        FormLayout group1Layout = new FormLayout();
        group1.setLayout(group1Layout);
        GridData group1LData = new GridData();
        group1LData.widthHint = 452;
        group1LData.heightHint = 193;
        group1.setLayoutData(group1LData);
        group1.setText("jdbc/u6a21/u677f/u5c5e/u6027");
        {
         button1 = new Button(group1, SWT.PUSH | SWT.CENTER);
         FormData button1LData = new FormData();
         button1LData.left =  new FormAttachment(0, 1000, 331);
         button1LData.top =  new FormAttachment(0, 1000, 153);
         button1LData.width = 60;
         button1LData.height = 22;
         button1.setLayoutData(button1LData);
         button1.setText("/u6d4b/u8bd5/u8fde/u63a5");
         button1.addSelectionListener(new SelectionAdapter() {

          @Override
          public void widgetSelected(SelectionEvent e) {
           // TODO Auto-generated method stub
           MessageDialog.openInformation(container.getShell(), "警告消息", "改功能暂未实现");
          }
          
          
          
         });
        }
        {
         FormData cboDbLData = new FormData();
         cboDbLData.left =  new FormAttachment(0, 1000, 110);
         cboDbLData.top =  new FormAttachment(0, 1000, 15);
         cboDbLData.width = 266;
         cboDbLData.height = 20;
         cboDb = new Combo(group1, SWT.NONE);
         cboDb.setLayoutData(cboDbLData);
         cboDb.setItems(new java.lang.String[] {"mysql","oracle","sqlserver","db2","sybase","odbc","postgresql","informix"});
         cboDb.addModifyListener(new ModifyListener() {
          public void modifyText(ModifyEvent evt) {
           Combo cbo=(Combo)evt.getSource();
           if("mysql".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:mysql://[localhost]:3306/dbname");
            text1.setText("com.mysql.jdbc.Driver");
           }
           if("oracle".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:oracle:thin:@localhost:1521:dbname");
            text1.setText("oracle.jdbc.driver.OracleDriver");
           }
           if("sqlserver".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:microsoft:sqlserver://localhost:1433;databaseName=dbname");
            text1.setText("com.microsoft.jdbc.sqlserver.SQLServerDriver");
           }
           if("db2".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:db2://192.9.200.108:6789/dbname");
            text1.setText("com.ibm.db2.jdbc.net.DB2Driver");
           }
           if("sybase".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:sybase:Tds:localhost:2638");
            text1.setText("com.sybase.jdbc2.jdbc.SybDriver");
           }
           if("informix".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:informix-sqli://localhost:1533");
            text1.setText("com.informix.jdbc.IfxDriver");
           }
           if("postgresql".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:postgresql://localhost:port/dbname");
            text1.setText("org.postgresql.Driver");
           }
           if("odbc".equals(cbo.getText()))
           {
            txtUrl.setText("jdbc:odbc:dbname");
            text1.setText("sun.jdbc.odbc.JdbcOdbcDriver");
           }
           //TODO add your code for cboDb.modifyTextPostgresql
           text2.setText("dba");
           text3.setText("sql");
          }
         });
        }
        {
         label2 = new Label(group1, SWT.NONE);
         FormData label2LData = new FormData();
         label2LData.left =  new FormAttachment(0, 1000, 38);
         label2LData.top =  new FormAttachment(0, 1000, 20);
         label2LData.width = 60;
         label2LData.height = 12;
         label2.setLayoutData(label2LData);
         label2.setText("/u6570/u636e/u5e93/u9009/u62e9");
        }
        {
         FormData txtUrlLData = new FormData();
         txtUrlLData.left =  new FormAttachment(0, 1000, 110);
         txtUrlLData.top =  new FormAttachment(0, 1000, 44);
         txtUrlLData.width = 283;
         txtUrlLData.height = 12;
         txtUrl = new Text(group1, SWT.BORDER|SWT.SINGLE);
         txtUrl.setLayoutData(txtUrlLData);
         txtUrl.setOrientation(SWT.HORIZONTAL);
        }
        {
         label1 = new Label(group1, SWT.NONE);
         FormData label1LData = new FormData();
         label1LData.width = 52;
         label1LData.height = 22;
         label1LData.left =  new FormAttachment(89, 1000, 0);
         label1LData.right =  new FormAttachment(204, 1000, 0);
         label1LData.top =  new FormAttachment(230, 1000, 0);
         label1LData.bottom =  new FormAttachment(344, 1000, 0);
         label1.setLayoutData(label1LData);
         label1.setText("/u8fde/u63a5url");
        }
        {
         text1 = new Text(group1, SWT.SINGLE | SWT.BORDER);
         FormData text1LData = new FormData();
         text1LData.left =  new FormAttachment(0, 1000, 110);
         text1LData.top =  new FormAttachment(0, 1000, 71);
         text1LData.width = 283;
         text1LData.height = 12;
         text1.setLayoutData(text1LData);
         text1.setOrientation(SWT.HORIZONTAL);
        }
        {
         label3 = new Label(group1, SWT.NONE);
         FormData label3LData = new FormData();
         label3LData.left =  new FormAttachment(0, 1000, 42);
         label3LData.top =  new FormAttachment(0, 1000, 71);
         label3LData.width = 50;
         label3LData.height = 18;
         label3.setLayoutData(label3LData);
         label3.setText("/u8fde/u63a5/u7c7b");
        }
        {
         text2 = new Text(group1, SWT.SINGLE | SWT.BORDER);
         FormData text2LData = new FormData();
         text2LData.left =  new FormAttachment(0, 1000, 110);
         text2LData.top =  new FormAttachment(0, 1000, 97);
         text2LData.width = 283;
         text2LData.height = 12;
         text2.setLayoutData(text2LData);
         text2.setOrientation(SWT.HORIZONTAL);
        }
        {
         text3 = new Text(group1, SWT.SINGLE | SWT.BORDER);
         FormData text3LData = new FormData();
         text3LData.left =  new FormAttachment(0, 1000, 110);
         text3LData.top =  new FormAttachment(0, 1000, 123);
         text3LData.width = 283;
         text3LData.height = 12;
         text3.setLayoutData(text3LData);
         text3.setOrientation(SWT.HORIZONTAL);
        }
        {
         label4 = new Label(group1, SWT.NONE);
         FormData label4LData = new FormData();
         label4LData.left =  new FormAttachment(0, 1000, 42);
         label4LData.top =  new FormAttachment(0, 1000, 97);
         label4LData.width = 50;
         label4LData.height = 18;
         label4.setLayoutData(label4LData);
         label4.setText("/u7528/u6237/u540d");
        }
        {
         label5 = new Label(group1, SWT.NONE);
         FormData label5LData = new FormData();
         label5LData.left =  new FormAttachment(0, 1000, 48);
         label5LData.top =  new FormAttachment(0, 1000, 123);
         label5LData.width = 50;
         label5LData.height = 18;
         label5.setLayoutData(label5LData);
         label5.setText("/u5bc6/u7801");
        }
       }
       this.setControl(container);
      } catch (Exception e) {
       e.printStackTrace();
      }
     }
     /**
      * @see IDialogPage#createControl(Composite)
      */
     public void createControl(Composite parent) {
      initGUI(parent);
      initialize();
     }
     public IPackageFragment pac=null;
     private void initialize() {
      if (selection != null && selection.isEmpty() == false
        && selection instanceof IStructuredSelection) {
       IStructuredSelection ssel = (IStructuredSelection) selection;
       if (ssel.size() > 1)
        return;
       Object obj = ssel.getFirstElement();
       if (obj instanceof IPackageFragment) {
        pac=(IPackageFragment)obj;
         
        
        // containerText.setText(container.getFullPath().toString());
       }else
       {
        updateStatus("请选择包文件");
       }
      }

     }

     private void updateStatus(String message) {
      setErrorMessage(message);
      setPageComplete(message == null);
     }
     public String getContainerName() {
      return "q";
     }

     public ISelection getSelection() {
      return selection;
     }

     public void setSelection(ISelection selection) {
      this.selection = selection;
     }

     public Group getGroup1() {
      return group1;
     }

     public void setGroup1(Group group1) {
      this.group1 = group1;
     }

     public Button getButton2() {
      return button2;
     }

     public void setButton2(Button button2) {
      this.button2 = button2;
     }

     public Button getButton1() {
      return button1;
     }

     public void setButton1(Button button1) {
      this.button1 = button1;
     }

     public Label getLabel5() {
      return label5;
     }

     public void setLabel5(Label label5) {
      this.label5 = label5;
     }

     public Label getLabel4() {
      return label4;
     }

     public void setLabel4(Label label4) {
      this.label4 = label4;
     }

     public Text getText3() {
      return text3;
     }

     public void setText3(Text text3) {
      this.text3 = text3;
     }

     public Text getText2() {
      return text2;
     }

     public void setText2(Text text2) {
      this.text2 = text2;
     }

     public Label getLabel3() {
      return label3;
     }

     public void setLabel3(Label label3) {
      this.label3 = label3;
     }

     public Text getText1() {
      return text1;
     }

     public void setText1(Text text1) {
      this.text1 = text1;
     }

     public Combo getCboDb() {
      return cboDb;
     }

     public void setCboDb(Combo cboDb) {
      this.cboDb = cboDb;
     }

     public Label getLabel2() {
      return label2;
     }

     public void setLabel2(Label label2) {
      this.label2 = label2;
     }

     public Text getTxtUrl() {
      return txtUrl;
     }

     public void setTxtUrl(Text txtUrl) {
      this.txtUrl = txtUrl;
     }

     public Label getLabel1() {
      return label1;
     }

     public void setLabel1(Label label1) {
      this.label1 = label1;
     }

     public IPackageFragment getPac() {
      return pac;
     }

     public void setPac(IPackageFragment pac) {
      this.pac = pac;
     }
    }

    initGUI方法表示初始 向导页面 这个页面可以从 jigloo插件生成的页面拷贝过来用

    用于生成代码的帮族类

    JdbcGen

    package lhplugin.utils;

    import java.util.*;

    public class JdbcGen
    {
      protected static String nl;
      public static synchronized JdbcGen create(String lineSeparator)
      {
        nl = lineSeparator;
        JdbcGen result = new JdbcGen();
        nl = null;
        return result;
      }

      public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl;
      protected final String TEXT_1 = NL + "package ";
      protected final String TEXT_2 = ";" + NL + "" + NL + "import java.sql.*;" + NL + "import java.util.*;" + NL + "" + NL + "public class ";
      protected final String TEXT_3 = "{" + NL + "/tprivate static String url=/"";
      protected final String TEXT_4 = "/";" + NL + "/tprivate static String clsName=/"";
      protected final String TEXT_5 = "/";" + NL + "/tprivate static String uid=/"";
      protected final String TEXT_6 = "/";" + NL + "/tprivate static String pwd=/"";
      protected final String TEXT_7 = "/";" + NL + "/tpublic static synchronized Connection getConnection() throws SQLException {" + NL + "/t/tConnection conn = null;" + NL + "" + NL + "/t/ttry {" + NL + "" + NL + "/t/t/tClass.forName(clsName);" + NL + "/t/t/tconn=DriverManager.getConnection(url, uid, pwd);" + NL + "/t/t} catch (Exception e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t}" + NL + "/t/treturn conn;" + NL + "/t}" + NL + "/tpublic static void closeConnection(Connection con) {" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tif(con!=null)" + NL + "/t/t/tcon.close();" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/t// TODO Auto-generated catch block" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t}" + NL + "" + NL + "/t}" + NL + "/tpublic static boolean execute(String sql) {" + NL + "/t/tboolean bool = false;" + NL + "/t/tConnection conn = null;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "/t/t/tif (null != conn) {" + NL + "/t/t/t/tStatement sm = conn.createStatement();" + NL + "/t/t/t/tbool = sm.execute(sql);" + NL + "/t/t/t}" + NL + "/t/t} catch (SQLException e) {" + NL + "" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn bool;" + NL + "/t}" + NL + "/tpublic static boolean execute(Connection con, String sql) {" + NL + "/t/tboolean bool = false;" + NL + "/t/tConnection conn = con;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tif (null != conn) {" + NL + "/t/t/t/tStatement sm = conn.createStatement();" + NL + "/t/t/t/tbool = sm.execute(sql);" + NL + "/t/t/t}" + NL + "/t/t} catch (SQLException e) {" + NL + "" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn bool;" + NL + "/t}" + NL + "/t" + NL + "/tpublic static boolean execute(String sql, Object[] param) {" + NL + "/t/tboolean bool = false;" + NL + "/t/tConnection conn = null;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "/t/t/tif (null != conn) {" + NL + "/t/t/t/tPreparedStatement sm = conn.prepareStatement(sql);" + NL + "/t/t/t/tfor (int i = 0; i < param.length; i++) {" + NL + "/t/t/t/t/tsm.setObject(i + 1, param[i]);" + NL + "/t/t/t/t}" + NL + "/t/t/t/tbool = sm.execute();" + NL + "/t/t/t}" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "" + NL + "/t/treturn bool;" + NL + "/t}" + NL + "/tpublic static boolean[] execute(String[] sqlList) {" + NL + "/t/tboolean[] bool = new boolean[sqlList.length];" + NL + "/t/tint i = 0;" + NL + "/t/tfor (String sql : sqlList) {" + NL + "/t/t/tbool[i++] = execute(sql);" + NL + "/t/t}" + NL + "" + NL + "/t/treturn bool;" + NL + "/t}" + NL + "/tpublic static Object getUniqueValue(String sql, Object[] param) {" + NL + "/t/tConnection conn = null;" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "/t/t/tif (null != conn) {" + NL + "/t/t/t/tPreparedStatement sm = conn.prepareStatement(sql);" + NL + "/t/t/t/tif (param != null) {" + NL + "/t/t/t/t/tfor (int i = 0; i < param.length; i++) {" + NL + "/t/t/t/t/t/tsm.setObject(i + 1, param[i]);" + NL + "/t/t/t/t/t}" + NL + "/t/t/t/t}" + NL + "/t/t/t/tResultSet set = sm.executeQuery();" + NL + "/t/t/t/tset.next();" + NL + "/t/t/t/treturn set.getObject(1);" + NL + "" + NL + "/t/t/t}" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn null;" + NL + "/t}" + NL + "/tpublic static Object getUniqueValue(String sql, List param) {" + NL + "/t/tConnection conn = null;" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "/t/t/tif (null != conn) {" + NL + "/t/t/t/tPreparedStatement sm = conn.prepareStatement(sql);" + NL + "/t/t/t/tif (param != null) {" + NL + "/t/t/t/t/tfor (int i = 0; i < param.size(); i++) {" + NL + "/t/t/t/t/t/tsm.setObject(i + 1, param.get(i));" + NL + "/t/t/t/t/t}" + NL + "/t/t/t/t}" + NL + "/t/t/t/tResultSet set = sm.executeQuery();" + NL + "/t/t/t/tset.next();" + NL + "/t/t/t/treturn set.getObject(1);" + NL + "" + NL + "/t/t/t}" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn null;" + NL + "/t}" + NL + "/tpublic static int getCount(String sql) {" + NL + "/t/tint count = 0;" + NL + "/t/tString[][] list = null;" + NL + "/t/tlist = queryArray(sql, 1);" + NL + "/t/tif (null != list) {" + NL + "/t/t/tcount = Integer.parseInt(list[1][0]);" + NL + "/t/t}" + NL + "/t/treturn count;" + NL + "/t}" + NL + "/t//该方法必须添加jstl支持" + NL + "/tpublic static SortedMap[] queryList(String sql, Object[] param) {" + NL + "/t/tConnection conn = null;" + NL + "/t/tPreparedStatement ps = null;" + NL + "/t/tResultSet rs = null;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "" + NL + "/t/t/tps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE," + NL + "/t/t/t/t/tResultSet.CONCUR_READ_ONLY);" + NL + "/t/t/tif (param != null) {" + NL + "/t/t/t/tfor (int i = 0; i < param.length; i++) {" + NL + "/t/t/t/t/tps.setObject(i + 1, param[i]);" + NL + "/t/t/t/t}" + NL + "/t/t/t}" + NL + "/t/t/trs = ps.executeQuery();" + NL + "/t/t/tResult result = ResultSupport.toResult(rs);" + NL + "/t/t/treturn result.getRows();" + NL + "" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn null;" + NL + "/t}" + NL + "/tpublic static SortedMap[] queryList(String sql, List param) {" + NL + "/t/tConnection conn = null;" + NL + "/t/tPreparedStatement ps = null;" + NL + "/t/tResultSet rs = null;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "" + NL + "/t/t/tps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE," + NL + "/t/t/t/t/tResultSet.CONCUR_READ_ONLY);" + NL + "/t/t/tif (param != null) {" + NL + "/t/t/t/tfor (int i = 0; i < param.size(); i++) {" + NL + "/t/t/t/t/tps.setObject(i + 1, param.get(i));" + NL + "/t/t/t/t}" + NL + "/t/t/t}" + NL + "/t/t/trs = ps.executeQuery();" + NL + "/t/t/tResult result = ResultSupport.toResult(rs);" + NL + "/t/t/treturn result.getRows();" + NL + "" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn null;" + NL + "/t}" + NL + "/t//取0开始的count条记录" + NL + "/tpublic static SortedMap[] queryList(String sql, List param, int count) {" + NL + "/t/treturn queryList(sql,param,0,count);" + NL + "/t}" + NL + "/t//取指定location位置开始 count的数量的记录集合" + NL + "/tpublic static SortedMap[] queryList(String sql, List param, int location," + NL + "/t/t/tint count) {" + NL + "/t/tConnection conn = null;" + NL + "/t/tPreparedStatement ps = null;" + NL + "/t/tResultSet rs = null;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "" + NL + "/t/t/tps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE," + NL + "/t/t/t/t/tResultSet.CONCUR_READ_ONLY);" + NL + "/t/t/tif (param != null) {" + NL + "/t/t/t/tfor (int i = 0; i < param.size(); i++) {" + NL + "/t/t/t/t/tps.setObject(i + 1, param.get(i));" + NL + "/t/t/t/t}" + NL + "/t/t/t}" + NL + "/t/t/trs = ps.executeQuery();" + NL + "/t/t/tResult result = null;" + NL + "/t/t/tif (location != -1)" + NL + "/t/t/t/tresult = new ResultImpl(rs, location, count);" + NL + "/t/t/telse" + NL + "/t/t/t/tresult = ResultSupport.toResult(rs);" + NL + "/t/t/treturn result.getRows();" + NL + "" + NL + "/t/t} catch (SQLException e) {" + NL + "/t/t/te.printStackTrace();" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn null;" + NL + "/t}" + NL + "/tpublic static String[][] queryArray(String sql, int limit) {" + NL + "/t/tlimit += 1;" + NL + "/t/tString[][] list = null;" + NL + "/t/tConnection conn = null;" + NL + "/t/tPreparedStatement ps = null;" + NL + "/t/tResultSet rs = null;" + NL + "" + NL + "/t/ttry {" + NL + "/t/t/tconn = getConnection();" + NL + "/t/t/tif (null == conn) {" + NL + "/t/t/t/treturn list;" + NL + "/t/t/t}" + NL + "/t/t/tps = conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE," + NL + "/t/t/t/t/tResultSet.CONCUR_READ_ONLY);" + NL + "/t/t/trs = ps.executeQuery();" + NL + "" + NL + "/t/t/tif (rs == null) {" + NL + "/t/t/t/treturn list;" + NL + "/t/t/t}" + NL + "/t/t/tResultSetMetaData meta = rs.getMetaData();" + NL + "/t/t/tint columnNumber = meta.getColumnCount();" + NL + "/t/t/tlist = new String[limit][];" + NL + "/t/t/tlist[0] = new String[columnNumber];" + NL + "/t/t/tfor (int i = 0; i < columnNumber; i++) {" + NL + "/t/t/t/tlist[0][i] = meta.getColumnName(i + 1);" + NL + "/t/t/t}" + NL + "/t/t/tint x = 0;" + NL + "/t/t/twhile (rs.next()) {" + NL + "/t/t/t/tx++;" + NL + "/t/t/t/tif (x == limit)" + NL + "/t/t/t/t/tbreak;" + NL + "/t/t/t/tlist[x] = new String[columnNumber];" + NL + "/t/t/t/tfor (int i = 0; i < columnNumber; i++) {" + NL + "/t/t/t/t/tlist[x][i] = rs.getString(i + 1);" + NL + "/t/t/t/t}" + NL + "/t/t/t}" + NL + "" + NL + "/t/t} catch (SQLException e) {" + NL + "" + NL + "/t/t} finally {" + NL + "/t/t/tcloseConnection(conn);" + NL + "/t/t}" + NL + "/t/treturn list;" + NL + "/t}" + NL + "}" + NL + NL;
      protected final String TEXT_8 = NL;

      public String generate(Object argument)
      {
        final StringBuffer stringBuffer = new StringBuffer();
       
       ConnectEntry utils=(ConnectEntry)argument;
       String clsName=utils.getClsName();
       String url=utils.getUrl();
       String uid=utils.getUid();
       String pwd=utils.getPwd();
       String pac=utils.getPac();
       String cls=utils.getCls();


        stringBuffer.append(TEXT_1);
        stringBuffer.append(pac);
        stringBuffer.append(TEXT_2);
        stringBuffer.append(cls);
        stringBuffer.append(TEXT_3);
        stringBuffer.append(url);
        stringBuffer.append(TEXT_4);
        stringBuffer.append(clsName);
        stringBuffer.append(TEXT_5);
        stringBuffer.append(uid);
        stringBuffer.append(TEXT_6);
        stringBuffer.append(pwd);
        stringBuffer.append(TEXT_7);
        stringBuffer.append(TEXT_8);
        return stringBuffer.toString();
      }
    }

  • 相关阅读:
    查看版本号以及如何升级
    http协商缓存VS强缓存
    「JOISC 2012」星座(凸包)
    「科技」求欧拉数单项
    「科技」在线 O(1) 逆元
    「JOISC 2017 Day 3」自然公园(交互)
    「IOI 2021」分糖果(线段树)
    「EOJ 317A」击鼓传花(类欧)
    「CF 1483E」Vabank(交互,构造)
    「NOIP 2020」微信步数(计数)
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331555.html
Copyright © 2011-2022 走看看