⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.java

📁 数据库课程lab。通过java下的xmlAPI实现xml文件数据库到oracle数据的迁移。
💻 JAVA
字号:
package ui;

import java.awt.GridLayout;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.sql.SQLException;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
import javax.swing.filechooser.FileFilter;

import logic.DBConnector;

public class Main extends JFrame implements ActionListener{

	private JRadioButton dbf = new JRadioButton("*.dbf");
	private JRadioButton xls = new JRadioButton("*.xls");
	private JTextField filepath = new JTextField("请选择文件");
	private JButton open = new JButton("打    开");
	private JButton execute = new JButton("导    入");
	private File file;
	private DBConnector dbc;
	JFileChooser chooser = new JFileChooser();
	
	public Main(){
		init();
	}
	public Main(DBConnector dbc){
		init();
		this.dbc = dbc;
	}
	public void init(){
		
		//p1 to hold file 
		JPanel p1 = new JPanel();
		p1.setLayout(new GridLayout(1,2));
		ButtonGroup bgroup = new ButtonGroup();
		bgroup.add(dbf);
		bgroup.add(xls);
		dbf.setSelected(true);
		p1.add(dbf);
		p1.add(xls);
		p1.setBorder(new TitledBorder("选择数据文件类型"));
		p1.setBounds(new Rectangle(10,5,275,50));
		
		JPanel p2 = new JPanel();
		p2.setLayout(null);
		open.addActionListener(this);
		execute.addActionListener(this);
		open.setBounds(new Rectangle(29,5,87,27));
		execute.setBounds(new Rectangle(174,5,87,27));
		p2.add(open,null);
		p2.add(execute,null);
		execute.setEnabled(false);
		p2.setBounds(new Rectangle(10,80,275,40));
		
		filepath.setBounds(new Rectangle(10,60,275,20));
		filepath.setEditable(false);
		getContentPane().setLayout(null);
		getContentPane().add(p1,null);
		getContentPane().add(filepath,null);
		getContentPane().add(p2,null);
		
		
	}

	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		 int returnVal = 0;
		if(e.getSource() == open){
			
			if(xls.isSelected()){
				chooser.setFileFilter(new ExampleFileFilter("xls"));
			}else{
				chooser.setFileFilter(new ExampleFileFilter("dbf"));
			}
			returnVal = chooser.showOpenDialog(this);
			 if(returnVal == JFileChooser.APPROVE_OPTION) {
				 filepath.setText(chooser.getSelectedFile().getAbsolutePath());
				 execute.setEnabled(true);
			 }

		}else if(e.getSource() == execute){
			
			    if(returnVal == JFileChooser.APPROVE_OPTION) {
			    		File f = chooser.getSelectedFile();
			    		String [] sqls = null;
			    		if(xls.isSelected()){
			    			sqls = dbc.getXls(f);
			    			
			    		}else if(dbf.isSelected()){
			    			sqls = dbc.getDbf(f);
			    		}
			    		if(doSql(sqls)==true){;
	    					JOptionPane.showMessageDialog(this, "success!");
			    		}else{
			    			JOptionPane.showMessageDialog(this, "ERROR!");
			    		}
			    }
		}
		
	}
	
	public boolean doSql(String[] sqls){
		try {
			dbc.execute(sqls[0]);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false; 
		}
		
		for(int i = 1 ;i< sqls.length;i++){
			try {
				dbc.execute(sqls[i]);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return false;
			}
		}
		return true;
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -