ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sql转换工具

2021-07-29 10:33:25  阅读:887  来源: 互联网

标签:rdbtnString 转换 JPanel add sql new 工具 txtStr panel


package com.example.kafka.utils;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

@SuppressWarnings("serial")
public class CreateSqlWin extends JFrame {

    private JPanel contentPane;
    private JTextField txtStr;
    private JRadioButton rdbtnString;
    private JRadioButton rdbtnStringbuffer;
    private JSplitPane splitPane;
    private JTextArea newSql;
    private JTextArea oldSql;


    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    CreateSqlWin frame = new CreateSqlWin();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public CreateSqlWin() {
        setMinimumSize(new Dimension(840, 600));
        setTitle("SQL转JAVA字符串");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 842, 605);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(new BorderLayout(0, 0));

        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(10, 80));
        contentPane.add(panel, BorderLayout.NORTH);
        panel.setLayout(new BorderLayout(0, 0));

        JPanel panel_1 = new JPanel();
        panel_1.setBorder(new LineBorder(new Color(0, 0, 0)));
        panel_1.setPreferredSize(new Dimension(300, 10));
        panel.add(panel_1, BorderLayout.CENTER);
        panel_1.setLayout(null);

        JLabel label = new JLabel("选择生成方式:");
        label.setBounds(10, 10, 153, 20);
        panel_1.add(label);

        rdbtnString = new JRadioButton("String");
        rdbtnString.setSelected(true);
        rdbtnString.setBounds(52, 36, 79, 23);
        panel_1.add(rdbtnString);

        rdbtnStringbuffer = new JRadioButton("StringBuffer");
        rdbtnStringbuffer.setBounds(144, 36, 107, 23);
        panel_1.add(rdbtnStringbuffer);

        ButtonGroup bGroup = new ButtonGroup();
        bGroup.add(rdbtnString);
        bGroup.add(rdbtnStringbuffer);

        txtStr = new JTextField();
        txtStr.setText("str");
        txtStr.setBounds(313, 31, 180, 33);
        panel_1.add(txtStr);
        txtStr.setColumns(10);

        JLabel label_1 = new JLabel("输入变量名:");
        label_1.setBounds(276, 13, 87, 15);
        panel_1.add(label_1);

        JPanel panel_3 = new JPanel();
        panel_3.setBorder(new MatteBorder(1, 0, 1, 1, (Color) new Color(0, 0, 0)));
        panel_3.setPreferredSize(new Dimension(200, 10));
        panel.add(panel_3, BorderLayout.EAST);
        panel_3.setLayout(new BorderLayout(0, 0));

        JButton button = new JButton("生成");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                //生成SQL
                String oldSqlStr = oldSql.getText();
                if(oldSqlStr.equals("")){
                    JOptionPane.showMessageDialog(CreateSqlWin.this, "请在左侧输入SQL再执行!");
                    return;
                }
                //清空
                if(!newSql.getText().equals("")){
                    newSql.setText("");
                }
                String valibleName = txtStr.getText();
                if(valibleName.trim().equals("")){
                    JOptionPane.showMessageDialog(CreateSqlWin.this, "请输入变量名!");
                    return;
                }
                String[] sqls = oldSqlStr.split("\n");
                StringBuffer result = new StringBuffer();
                //对SQL进行拼接
                if(rdbtnString.isSelected()){
                    //string形式
                    for(int i=0;i<sqls.length-1;i++){
                        if(result.toString().equals("")){
                            result.append(valibleName+" = \" "+sqls[i]+" \"\n");
                        }
                        else {
                            result.append(" +\" "+sqls[i]+" \"\n");
                        }
                    }
                    result.append(" +\" "+sqls[sqls.length-1]+" \";\n");
                }
                else{
                    //string形式
                    for(int i=0;i<sqls.length;i++){
                        result.append(valibleName+".append(\" "+sqls[i]+" \");\n");
                    }
                }
                newSql.setText(result.toString());
            }
        });
        button.setFont(new Font("楷体", Font.PLAIN, 32));
        panel_3.add(button, BorderLayout.CENTER);

        JPanel panel_2 = new JPanel();
        panel_2.setBorder(new MatteBorder(0, 1, 1, 1, (Color) new Color(0, 0, 0)));
        contentPane.add(panel_2, BorderLayout.CENTER);
        panel_2.setLayout(new BorderLayout(0, 0));

        splitPane = new JSplitPane();
        splitPane.addComponentListener(new ComponentAdapter() {
            @Override
            public void componentResized(ComponentEvent e) {
                divider();
            }
        });
        panel_2.add(splitPane, BorderLayout.CENTER);

        JScrollPane scrollPane = new JScrollPane();
        splitPane.setLeftComponent(scrollPane);

        oldSql = new JTextArea();
        scrollPane.setViewportView(oldSql);

        JScrollPane scrollPane_1 = new JScrollPane();
        splitPane.setRightComponent(scrollPane_1);

        newSql = new JTextArea();
        scrollPane_1.setViewportView(newSql);

        JPanel panel_4 = new JPanel();
        FlowLayout flowLayout = (FlowLayout) panel_4.getLayout();
        flowLayout.setAlignment(FlowLayout.LEFT);
        panel_4.setPreferredSize(new Dimension(10, 30));
        panel_2.add(panel_4, BorderLayout.NORTH);

        JLabel lblsql = new JLabel("请在左侧输入你要格式化的SQL语句:");
        lblsql.setHorizontalAlignment(SwingConstants.LEFT);
        panel_4.add(lblsql);
    }

    public void divider(){
        splitPane.setDividerLocation(0.4);
    }
}

标签:rdbtnString,转换,JPanel,add,sql,new,工具,txtStr,panel
来源: https://www.cnblogs.com/fanwenyan/p/15073665.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有