导出jar之后运行截图
主要代码:
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;
}
}
完整代码: 下载