import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
/*
* BigMySQLJFrame.java
*
* Created on 7. April 2004, 09:20
*/
/**
*
* @author Darimont
*/
public class BigMySQLJFrame extends JFrame {
private JPanel bgPanel;
private JButton btnConnect;
private JButton btnSubmitInsertStatement;
private JButton btnSubmitSelectStatement;
private JPanel controlsPanel;
private JLabel lblInsert;
private JLabel lblSelect;
private JScrollPane scrollPane;
private JTable table;
private JTextField txtInsert;
private JTextField txtSelect;
private Connection connection;
private MysqlDataSource datasource;
private DefaultTableModel model;
private TableSorter sorter;
static {
try {
Thread
.currentThread()
.getContextClassLoader()
.loadClass("org.gjt.mm.mysql.Driver")
.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/** Creates new form BigMySQLJFrame */
public BigMySQLJFrame() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {
GridBagConstraints gridBagConstraints;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bgPanel = new JPanel();
scrollPane = new JScrollPane();
table = new JTable();
controlsPanel = new JPanel();
lblSelect = new JLabel();
txtSelect = new JTextField();
btnSubmitSelectStatement = new JButton();
lblInsert = new JLabel();
txtInsert = new JTextField();
btnSubmitInsertStatement = new JButton();
btnConnect = new JButton();
getContentPane().setLayout(new FlowLayout());
setTitle("BigMySQLJFrame");
bgPanel.setLayout(new GridBagLayout());
bgPanel.setBackground(new Color(51, 153, 255));
bgPanel.setMinimumSize(new Dimension(400, 300));
bgPanel.setPreferredSize(new Dimension(400, 300));
scrollPane.setMinimumSize(new Dimension(400, 200));
scrollPane.setPreferredSize(new Dimension(400, 200));
// table
// .setModel(
// new javax
// .swing
// .table
// .DefaultTableModel(new Object[][] {
// { null, null, null, null },
// {
// null, null, null, null }, {
// null, null, null, null }, {
// null, null, null, null }
// }, new String[] { "Title 1", "Title 2", "Title 3", "Title 4" }));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane.setViewportView(table);
bgPanel.add(scrollPane, new GridBagConstraints());
controlsPanel.setBackground(new Color(255, 153, 0));
controlsPanel.setMinimumSize(new Dimension(400, 100));
controlsPanel.setPreferredSize(new Dimension(400, 100));
lblSelect.setText("Select Statement: ");
controlsPanel.add(lblSelect);
txtSelect.setColumns(20);
controlsPanel.add(txtSelect);
btnSubmitSelectStatement.setText("GO");
btnSubmitSelectStatement.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnSubmitSelectStatementActionPerformed(evt);
}
});
controlsPanel.add(btnSubmitSelectStatement);
lblInsert.setText("Insert Statement: ");
controlsPanel.add(lblInsert);
txtInsert.setColumns(20);
controlsPanel.add(txtInsert);
btnSubmitInsertStatement.setText("GO");
btnSubmitInsertStatement.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnSubmitInsertStatementActionPerformed(evt);
}
});
controlsPanel.add(btnSubmitInsertStatement);
btnConnect.setText("connect");
btnConnect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
btnConnectActionPerformed(evt);
}
});
controlsPanel.add(btnConnect);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
bgPanel.add(controlsPanel, gridBagConstraints);
getContentPane().add(bgPanel);
pack();
}
private void btnConnectActionPerformed(ActionEvent evt) {
// Add your handling code here:
try {
if (connection == null || connection.isClosed()) {
if (datasource == null) {
datasource = new MysqlDataSource();
datasource.setDatabaseName("test");
datasource.setUser("root");
datasource.setPort(3306);
datasource.setServerName("localhost");
}
connection = datasource.getConnection();
System.out.println("Connected");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void btnSubmitInsertStatementActionPerformed(ActionEvent evt) {
// Add your handling code here:
String insertStatement = txtInsert.getText();
if (insertStatement == null || insertStatement.equals("")) {
System.out.println("Insert Statement ist leer...");
return;
}
try {
if (!(connection == null || connection.isClosed())) {
Statement stmt = connection.createStatement();
int updRows = stmt.executeUpdate(insertStatement);
System.out.println(
"Es wurden " + updRows + " Zeilen aktualisiert.");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private void btnSubmitSelectStatementActionPerformed(ActionEvent evt) {
// Add your handling code here:
String selectStatement = txtSelect.getText();
if (selectStatement == null || selectStatement.equals("")) {
System.out.println("Select Statement ist leer...");
return;
}
try {
if (!(connection == null || connection.isClosed())) {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(selectStatement);
updateTableModel(rs);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param rs
*/
private void updateTableModel(ResultSet rs) {
// TODO Auto-generated method stub
try {
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
rs.beforeFirst();
rs.last();
int rowNr = rs.getRow();
Object[][] rows = new Object[rowNr][clmCnt];
String[] clmHeaders = new String[clmCnt];
for (int i = 1; i <= clmCnt; i++) {
clmHeaders[i - 1] = rsmd.getColumnName(i);
}
rs.beforeFirst();
int rowCnt = 0;
while (rs.next()) {
for (int i = 1; i <= clmCnt; i++) {
rows[rowCnt][i - 1] = rs.getString(i);
System.out.print(rows[rowCnt][i - 1] + " ");
}
rowCnt++;
System.out.println();
}
model = new DefaultTableModel(rows, clmHeaders);
sorter = new TableSorter(model);
table.setModel(sorter);
sorter.setTableHeader(table.getTableHeader());
table.updateUI();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
new BigMySQLJFrame().show();
}
}