首页>代码>java Swing导入SQL脚本建立初始化数据库表,支持Mysql、Oracle、SqlServer数据库>/CreateBD/src/cn/vociecodes/demo/DBForm.java
package cn.vociecodes.demo; import org.apache.ibatis.io.Resources; import org.apache.ibatis.jdbc.ScriptRunner; import java.awt.BorderLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.sql.SQLException; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.border.EmptyBorder; class DBForm extends JDialog { private static final long serialVersionUID = 1L; private final JPanel contentPanel = new JPanel(); private JTextField url; private JTextField port; private JTextField userName; private JPasswordField password; private JTextField databaseName; private JComboBox<String> databaseType; private JButton okButton; private JButton testButton; private Database DBdatabase; Database db = new Database(); public DBForm() { //标题 setTitle("Database"); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setBounds(500, 200, 389, 380); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); contentPanel.setLayout(null); //名称 JLabel lblNewLabel = new JLabel("DatabaseSet"); lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 14)); lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER); lblNewLabel.setBounds(114, 10, 108, 15); contentPanel.add(lblNewLabel); //选择数据库类型 JLabel lblDatabasetype = new JLabel("DatabaseType"); lblDatabasetype.setHorizontalAlignment(SwingConstants.CENTER); lblDatabasetype.setBounds(64, 42, 82, 15); contentPanel.add(lblDatabasetype); databaseType = new JComboBox<String>(); databaseType.setModel(new DefaultComboBoxModel<String>(new String[] { "MySql","SQLServer","Oracle"})); databaseType.setBounds(181, 53, 108, 21); contentPanel.add(databaseType); //设置URL JLabel jLabelUrl = new JLabel("IP"); jLabelUrl.setHorizontalAlignment(SwingConstants.CENTER); jLabelUrl.setBounds(64, 95, 82, 15); contentPanel.add(jLabelUrl); url = new JTextField(); url.setBounds(181, 93, 108, 21); contentPanel.add(url); //设置端口号 JLabel jLabelPort = new JLabel("Port"); jLabelPort.setHorizontalAlignment(SwingConstants.CENTER); jLabelPort.setBounds(64, 135, 82, 15); contentPanel.add(jLabelPort); port = new JTextField(); port.setBounds(181, 130, 108, 21); contentPanel.add(port); //设置用户名 JLabel lblUsername = new JLabel("UserName"); lblUsername.setHorizontalAlignment(SwingConstants.CENTER); lblUsername.setBounds(64, 175, 82, 15); contentPanel.add(lblUsername); userName = new JTextField(); userName.setBounds(181, 170, 108, 21); contentPanel.add(userName); userName.setColumns(10); //设置密码 JLabel lblPassword = new JLabel("Password"); lblPassword.setHorizontalAlignment(SwingConstants.CENTER); lblPassword.setBounds(64, 215, 82, 15); contentPanel.add(lblPassword); password = new JPasswordField(); password.setBounds(181, 208, 108, 21); contentPanel.add(password); //数据库名称 JLabel lblNewLabel_1 = new JLabel("Database"); lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER); lblNewLabel_1.setBounds(44, 255, 118, 15); contentPanel.add(lblNewLabel_1); databaseName = new JTextField(); databaseName.setBounds(181, 252, 108, 21); contentPanel.add(databaseName); //确定键 okButton = new JButton("OK"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //初始默认数据库设置完成,接下来创建新的数据库并创建表初始化 //创建连接对象 DBdatabase = getDatabase(); String dBName = DBdatabase.getName(); try { ConnectDatabase conn = new ConnectDatabase(DBdatabase); if ((databaseType.getSelectedItem().toString().trim()).equals("MySql")) { ScriptRunner runner = new ScriptRunner(conn.getConn()); runner.runScript(Resources.getResourceAsReader("SQL/student.sql")); }else if ((databaseType.getSelectedItem().toString().trim()).equals("SQLServer")) { }else if ((databaseType.getSelectedItem().toString().trim()).equals("Oracle")) { } conn.getState().close(); conn.getConn().close(); DBdatabase.setName(dBName); XMLReader xr = new XMLReader(); xr.setXML(DBdatabase); JOptionPane.showMessageDialog(okButton, "数据库初始化成功!!!"); dispose(); System.out.println("数据库配置成功进入应用系统!!!"); } catch (SQLException e) { JOptionPane.showMessageDialog(okButton, "数据库初始化失败!!!"+e); e.printStackTrace(); } catch (IOException e) { JOptionPane.showMessageDialog(okButton, "数据库脚本读取失败!!!"+e); e.printStackTrace(); } } }); okButton.setBounds(71, 294, 93, 23); contentPanel.add(okButton); //测试按钮 testButton = new JButton("Test"); testButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DBdatabase = getDatabase(); String dbName = DBdatabase.getName(); ConnectDatabase conn = new ConnectDatabase(DBdatabase); if(conn.getConn()!=null){ okButton.setVisible(true); JOptionPane.showMessageDialog(testButton, "Test Successed!!!"); DBdatabase.setName(dbName); } else{ JOptionPane.showMessageDialog(testButton, "Test Failed!!!"); } } }); testButton.setBounds(191, 294, 93, 23); contentPanel.add(testButton); this.setVisible(true); } @SuppressWarnings({ "static-access", "deprecation" }) public Database getDatabase(){ String dbType = databaseType.getSelectedItem().toString().trim(); String dburl = url.getText().trim(); String dbport = port.getText().trim(); String dbUser = userName.getText().trim(); String dbPassword = password.getText().trim(); String dbName = databaseName.getText().trim(); if(dbType==null|dbUser==null|dbPassword==null|dbName==null){ new JOptionPane().showMessageDialog(okButton, "请完善数据库信息!!!");; } else{ if(dbType.equals("MySql")){ db.setType(dbType); db.setDriver("com.mysql.jdbc.Driver"); db.setUri(dburl); db.setPort(dbport); db.setUser(dbUser); db.setPassword(dbPassword); db.setName(dbName); } if(dbType.equals("SQLServer")) { db.setType(dbType); db.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver"); db.setUri(dburl); db.setPort(dbport); db.setUser(dbUser); db.setPassword(dbPassword); db.setName(dbName); } if(dbType.equals("Oracle")){ db.setType(dbType); db.setDriver("oracle.jdbc.driver.OracleDriver"); db.setUri(dburl); db.setPort(dbport); db.setUser(dbUser); db.setPassword(dbPassword); db.setName(dbName); } } return db; } }
最近下载更多
jacklon LV18
3月25日
magnolia LV1
2020年11月3日
liang20223141 LV1
2020年9月10日
cardhu LV4
2020年6月4日
gw0207 LV13
2020年5月13日
pengkai LV5
2019年9月16日
m719067455 LV20
2019年4月8日
dlz839701573 LV1
2018年6月23日
charlesuncle LV8
2017年12月24日
mzoai LV19
2017年8月4日
最近浏览更多
jacklon LV18
3月25日
刘先生-OL LV13
2022年11月6日
nurmamat001 LV2
2022年11月1日
woaikaikai LV2
2022年10月26日
chaos123
2022年10月1日
暂无贡献等级
ROG全家桶
2022年8月9日
暂无贡献等级
是你爸爸啊100 LV5
2022年8月8日
Hachi6 LV13
2022年6月29日
xiaoyinuoliyunhao LV9
2022年6月22日
cxdxfx12 LV14
2022年6月19日