亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

不同數據庫之間導入導出

張軍 3398 0

導入導出,是數據庫的一種專用命令。這里的數據庫指的是軟件方面的所有與之有關的數據庫。

不同數據庫對于導入導出的要求不同。

張軍博客張軍博客

張軍博客

package zjexec.util;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.Serializable;
import java.sql.Connection;
import java.util.Date;
import java.util.Vector;
import java.util.prefs.Preferences;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;

import org.apache.log4j.Logger;

import zjexec.bean.common.Schema;
import zjexec.bean.dialect.AbsDialect;
import zjexec.bean.jframe.ComboxItem;
import zjexec.bean.jframe.DBTableFrame;
import zj.io.util.FileUtil;
import zj.jdbc.bean.DBInfo;
import zj.jdbc.util.JdbcUtil;
import zj.serverTimeout.util.ServiceConnect;

/**
 * 
 * @author zhangjun
 * 
 */
public class SchemaFrameUtil implements Serializable {
	private static final long serialVersionUID = 1L;
	private transient static final Logger log = Logger.getLogger(SchemaFrameUtil.class);
	private JFrame jframe = null;
	/**
	 * btn1:測試源數據源連接 btn2:測試目標數據源連接 btn3:導出指定表 btn4:導入指定表 btn6:打開*.DDL btn18:DDL保存... btn20:DML瀏覽... btn21:DML保存... execBtn:開始執行... closeBtn:關閉
	 **/
	private JButton btn1, btn2, btn3, btn4, btn6, btn18, btn20, btn21, execBtn, closeBtn;
	/**
	 * jtf3:源ConnectionURL值 jtf4:源UserName jtf5:源Password jtf6:open-DDL文件 jtf13:目標ConnectionURL值 jtf14:目標UserName jtf15:目標Password jtf18:save-DDL文件 jlb20:open-DML文件 jlb21:save-DML文件
	 */
	private JTextField jtf3, jtf4, jtf5, jtf6, jtf13, jtf14, jtf15, jtf18, jtf20, jtf21;
	private JLabel jlb1, jlb2, jlb3, jlb4, jlb5, jlb6, jlb7, jlb8, jlb9, jlb10, jlb11, jlb13, jlb14, jlb15, jlb16, jlb17, jlb18, jlb20, jlb21, jlb22, jlb23;

	private int linex = 30;
	private int liney1 = 10, liney2 = 50, liney3 = 90, liney4 = 130, liney5 = 170, liney6 = 210, liney7 = 250, liney8 = 290, liney9 = 330, liney10 = 370, liney11 = 410, liney12 = 450, liney13 = 490;
	/** jcb1:導出DDL-SQL,jcb2:導出DML-SQL,jcb3:多個dml-sql文件 **/
	private JCheckBox jcb1, jcb2, jcb3;
	/**
	 * select_jlb1:操作類型("請選擇", "0:數據源導入", "1:DDL文件導入","2:DML文件導入","3:DDL文件導出","4:DML文件導出") select_jlb2:源DriverTemplate類型值 select_jlb9:目標數據源DDL select_jlb10:目標數據源DML select_jlb12:目標DriverTemplate類型值 select_jlb23 :導出DB文件格式方言
	 */
	private JComboBox select_jlb1, select_jlb2, select_jlb9, select_jlb10, select_jlb12, select_jlb23;
	/**
	 * checkbox_jlb1:選擇 private JCheckBox checkbox_jcb1; radio_jrb1:DDL操作 radio_jrb2:DML操作 private JRadioButton radio_jrb1, radio_jrb2;
	 */
	private String line = "----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";
	private Connection conn;
	private String absDialect;
	private String title = "多數據庫之間表操作-張軍(手機:15656856396,QQ:360901061)制作";
	/** 測試源數據源連接 **/
	private static final String btn1Text = "測試源數據源連接";
	/** 測試目標數據源連接 **/
	private static final String btn2Text = "測試目標數據源連接";
	/** 導出指定表 **/
	private static final String btn3Text = "導出指定表";
	/** 導入指定表 **/
	private static final String btn4Text = "導入指定表";
	/** 打開*.DDL **/
	private static final String btn6Text = "打開*.DDL";
	/** 保存DDL文件 **/
	private static final String jlb18Text = "保存DDL文件";
	/** 操作類型 **/
	private static final String jlb1Text = "操作類型";
	// TODO d
	/** 目標DML操作 **/
	private static final String jlb10Text = "目標DML操作";
	/** DriverTemplate **/
	private static final String jlb11Text = "驅動模板";
	/** ConnectionURL **/
	private static final String jlb13Text = "連接URL";
	/** UserName **/
	private static final String jlb14Text = "用戶名";
	/** Password **/
	private static final String jlb15Text = "密碼";
	/** 開始執行... **/
	private static final String execBtnText = "開始執行...";
	/** 關閉 **/
	private static final String closeBtnText = "關閉";
	/** 請選擇 **/
	private static final String selectDefaultText = "請選擇";
	/** 導出DB文件格式方言 **/
	private static final String jlb23Text = "導出DB文件格式方言";
	/** DriverTemplate **/
	private static final String jlb2Text = "驅動模板";
	/** ConnectionURL **/
	private static final String jlb3Text = "連接URL";
	/** UserName **/
	private static final String jlb4Text = "用戶名";
	/** Password **/
	private static final String jlb5Text = "密碼";
	/** 導出DDL-SQL **/
	private static final String jcb1Text = "導出DDL-SQL";
	/** 導出DML-SQL **/
	private static final String jcb2Text = "導出DML-SQL";
	/** 導出DML-SQL **/
	private static final String jcb3Text = "多個SQL文件";
	/** 選擇DDL文件 **/
	private static final String jlb6Text = "選擇DDL文件";
	/** 保存*.DDL **/
	private static final String btn18Text = "保存*.DDL";
	/** 選擇DML文件 **/
	private static final String jlb20Text = "選擇DML文件";
	/** 打開*.DML **/
	private static final String btn20Text = "打開*.DML";
	/** 保存DML文件 **/
	private static final String jlb21Text = "保存DML文件";
	/** 保存*.DML **/
	private static final String btn21Text = "保存*.DML";
	/** 目標DDL操作 **/
	private static final String jlb9Text = "目標DDL操作";

	// /****/
	// private static final String = ;
	// /****/
	// private static final String = ;
	// /****/
	// private static final String = ;
	// /****/
	// private static final String = ;

	/**
	 * 禁用源數據源
	 */
	private void disabledSrcDataSource() {
		this.select_jlb2.setEnabled(false);
		this.jtf3.setEditable(false);
		this.jtf4.setEditable(false);
		this.jtf5.setEditable(false);
		this.btn1.setEnabled(false);
		this.btn3.setEnabled(false);

		// this.select_jlb2.setSelectedIndex(0);
		// this.jtf5.setText("");
		// this.jtf3.setText("");
		// this.jtf4.setText("");
	}

	/**
	 * 啟用源數據源
	 */
	private void enabledSrcDataSource() {
		this.select_jlb2.setEnabled(true);
		if (!"".equals(((ComboxItem) select_jlb2.getSelectedItem()).value)) {
			this.jtf3.setEditable(true);
			this.jtf4.setEditable(true);
			this.jtf5.setEditable(true);
		}
		this.btn1.setEnabled(true);
		if (otherFrameExport == null) {
			this.btn3.setEnabled(true);
		}
	}

	/**
	 * 禁用目標數據源
	 */
	private void disabledDescDataSource() {
		this.select_jlb12.setEnabled(false);
		this.jtf13.setEditable(false);
		this.jtf14.setEditable(false);
		this.jtf15.setEditable(false);
		this.btn2.setEnabled(false);
		this.btn4.setEnabled(false);

		// this.select_jlb12.setSelectedIndex(0);
		// this.jtf13.setText("");
		// this.jtf14.setText("");
		// this.jtf15.setText("");
	}

	/**
	 * 啟用目標數據源
	 */
	private void enabledDescDataSource() {
		this.select_jlb12.setEnabled(true);
		if (!"".equals(((ComboxItem) select_jlb12.getSelectedItem()).value)) {
			this.jtf13.setEditable(true);
			this.jtf14.setEditable(true);
			this.jtf15.setEditable(true);
		}
		this.btn2.setEnabled(true);
		if (otherFrameImport == null) {
			this.btn4.setEnabled(true);
		}
	}

	/**
	 * 禁用DDL/DML單選/選擇框
	 */
	private void disabledDescDDLDML() {
		this.select_jlb9.setEnabled(false);
		this.select_jlb10.setEnabled(false);
		// this.select_jlb9.setSelectedIndex(0);
		// this.select_jlb10.setSelectedIndex(0);
	}

	/**
	 * 通過DDL/DML單選判斷禁用DDL
	 */
	private void disabledDescDDLByRadio() {
		this.select_jlb9.setEnabled(false);
		this.select_jlb10.setEnabled(true);
		// this.select_jlb9.setSelectedIndex(0);
	}

	/**
	 * 通過DDL/DML單選判斷禁用DML
	 */
	private void disabledDescDMLByRadio() {
		this.select_jlb9.setEnabled(true);
		this.select_jlb10.setEnabled(false);
		// this.select_jlb10.setSelectedIndex(0);
	}

	/**
	 * 禁用DDL文件
	 */
	private void disabledDDLFile() {
		this.jtf6.setEditable(false);
		this.btn6.setEnabled(false);
		this.jtf18.setEditable(false);
		this.btn18.setEnabled(false);
		this.jcb1.setEnabled(false);
		this.jcb2.setEnabled(false);
		// this.jtf6.setText("");
		// this.jtf18.setText("");
		disabledSqlFileType();
	}

	/**
	 * 啟用open-DDL文件
	 */
	private void enableOpenDDLFile() {
		this.jtf6.setEditable(true);
		this.btn6.setEnabled(true);
	}

	/**
	 * 啟用save-DDL文件
	 */
	private void enableSaveDDLFile() {
		this.jtf18.setEditable(true);
		this.btn18.setEnabled(true);
		this.jcb1.setEnabled(true);
	}

	/**
	 * 禁用DML文件
	 */
	private void disabledDMLFile() {
		this.jtf20.setEditable(false);
		this.btn20.setEnabled(false);
		this.jtf21.setEditable(false);
		this.btn21.setEnabled(false);
		// this.jtf20.setText("");
		// this.jtf21.setText("");
		this.jcb1.setEnabled(false);
	}

	/**
	 * 啟用open-DML文件
	 */
	private void enableOpenDMLFile() {
		this.jtf20.setEditable(true);
		this.btn20.setEnabled(true);
	}

	/**
	 * 啟用save-DML文件
	 */
	private void enableSaveDMLFile() {
		this.jtf21.setEditable(true);
		this.btn21.setEnabled(true);
		this.jcb2.setEnabled(true);
	}

	/**
	 * 禁用共通
	 */
	private void disabled() {
		this.select_jlb23.setEnabled(false);
	}

	/**
	 * 啟用共通
	 */
	private void enable() {
		this.select_jlb23.setEnabled(true);
	}

	/**
	 * 禁用導出sql文件類型
	 */
	private void disabledSqlFileType() {
		this.jcb3.setEnabled(false);
	}

	/**
	 * 啟用導出sql文件類型
	 */
	private void enableSqlFileType() {
		this.jcb3.setEnabled(true);
	}

	// select_jlb1.setEditable(true);//combobox設為可編輯
	/**
	 * 主窗口
	 */
	public void setFrame() {
		jframe = new JFrame(title);
		addEventHandler();
		jframe.setLayout(null);
		setComboxItems();
		// 源數據源判斷*********************************************
		jlb1 = new JLabel(jlb1Text);
		jlb1.setBounds(linex + 5, liney1, 105, 30);
		jframe.add(jlb1);

		select_jlb1.setBounds(linex + 115, liney1, 105, 30);
		jframe.add(select_jlb1);

		btn1 = new JButton(btn1Text);
		btn1.setBounds(linex + 225, liney1, 150, 30);
		jframe.add(btn1);

		btn3 = new JButton(btn3Text);
		btn3.setBounds(linex + 380, liney1, 120, 30);
		jframe.add(btn3);

		btn2 = new JButton(btn2Text);
		btn2.setBounds(linex + 505, liney1, 150, 30);
		jframe.add(btn2);

		btn4 = new JButton(btn4Text);
		btn4.setBounds(linex + 660, liney1, 120, 30);
		jframe.add(btn4);

		jlb23 = new JLabel(jlb23Text);
		jlb23.setBounds(linex + 785, liney1, 125, 30);
		jframe.add(jlb23);

		select_jlb23.setBounds(linex + 915, liney1, 120, 30);
		jframe.add(select_jlb23);
		// *********************************************
		jlb8 = new JLabel("-----------------------------------------------------------------------------------------------------------------------源數據庫配置開始-----------------------------------------------------------------------------------------------------------------------");
		jlb8.setBounds(linex + 5, liney2, 1080, 30);
		jframe.add(jlb8);
		// 源數據源*********************************************

		jlb2 = new JLabel(jlb2Text);
		jlb2.setBounds(linex + 5, liney3, 105, 30);
		jframe.add(jlb2);

		select_jlb2.setBounds(linex + 115, liney3, 105, 30);
		jframe.add(select_jlb2);

		jlb3 = new JLabel(jlb3Text);
		jlb3.setBounds(linex + 225, liney3, 105, 30);
		jframe.add(jlb3);

		jtf3 = new JTextField();
		jtf3.setBounds(linex + 335, liney3, 305, 30);
		jframe.add(jtf3);

		jlb4 = new JLabel(jlb4Text);
		jlb4.setBounds(linex + 645, liney3, 105, 30);
		jframe.add(jlb4);

		jtf4 = new JTextField();
		jtf4.setBounds(linex + 755, liney3, 105, 30);
		jframe.add(jtf4);

		jlb5 = new JLabel(jlb5Text);
		jlb5.setBounds(linex + 865, liney3, 105, 30);
		jframe.add(jlb5);

		jtf5 = new JPasswordField();
		jtf5.setBounds(linex + 975, liney3, 105, 30);
		jframe.add(jtf5);
		// DDL文件*********************************************
		jlb7 = new JLabel("-----------------------------------------------------------------------------------------------------------------------源數據庫配置結束-----------------------------------------------------------------------------------------------------------------------");
		jlb7.setBounds(linex + 5, liney4, 1080, 30);
		jframe.add(jlb7);
		// *********************************************
		jcb1 = new JCheckBox(jcb1Text);
		jcb1.setBounds(linex + 5, liney5, 120, 30);
		jframe.add(jcb1);

		jcb2 = new JCheckBox(jcb2Text);
		jcb2.setBounds(linex + 130, liney5, 120, 30);
		jframe.add(jcb2);

		jcb3 = new JCheckBox(jcb3Text);
		jcb3.setBounds(linex + 255, liney5, 120, 30);
		jframe.add(jcb3);

		jlb6 = new JLabel(jlb6Text);
		jlb6.setBounds(linex + 5, liney6, 105, 30);
		jframe.add(jlb6);

		jtf6 = new JTextField();
		jtf6.setBounds(linex + 115, liney6, 305, 30);
		jframe.add(jtf6);

		btn6 = new JButton(btn6Text);
		btn6.setBounds(linex + 425, liney6, 100, 30);
		jframe.add(btn6);

		jlb18 = new JLabel(jlb18Text);
		jlb18.setBounds(linex + 530, liney6, 105, 30);
		jframe.add(jlb18);

		jtf18 = new JTextField();
		jtf18.setBounds(linex + 640, liney6, 305, 30);
		jframe.add(jtf18);

		btn18 = new JButton(btn18Text);
		btn18.setBounds(linex + 950, liney6, 100, 30);
		jframe.add(btn18);

		// *********************************************
		// jlb19 = new JLabel(line);
		// jlb19.setBounds(linex + 5, liney6, 1080, 30);
		// jframe.add(jlb19);
		// DML文件*********************************************
		jlb20 = new JLabel(jlb20Text);
		jlb20.setBounds(linex + 5, liney7, 105, 30);
		jframe.add(jlb20);

		jtf20 = new JTextField();
		jtf20.setBounds(linex + 115, liney7, 305, 30);
		jframe.add(jtf20);

		btn20 = new JButton(btn20Text);
		btn20.setBounds(linex + 425, liney7, 100, 30);
		jframe.add(btn20);

		jlb21 = new JLabel(jlb21Text);
		jlb21.setBounds(linex + 530, liney7, 105, 30);
		jframe.add(jlb21);

		jtf21 = new JTextField();
		jtf21.setBounds(linex + 640, liney7, 305, 30);
		jframe.add(jtf21);

		btn21 = new JButton(btn21Text);
		btn21.setBounds(linex + 950, liney7, 100, 30);
		jframe.add(btn21);
		// *********************************************
		jlb22 = new JLabel(line);
		jlb22.setBounds(linex + 5, liney8, 1080, 30);
		jframe.add(jlb22);
		// 目標數據源操作*********************************************
		jlb9 = new JLabel(jlb9Text);
		jlb9.setBounds(linex + 5, liney9, 105, 30);
		jframe.add(jlb9);

		// ButtonGroup bg = new ButtonGroup();
		// radio_jrb1 = new JRadioButton("DDL");
		// radio_jrb1.setBounds(linex+115, liney9, 50, 30);
		// bg.add(radio_jrb1);
		// radio_jrb2 = new JRadioButton("DML");
		// radio_jrb2.setBounds(linex+170, liney9, 50, 30);
		// bg.add(radio_jrb2);
		// jframe.add(radio_jrb1);
		// jframe.add(radio_jrb2);

		select_jlb9.setBounds(linex + 115, liney9, 105, 30);
		jframe.add(select_jlb9);

		jlb10 = new JLabel(jlb10Text);
		jlb10.setBounds(linex + 225, liney9, 105, 30);
		jframe.add(jlb10);

		select_jlb10.setBounds(linex + 335, liney9, 105, 30);
		jframe.add(select_jlb10);
		// *********************************************
		jlb16 = new JLabel("-----------------------------------------------------------------------------------------------------------------------目標數據庫配置開始-----------------------------------------------------------------------------------------------------------------------");
		jlb16.setBounds(linex + 5, liney10, 1080, 30);
		jframe.add(jlb16);
		// 目標數據源*********************************************
		jlb11 = new JLabel(jlb11Text);
		jlb11.setBounds(linex + 5, liney11, 105, 30);
		jframe.add(jlb11);

		select_jlb12.setBounds(linex + 115, liney11, 105, 30);
		jframe.add(select_jlb12);

		jlb13 = new JLabel(jlb13Text);
		jlb13.setBounds(linex + 225, liney11, 105, 30);
		jframe.add(jlb13);

		jtf13 = new JTextField();
		jtf13.setBounds(linex + 335, liney11, 305, 30);
		jframe.add(jtf13);

		jlb14 = new JLabel(jlb14Text);
		jlb14.setBounds(linex + 645, liney11, 105, 30);
		jframe.add(jlb14);

		jtf14 = new JTextField();
		jtf14.setBounds(linex + 755, liney11, 105, 30);
		jframe.add(jtf14);

		jlb15 = new JLabel(jlb15Text);
		jlb15.setBounds(linex + 865, liney11, 105, 30);
		jframe.add(jlb15);

		jtf15 = new JPasswordField();
		jtf15.setBounds(linex + 975, liney11, 105, 30);
		jframe.add(jtf15);
		// *********************************************
		jlb17 = new JLabel("-----------------------------------------------------------------------------------------------------------------------目標數據庫配置結束-----------------------------------------------------------------------------------------------------------------------");
		jlb17.setBounds(linex + 5, liney12, 1080, 30);
		jframe.add(jlb17);
		// 操作*********************************************
		execBtn = new JButton(execBtnText);
		execBtn.setBounds(linex + 330, liney13, 100, 30);
		jframe.add(execBtn);

		closeBtn = new JButton(closeBtnText);
		closeBtn.setBounds(linex + 560, liney13, 120, 30);
		jframe.add(closeBtn);

		// 添加監聽*********************************************
		btn1.addActionListener(new ExecCommondActionEvent());
		btn2.addActionListener(new ExecCommondActionEvent());
		btn3.addActionListener(new ExecCommondActionEvent());
		btn4.addActionListener(new ExecCommondActionEvent());
		btn6.addActionListener(new ExecCommondActionEvent());
		btn18.addActionListener(new ExecCommondActionEvent());
		btn20.addActionListener(new ExecCommondActionEvent());
		btn21.addActionListener(new ExecCommondActionEvent());
		execBtn.addActionListener(new ExecCommondActionEvent());
		closeBtn.addActionListener(new ExecCommondActionEvent());
		select_jlb1.addItemListener(select_jlb1Listener);
		select_jlb2.addItemListener(select_DBType);
		select_jlb12.addItemListener(select_DBType);
		select_jlb23.addItemListener(select_jlb23Listener);
		// radio_jrb1.addActionListener(new Radio_jrb1Listener());
		// radio_jrb2.addActionListener(new Radio_jrb1Listener());
		jcb2.addItemListener(jcb2Listener);
		// *********************************************
		disabledSrcDataSource();
		disabledDescDataSource();
		disabledDDLFile();
		disabledDMLFile();
		disabledDescDDLDML();
		disabled();
		// *********************************************
	}

	/** 顯示菜單 **/
	public void showMe() {
		jframe.setSize(1150, 630);
		jframe.setLocation(10, 10);
		jframe.setVisible(true);
		jframe.setResizable(false);
		jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		jframe.setAlwaysOnTop(false);
	}

	/**
	 * 關閉窗口
	 */
	public void addEventHandler() {
		jframe.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				exitConfirm();
			}
		});
	}

	private ItemListener select_jlb1Listener = new ItemListener() {
		public void itemStateChanged(ItemEvent e) {
			if (e.getStateChange() == ItemEvent.SELECTED) {
				JComboBox jcb = (JComboBox) e.getSource();
				ComboxItem item = (ComboxItem) jcb.getSelectedItem();
				disabledSrcDataSource();
				disabledDescDataSource();
				disabledDDLFile();
				disabledDMLFile();
				disabledDescDDLDML();
				// "請選擇", "0:數據源導入", "1:DDL文件導入","2:DML文件導入","3:DDL文件導出","4:DML文件導出"
				enable();
				if (Schema.TYPE_DDL_DML.equals(item.value)) {
					enabledSrcDataSource();
					enabledDescDataSource();
					btn4.setEnabled(false);
				} else if (Schema.TYPE_IMPORT_DDL.equals(item.value)) {
					enabledDescDataSource();
					disabledDescDMLByRadio();
					enableOpenDDLFile();
				} else if (Schema.TYPE_IMPORT_DML.equals(item.value)) {
					enabledDescDataSource();
					disabledDescDDLByRadio();
					enableOpenDMLFile();
				} else if (Schema.TYPE_EXPORT_DDL.equals(item.value)) {
					enabledSrcDataSource();
					enableSaveDDLFile();
				} else if (Schema.TYPE_EXPORT_DML.equals(item.value)) {
					enabledSrcDataSource();
					enableSaveDMLFile();
				} else {
					disabled();
				}
			}
		}
	};

	private String getJtfValue13(String dbType) {
		jtf13.setEditable(true);
		jtf14.setEditable(true);
		jtf15.setEditable(true);
		String default_jtf13 = jtf13.getText();
		// "請選擇", "0:Oracle", "1:MySql"
		if (JdbcUtil.DB_TYPE_ORACLE.equals(dbType)) {
			default_jtf13 = JdbcUtil.DB_TYPE_ORACLE_URL;
		} else if (JdbcUtil.DB_TYPE_MYSQL.equals(dbType)) {
			default_jtf13 = JdbcUtil.DB_TYPE_MYSQL_URL;
		} else if (JdbcUtil.DB_TYPE_INFORMIX.equals(dbType)) {
			default_jtf13 = JdbcUtil.DB_TYPE_INFORMIX_URL;
		} else if (JdbcUtil.DB_TYPE_DB2.equals(dbType)) {
			default_jtf13 = JdbcUtil.DB_TYPE_DB2_URL;
		} else {
			jtf13.setEditable(false);
			jtf14.setEditable(false);
			jtf15.setEditable(false);
		}
		return default_jtf13;
	}

	private String getJtfValue3(String dbType) {
		jtf3.setEditable(true);
		jtf4.setEditable(true);
		jtf5.setEditable(true);
		String default_jtf3 = jtf3.getText();
		// "請選擇", "0:Oracle", "1:MySql"
		if (JdbcUtil.DB_TYPE_ORACLE.equals(dbType)) {
			default_jtf3 = JdbcUtil.DB_TYPE_ORACLE_URL;
		} else if (JdbcUtil.DB_TYPE_MYSQL.equals(dbType)) {
			default_jtf3 = JdbcUtil.DB_TYPE_MYSQL_URL;
		} else if (JdbcUtil.DB_TYPE_INFORMIX.equals(dbType)) {
			default_jtf3 = JdbcUtil.DB_TYPE_INFORMIX_URL;
		} else if (JdbcUtil.DB_TYPE_DB2.equals(dbType)) {
			default_jtf3 = JdbcUtil.DB_TYPE_DB2_URL;
		} else {
			jtf3.setEditable(false);
			jtf4.setEditable(false);
			jtf5.setEditable(false);
		}
		return default_jtf3;
	}

	private ItemListener select_DBType = new ItemListener() {
		public void itemStateChanged(ItemEvent e) {
			if (e.getStateChange() == ItemEvent.SELECTED) {
				JComboBox jcb = (JComboBox) e.getSource();
				ComboxItem item = (ComboxItem) jcb.getSelectedItem();
				String dbType = item.value;
				String type = item.type;
				item = (ComboxItem) select_jlb1.getSelectedItem();
				// "請選擇", "0:數據源導入", "1:DDL文件導入","2:DML文件導入","3:DDL文件導出","4:DML文件導出"
				String dbType2 = item.value;
				String default_jtf13 = jtf13.getText();
				String default_jtf3 = jtf3.getText();
				if (Schema.TYPE_IMPORT_DDL.equals(dbType2) || Schema.TYPE_IMPORT_DML.equals(dbType2)) {
					default_jtf13 = getJtfValue13(dbType);
				} else if (Schema.TYPE_EXPORT_DDL.equals(dbType2) || Schema.TYPE_EXPORT_DML.equals(dbType2)) {
					default_jtf3 = getJtfValue3(dbType);
				} else if (Schema.TYPE_DDL_DML.equals(dbType2)) {
					if (Schema.TYPE_0.equals(type)) {
						default_jtf3 = getJtfValue3(dbType);
					} else if (Schema.TYPE_1.equals(type)) {
						default_jtf13 = getJtfValue13(dbType);
					} else {

					}
				}
				jtf13.setText(default_jtf13);
				jtf3.setText(default_jtf3);
			}
		}
	};
	private ItemListener select_jlb23Listener = new ItemListener() {
		public void itemStateChanged(ItemEvent e) {
			if (e.getStateChange() == ItemEvent.SELECTED) {
				JComboBox jcb = (JComboBox) e.getSource();
				ComboxItem item = (ComboxItem) jcb.getSelectedItem();
				absDialect = item.value;
				log.debug("導出DB文件格式方言:" + absDialect);
			}
		}
	};

	// private class Radio_jrb1Listener implements ActionListener {
	// public void actionPerformed(ActionEvent e) {
	// JRadioButton rb = (JRadioButton) e.getSource();
	// if ("DML".equalsIgnoreCase(rb.getText())) {
	// disabledDescDDLByRadio();
	// } else {
	// disabledDescDMLByRadio();
	// }
	// }
	// }
	private ItemListener jcb2Listener = new ItemListener() {
		public void itemStateChanged(ItemEvent e) {
			JCheckBox source = (JCheckBox) e.getSource();
			if (source.isEnabled()) {
				if (source.isSelected()) {
					enableSqlFileType();
				} else {
					disabledSqlFileType();
				}
			} else {
			}
		}
	};

	/**
	 * 設置下拉框值
	 * 
	 * @author zhangjun
	 * 
	 */
	private void setComboxItems() {
		Vector<ComboxItem> model = null;
		// 源數據源
		// "請選擇", "0:數據源導入", "1:DDL文件導入","2:DML文件導入","3:DDL文件導出","4:DML文件導出"
		model = new Vector<ComboxItem>();
		model.addElement(new ComboxItem("", selectDefaultText));
		model.addElement(new ComboxItem(Schema.TYPE_DDL_DML, "數據源導入"));
		model.addElement(new ComboxItem(Schema.TYPE_IMPORT_DDL, "DDL文件導入"));
		model.addElement(new ComboxItem(Schema.TYPE_IMPORT_DML, "DML文件導入"));
		model.addElement(new ComboxItem(Schema.TYPE_EXPORT_DDL, "DDL文件導出"));
		model.addElement(new ComboxItem(Schema.TYPE_EXPORT_DML, "DML文件導出"));
		select_jlb1 = new JComboBox(model);
		model = new Vector<ComboxItem>();
		model.addElement(new ComboxItem("", selectDefaultText, Schema.TYPE_0));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_ORACLE, JdbcUtil.DB_TYPE_ORACLE, Schema.TYPE_0));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_MYSQL, JdbcUtil.DB_TYPE_MYSQL, Schema.TYPE_0));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_INFORMIX, JdbcUtil.DB_TYPE_INFORMIX, Schema.TYPE_0));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_DB2, JdbcUtil.DB_TYPE_DB2, Schema.TYPE_0));
		select_jlb2 = new JComboBox(model);
		// 目標數據源
		// "請選擇", "DDL全部", "刪除表", "創建表", "創建索引", "創建外鍵", "刪除索引", "刪除外鍵"
		model = new Vector<ComboxItem>();
		model.addElement(new ComboxItem("", selectDefaultText));
		model.addElement(new ComboxItem(null, "DDL全部"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_CREATE_TABLE, "創建表"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_CREATE_FK, "創建外鍵"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_CREATE_IDX, "創建索引"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_CREATE_REMARK, "創建備注"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_DROP_TABLE, "刪除表"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_DROP_FK, "刪除外鍵"));
		model.addElement(new ComboxItem(Schema.DDL_TYPE_DROP_IDX, "刪除索引"));
		select_jlb9 = new JComboBox(model);
		// "請選擇", "插入數據"
		model = new Vector<ComboxItem>();
		model.addElement(new ComboxItem("", selectDefaultText));
		model.addElement(new ComboxItem(Schema.DML_TYPE_INSERT_TABLE, "插入數據"));
		select_jlb10 = new JComboBox(model);
		model = new Vector<ComboxItem>();
		model.addElement(new ComboxItem("", selectDefaultText, Schema.TYPE_1));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_ORACLE, JdbcUtil.DB_TYPE_ORACLE, Schema.TYPE_1));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_MYSQL, JdbcUtil.DB_TYPE_MYSQL, Schema.TYPE_1));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_INFORMIX, JdbcUtil.DB_TYPE_INFORMIX, Schema.TYPE_1));
		model.addElement(new ComboxItem(JdbcUtil.DB_TYPE_DB2, JdbcUtil.DB_TYPE_DB2, Schema.TYPE_1));
		select_jlb12 = new JComboBox(model);
		model = new Vector<ComboxItem>();
		model.addElement(new ComboxItem("", selectDefaultText));
		model.addElement(new ComboxItem(AbsDialect.DB_FILE_TYPE_ORACLE, JdbcUtil.DB_TYPE_ORACLE));
		model.addElement(new ComboxItem(AbsDialect.DB_FILE_TYPE_MYSQL, JdbcUtil.DB_TYPE_MYSQL));
		model.addElement(new ComboxItem(AbsDialect.DB_FILE_TYPE_INFORMIX, JdbcUtil.DB_TYPE_INFORMIX));
		model.addElement(new ComboxItem(AbsDialect.DB_FILE_TYPE_DB2, JdbcUtil.DB_TYPE_DB2));
		select_jlb23 = new JComboBox(model);

	}

	/***
	 * 測試DB連接
	 * 
	 * @param str
	 * @return
	 * @throws Exception
	 */
	private String testDBConnection(String str) throws Exception {
		String msg = "";
		DBInfo dbInfo = new DBInfo();
		try {
			if (btn1Text.equals(str)) {
				ComboxItem item = (ComboxItem) select_jlb2.getSelectedItem();
				if ("".equals(item.value)) {
					throw new Exception("請選擇源驅動模板");
				}
				dbInfo.setUserName(jtf4.getText());
				dbInfo.setPassword(jtf5.getText());
				dbInfo.setUrl(jtf3.getText());
				dbInfo.setDbType(((ComboxItem) select_jlb2.getSelectedItem()).value);
			} else if (btn2Text.equals(str)) {
				ComboxItem item = (ComboxItem) select_jlb12.getSelectedItem();
				if ("".equals(item.value)) {
					throw new Exception("請選擇目標驅動模板");
				}
				dbInfo.setUserName(jtf14.getText());
				dbInfo.setPassword(jtf15.getText());
				dbInfo.setUrl(jtf13.getText());
				dbInfo.setDbType(((ComboxItem) select_jlb12.getSelectedItem()).value);
			}
			log.debug("數據庫類型:" + dbInfo.getDbType());
			log.debug("數據庫URL:" + dbInfo.getUrl());
			log.debug("數據庫用戶名:" + dbInfo.getUserName());
			log.debug("數據庫密碼:" + dbInfo.getPassword());
			if (btn1Text.equals(str)) {
				conn = (Connection) ServiceConnect.getServiceValue(new JdbcUtil(), "getConnInstance", new Object[] { dbInfo }, 5000);
				if (conn == null) {
					msg = "源數據源連接異常";
					throw new Exception(msg);
				} else {
					msg = "源數據源連接成功";
				}
			} else if (btn2Text.equals(str)) {
				File logFile = new File("C:" + File.separator + "log" + File.separator);
				if (!logFile.exists()) {
					logFile.mkdirs();
				}
				conn = (Connection) ServiceConnect.getServiceValue(new JdbcUtil(), "getConnInstance", new Object[] { dbInfo }, 5000);
				if (conn == null) {
					msg = "目標數據源數據源連接異常";
					throw new Exception(msg);
				} else {
					msg = "目標數據源數據源連接成功";
				}
			}
		} catch (Exception e1) {
			msg = "數據庫連接失敗" + e1.getMessage();
			e1.printStackTrace();
			throw new Exception(msg);
		}
		return msg;
	}

	/**
	 * 默認true通過,false不通過 驗證數據源
	 * 
	 * @param type
	 *            [0:源,1:目標]
	 * @return
	 */
	private boolean chkDB(String type) {
		ComboxItem item = null;
		if (type == null || Schema.TYPE_0.equals(type)) {
			item = (ComboxItem) select_jlb2.getSelectedItem();
			if ("".equals(item.value)) {
				JOptionPane.showMessageDialog(null, "請選擇源驅動模板", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if ("".equals(this.jtf3.getText().trim())) {
				JOptionPane.showMessageDialog(null, "請填寫源數據源連接URL串", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if ("".equals(this.jtf4.getText().trim())) {
				JOptionPane.showMessageDialog(null, "請填寫源數據源用戶名", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if ("".equals(this.jtf5.getText().trim())) {
				JOptionPane.showMessageDialog(null, "請填寫源數據源密碼", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
		}
		if (type == null || Schema.TYPE_1.equals(type)) {
			item = (ComboxItem) select_jlb12.getSelectedItem();
			if ("".equals(item.value)) {
				JOptionPane.showMessageDialog(null, "請選擇目標驅動模板", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if ("".equals(this.jtf13.getText().trim())) {
				JOptionPane.showMessageDialog(null, "請填寫目標數據源連接URL串", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if ("".equals(this.jtf14.getText().trim())) {
				JOptionPane.showMessageDialog(null, "請填寫目標數據源用戶名", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if ("".equals(this.jtf15.getText().trim())) {
				JOptionPane.showMessageDialog(null, "請填寫目標數據源密碼", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
		}
		return true;
	}

	/** 驗證導入DDL文件 **/
	private boolean chkJtf6() {
		try {
			String sjtf6 = this.jtf6.getText().trim();
			if ("".equals(sjtf6)) {
				JOptionPane.showMessageDialog(null, "DDL文件不存在,請選擇DDL文件", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			File file = new File(sjtf6);
			if (!file.exists()) {
				JOptionPane.showMessageDialog(null, "DDL文件不存在,請選擇DDL文件", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "異常信息:" + e.getMessage(), "消息提示", JOptionPane.INFORMATION_MESSAGE);
			e.printStackTrace();
			return false;
		}
		return true;
	}

	/** 驗證導入DML文件 **/
	private boolean chkJtf20() {
		try {
			String sjtf20 = this.jtf20.getText();
			if ("".equals(sjtf20)) {
				JOptionPane.showMessageDialog(null, "DML文件不存在,請選擇DML文件", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			File file = new File(sjtf20);
			if (!file.exists()) {
				JOptionPane.showMessageDialog(null, "DML文件不存在,請選擇DML文件", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "異常信息:" + e.getMessage(), "消息提示", JOptionPane.INFORMATION_MESSAGE);
			e.printStackTrace();
			return false;
		}
		return true;
	}

	/** 驗證導出DDL文件 **/
	private boolean chkJtf18() {
		try {
			String sjtf18 = this.jtf18.getText();
			if ("".equals(sjtf18)) {
				JOptionPane.showMessageDialog(null, "請選擇保存的DDL文件路徑", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			String dirPath = FileUtil.getFileNameExtension(sjtf18)[0];
			File file = new File(dirPath);
			if (!file.exists()) {
				file.mkdirs();
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "異常信息:" + e.getMessage(), "消息提示", JOptionPane.INFORMATION_MESSAGE);
			e.printStackTrace();
			return false;
		}
		return true;
	}

	/** 驗證導出DML文件 **/
	private boolean chkJtf21() {
		try {
			String sjtf21 = this.jtf21.getText();
			if ("".equals(sjtf21)) {
				JOptionPane.showMessageDialog(null, "請選擇保存的DML文件路徑", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			String dirPath = FileUtil.getFileNameExtension(sjtf21)[0];
			File file = new File(dirPath);
			if (!file.exists()) {
				file.mkdirs();
			}
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, "異常信息:" + e.getMessage(), "消息提示", JOptionPane.INFORMATION_MESSAGE);
			e.printStackTrace();
			return false;
		}
		return true;
	}

	private boolean chkJlb23() {
		ComboxItem item = (ComboxItem) select_jlb23.getSelectedItem();
		if ("".equals(item.value)) {
			JOptionPane.showMessageDialog(null, "請選擇DB文件格式", "消息提示", JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
		return true;
	}

	/**
	 * 默認true通過,false不通過
	 * 
	 * @return
	 */
	private boolean chkDB() {
		ComboxItem item = null;
		item = (ComboxItem) select_jlb1.getSelectedItem();
		// "請選擇", "0:數據源導入", "1:DDL文件導入","2:DML文件導入","3:DDL文件導出","4:DML文件導出"
		if ("".equals(item.value)) {
			JOptionPane.showMessageDialog(null, "請選擇操作類型", "消息提示", JOptionPane.INFORMATION_MESSAGE);
			return false;
		}
		if (Schema.TYPE_IMPORT_DDL.equals(item.value)) {
			if (!chkJtf6()) {
				return false;
			}
			item = (ComboxItem) select_jlb9.getSelectedItem();
			if ("".equals(item.value)) {
				JOptionPane.showMessageDialog(null, "請選擇一種DDL操作", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if (!chkDB(Schema.TYPE_1)) {
				return false;
			}
		} else if (Schema.TYPE_IMPORT_DML.equals(item.value)) {
			if (!chkJtf20()) {
				return false;
			}
			item = (ComboxItem) select_jlb10.getSelectedItem();
			if ("".equals(item.value)) {
				JOptionPane.showMessageDialog(null, "請選擇一種DML操作", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				return false;
			}
			if (!chkDB(Schema.TYPE_1)) {
				return false;
			}
		} else if (Schema.TYPE_EXPORT_DDL.equals(item.value)) {
			if (!chkJtf18()) {
				return false;
			}
			if (!chkDB(Schema.TYPE_0)) {
				return false;
			}
		} else if (Schema.TYPE_EXPORT_DML.equals(item.value)) {
			if (!chkJtf21()) {
				return false;
			}
			if (!chkDB(Schema.TYPE_0)) {
				return false;
			}
		}
		if (!chkJlb23()) {
			return false;
		}
		return true;
	}

	private String getTablePatten(String type) {
		String tablePatten = "";
		if (Schema.TYPE_0.equals(type)) {
			if (otherFrameExport != null) {
				int[] rows = otherFrameExport.getTable().getSelectedRows();
				for (int row : rows) {
					if (tablePatten != null && !tablePatten.equals("")) {
						tablePatten += ",";
					}
					tablePatten += otherFrameExport.getTable().getValueAt(row, 0);
				}
				log.debug("選擇的導出表:" + tablePatten);
			}
		} else if (Schema.TYPE_1.equals(type)) {
			if (otherFrameImport != null) {
				int[] rows = otherFrameImport.getTable().getSelectedRows();
				for (int row : rows) {
					if (tablePatten != null && !tablePatten.equals("")) {
						tablePatten += ",";
					}
					tablePatten += otherFrameImport.getTable().getValueAt(row, 0);
				}
				log.debug("選擇的導入表:" + tablePatten);
			}
		}
		return tablePatten;
	}

	/**
	 * 點擊開始執行
	 * 
	 * @author zhangjun
	 * 
	 */
	private class ExecCommondActionEvent implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			String str = e.getActionCommand();
			JButton curBtn = (JButton) e.getSource();
			log.debug("otherFrameImport====" + otherFrameImport);
			log.debug("otherFrameExport====" + otherFrameExport);
			try {
				curBtn.setEnabled(false);
				if (execBtnText.equals(str)) {
					if (!chkDB()) {
						curBtn.setEnabled(true);
						return;
					}
					ComboxItem item = (ComboxItem) select_jlb1.getSelectedItem();
					ComboxItem itemjlb2 = (ComboxItem) select_jlb2.getSelectedItem();
					// "請選擇", "0:數據源導入", "1:DDL文件導入","2:DML文件導入","3:DDL文件導出","4:DML文件導出"
					log.debug("選擇的操作類型:" + item.text);
					Schema su = null;
					boolean jcb1Checked = jcb1.isEnabled() && jcb1.isSelected();
					boolean jcb2Checked = jcb2.isEnabled() && jcb2.isSelected();
					boolean jcb3Checked = jcb3.isEnabled() && jcb3.isSelected();
					if (Schema.TYPE_DDL_DML.equals(item.value)) {
						String fileName = new Date().getTime() + ".temp";
						String fileDir = System.getProperty("user.dir");
						if (!fileDir.endsWith(File.separator)) {
							fileDir += File.separator;
						}
						String impExpPath = fileDir + fileName;
						testDBConnection(btn1.getText());
						su = new Schema(conn, absDialect);
						su.ddlSql = jcb1Checked;
						su.dmlSql = jcb2Checked;
						su.dmlSqlMany = jcb3Checked;
						su.impExpPath = impExpPath;
						su.type = Schema.TYPE_EXPORT;
						su.tableNamePattern = getTablePatten(Schema.TYPE_EXPORT);
						su.absDialect.currentDbType=itemjlb2.value;
						su.absDialect.registerColumnType();
						su.absDialect.setSerializableDBInfo(su);
						su.exportTableValuesDML();

						testDBConnection(btn2.getText());
						su = new Schema(conn, absDialect);
						su.ddlSql = jcb1Checked;
						su.dmlSql = jcb2Checked;
						su.dmlSqlMany = jcb3Checked;
						su.impExpPath = impExpPath;
						su.type = Schema.TYPE_IMPORT;
						su.tableNamePattern = getTablePatten(Schema.TYPE_IMPORT);
						su.absDialect.currentDbType=itemjlb2.value;
						su.absDialect.registerColumnType();
						su.absDialect.setSerializableDBInfo(su);
						su.importDDL(Schema.DDL_TYPE_DROP_FK);
						su.importDDL(Schema.DDL_TYPE_DROP_IDX);
						su.importDDL(Schema.DDL_TYPE_DROP_TABLE);
						su.importDDL(Schema.DDL_TYPE_CREATE_TABLE);
						su.importDML(Schema.DML_TYPE_INSERT_TABLE);
						su.importDDL(Schema.DDL_TYPE_CREATE_FK);
						su.importDDL(Schema.DDL_TYPE_CREATE_IDX);
						su.importDDL(Schema.DDL_TYPE_CREATE_REMARK);
						// 刪除臨時文件
						File file = new File(impExpPath);
						if (file.exists()) {
							String filePath = file.getAbsolutePath();
							file.delete();
							log.debug("刪除臨時文件【" + filePath + "】成功");
						} else {
							log.debug("刪除臨時文件失敗:臨時文件不存在");
						}
					} else if (Schema.TYPE_IMPORT_DDL.equals(item.value)) {
						testDBConnection(btn2.getText());
						su = new Schema(conn, absDialect);
						su.ddlSql = jcb1Checked;
						su.dmlSql = jcb2Checked;
						su.dmlSqlMany = jcb3Checked;
						su.impExpPath = jtf6.getText();
						su.type = Schema.TYPE_IMPORT;
						su.tableNamePattern = getTablePatten(Schema.TYPE_IMPORT);
						su.absDialect.currentDbType=itemjlb2.value;
						su.absDialect.registerColumnType();
						su.absDialect.setSerializableDBInfo(su);
						item = (ComboxItem) select_jlb9.getSelectedItem();
						su.importDDL(item.value);
					} else if (Schema.TYPE_IMPORT_DML.equals(item.value)) {
						testDBConnection(btn2.getText());
						su = new Schema(conn, absDialect);
						su.ddlSql = jcb1Checked;
						su.dmlSql = jcb2Checked;
						su.dmlSqlMany = jcb3Checked;
						su.impExpPath = jtf20.getText();
						su.type = Schema.TYPE_IMPORT;
						su.tableNamePattern = getTablePatten(Schema.TYPE_IMPORT);
						su.absDialect.currentDbType=itemjlb2.value;
						su.absDialect.registerColumnType();
						su.absDialect.setSerializableDBInfo(su);
						item = (ComboxItem) select_jlb10.getSelectedItem();
						su.importDML(item.value);
					} else if (Schema.TYPE_EXPORT_DDL.equals(item.value)) {
						// 測試導出DDL
						testDBConnection(btn1.getText());
						su = new Schema(conn, absDialect);
						su.ddlSql = jcb1Checked;
						su.dmlSql = jcb2Checked;
						su.dmlSqlMany = jcb3Checked;
						su.impExpPath = jtf18.getText();
						su.type = Schema.TYPE_EXPORT;
						su.tableNamePattern = getTablePatten(Schema.TYPE_EXPORT);
						su.absDialect.currentDbType=itemjlb2.value;
						su.absDialect.registerColumnType();
						su.absDialect.setSerializableDBInfo(su);
						su.exportTableDDLSqls();
					} else if (Schema.TYPE_EXPORT_DML.equals(item.value)) {
						// 測試導出DML
						testDBConnection(btn1.getText());
						su = new Schema(conn, absDialect);
						su.ddlSql = jcb1Checked;
						su.dmlSql = jcb2Checked;
						su.dmlSqlMany = jcb3Checked;
						su.impExpPath = jtf21.getText();
						su.type = Schema.TYPE_EXPORT;
						su.tableNamePattern = getTablePatten(Schema.TYPE_EXPORT);
						su.absDialect.currentDbType=itemjlb2.value;
						su.absDialect.registerColumnType();
						su.absDialect.setSerializableDBInfo(su);
						su.exportTableValuesDML();
					}
					JOptionPane.showMessageDialog(null, "恭喜你!操作成功...", "消息提示", JOptionPane.INFORMATION_MESSAGE);
				} else if (closeBtnText.equals(str)) {
					exitConfirm();
				} else if (btn1Text.equals(str) || btn2Text.equals(str)) {
					if (btn1Text.equals(str)) {
						btn1.setEnabled(false);
					} else if (btn2Text.equals(str)) {
						btn2.setEnabled(false);
					}
					try {
						String msg = testDBConnection(str);
						JOptionPane.showMessageDialog(null, msg, "消息提示", JOptionPane.INFORMATION_MESSAGE);
					} catch (Exception e1) {
						e1.printStackTrace();
						JOptionPane.showMessageDialog(null, e1.getMessage(), "消息提示", JOptionPane.INFORMATION_MESSAGE);
					}
					if (btn1Text.equals(str)) {
						btn1.setEnabled(true);
					} else if (btn2Text.equals(str)) {
						btn2.setEnabled(true);
					}
				} else if ("打開*.DDL".equals(str)) {
					String rtnPath = openFile(0);
					if (rtnPath != null && !rtnPath.equals("")) {
						jtf6.setText(rtnPath);
					}
				} else if ("保存*.DDL".equals(str)) {
					String rtnPath = openFile(1);
					if (rtnPath != null && !rtnPath.equals("")) {
						jtf18.setText(rtnPath);
					}
				} else if ("打開*.DML".equals(str)) {
					String rtnPath = openFile(2);
					if (rtnPath != null && !rtnPath.equals("")) {
						jtf20.setText(rtnPath);
					}
				} else if ("保存*.DML".equals(str)) {
					String rtnPath = openFile(2);
					if (rtnPath != null && !rtnPath.equals("")) {
						jtf21.setText(rtnPath);
					}
				} else if (btn3Text.equals(str)) {
					testDBConnection(btn1.getText());
					Schema su = new Schema(conn, absDialect);
					su.type = Schema.TYPE_SEARCH_DB_TABLES;
					su.absDialect.setSerializableDBInfo(su);
					su.absDialect.impExpTableDDLSqls(su);
					if (su.serializableDBInfo.tableInfoLst == null || su.serializableDBInfo.tableInfoLst.size() == 0) {
						JOptionPane.showMessageDialog(null, "數據庫沒有任何表", "消息提示", JOptionPane.INFORMATION_MESSAGE);
						curBtn.setEnabled(true);
					} else {
						otherFrameExport = new DBTableFrame(su.serializableDBInfo.tableInfoLst, curBtn);
						otherFrameExport.setType(0);
						otherFrameExport.showMe();
					}
					return;
				} else if (btn4Text.equals(str)) {
					ComboxItem item = (ComboxItem) select_jlb1.getSelectedItem();
					String importPath = "";
					if (Schema.TYPE_IMPORT_DDL.equals(item.value)) {
						if (!chkJtf6()) {
							curBtn.setEnabled(true);
							return;
						}
						importPath = jtf6.getText();
					} else if (Schema.TYPE_IMPORT_DML.equals(item.value)) {
						if (!chkJtf20()) {
							curBtn.setEnabled(true);
							return;
						}
						importPath = jtf20.getText();
					}
					Schema su = new Schema();
					su.importPath = importPath;
					su.deserialization();
					if (su.serializableDBInfo.tableInfoLst == null || su.serializableDBInfo.tableInfoLst.size() == 0) {
						JOptionPane.showMessageDialog(null, "讀取文件不存在任何表", "消息提示", JOptionPane.INFORMATION_MESSAGE);
						curBtn.setEnabled(true);
					} else {
						otherFrameImport = new DBTableFrame(su.serializableDBInfo.tableInfoLst, curBtn);
						otherFrameImport.setType(1);
						otherFrameImport.showMe();
					}
					return;
				}
			} catch (Exception e1) {
				e1.printStackTrace();
				JOptionPane.showMessageDialog(null, "執行失敗:" + e1.getMessage(), "錯誤提示", JOptionPane.ERROR_MESSAGE);
			}
			curBtn.setEnabled(true);
		}
	}

	/** 查詢表導入 **/
	private DBTableFrame otherFrameImport;
	/** 查詢表導出 **/
	private DBTableFrame otherFrameExport;

	public DBTableFrame getOtherFrameImport() {
		return otherFrameImport;
	}

	public void setOtherFrameImport(DBTableFrame otherFrameImport) {
		this.otherFrameImport = otherFrameImport;
	}

	public DBTableFrame getOtherFrameExport() {
		return otherFrameExport;
	}

	public void setOtherFrameExport(DBTableFrame otherFrameExport) {
		this.otherFrameExport = otherFrameExport;
	}

	/**
	 * 退出程序
	 */
	private void exitConfirm() {
		int op = JOptionPane.showConfirmDialog(jframe, "確定要退出程序嗎?", "提示", JOptionPane.YES_NO_OPTION);
		if (op == JOptionPane.YES_OPTION) {
			System.exit(0);
		}
	}

	/**
	 * 打開文件
	 * 
	 * @param type
	 *            :0[open-DDL],1[save-DDL],2[open-DML],3[save-DML]
	 * @return
	 */
	public String openFile(int type) {
		String rtnPath = "";
		JFileChooser chooser = null;
		Preferences pref = Preferences.userRoot().node(this.getClass().getName());
		String lastPath = pref.get("lastPath", "");
		if (!lastPath.equals("")) {
			chooser = new JFileChooser(lastPath);
		} else {
			chooser = new JFileChooser();
		}
		chooser.setAcceptAllFileFilterUsed(true);
		// chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		FileNameExtensionFilter filter1 = null;
		int returnVal = JFileChooser.ERROR_OPTION;
		String extension = "";
		if (type == 0) {
			filter1 = new FileNameExtensionFilter("*.ddl", "ddl");
			chooser.setFileFilter(filter1);
			chooser.setDialogTitle("導入DDL");
			returnVal = chooser.showOpenDialog(jframe.getFocusOwner());
			extension = ".ddl";
		} else if (type == 1) {
			filter1 = new FileNameExtensionFilter("*.ddl", "ddl");
			chooser.setFileFilter(filter1);
			chooser.setDialogTitle("導出DDL");
			returnVal = chooser.showSaveDialog(jframe.getFocusOwner());
			extension = ".ddl";
		} else if (type == 2) {
			filter1 = new FileNameExtensionFilter("*.dml", "dml");
			chooser.setFileFilter(filter1);
			chooser.setDialogTitle("導入DML");
			returnVal = chooser.showOpenDialog(jframe.getFocusOwner());
			extension = ".dml";
		} else if (type == 3) {
			filter1 = new FileNameExtensionFilter("*.dml", "dml");
			chooser.setFileFilter(filter1);
			chooser.setDialogTitle("導出DML");
			returnVal = chooser.showSaveDialog(jframe.getFocusOwner());
			extension = ".dml";
		}
		File chooseFile = null;
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			chooseFile = chooser.getSelectedFile();
			rtnPath = chooseFile.getPath();
			// String des = chooser.getFileFilter().getDescription();
			// if (!"temp".equals(getFileExtension(rtnPath))) {
			// rtnPath += des.replaceFirst("\\*", "");
			// }
			log.debug("You chose  this file: " + rtnPath);
			if (chooseFile != null) {
				pref.put("lastPath", chooseFile.getPath());
			}
			if (!rtnPath.endsWith(extension)) {
				rtnPath += extension;
			}
			String[] names = FileUtil.getFileNameExtension(rtnPath);
			if (names != null && names.length > 2) {
				if ("".equals(names[1])) {
					rtnPath = (names[0] == null || names[0].equals("") ? "C:" : names[0]) + "zhangjun" + names[2];
				}
			}
		}

		return rtnPath;
	}

	public JComboBox getSelect_jlb1() {
		return select_jlb1;
	}

	public static SchemaFrameUtil thisFrame = null;

	/**
	 * 主程序
	 * 
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		thisFrame = new SchemaFrameUtil();
		thisFrame.setFrame();
		thisFrame.showMe();
	}
}

下載源碼后直接部署到eclipse/myeclipse中即可使用


如需要獲取源碼,請先  

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲免费在线 | 久久www视频 | 久久www免费人成精品 | 精品国产精品国产偷麻豆 | 999久久66久6只有精品 | 日日摸天天添天天添破 | 日韩一区二区精品久久高清 | 欧美日韩亚洲精品一区 | 婷婷激情亚洲 | 成人免费高清视频 | 成人网欧美亚洲影视图片 | 日本老年人精品久久中文字幕 | 国产福利视频一区二区微拍 | 天天摸夜夜摸夜夜狠狠摸 | 老子影院午夜伦不卡亚洲 | 中国护士一级毛片免费版本 | 成人免费毛片视频 | 中国一级特黄真人毛片免 | 欧美精品v国产精品v | 99爱网站| 久久精品欧美一区二区 | 精品久久视频 | 久久国产免费一区 | 久久精品一区 | 欧美影院一区 | 91热久久免费精品99 | 羞羞的视频在线免费观看 | 国产成人免费观看在线视频 | 久草在在线视频免费 | 亚洲人成一区二区不卡 | 久久久久久国产精品视频 | 视频在线观看入口一二三2021 | 青青青久在线视频免费观看 | 亚洲国产成人久久精品动漫 | 欧美黄色免费网址 | 男人午夜免费视频 | www.久草 | 精品欧美高清一区二区免费 | 一区二区三区在线免费观看视频 | 精品国产一二三区在线影院 | 日本精品二区 |