Help: Java database manipulation using NetBeans
Hi, I'm using Netbeans IDE to create a form and want to insert data
from the swing component into the database. I'm using MySQL. I want to
insert the data by clicking the submit button. But I'm confusing how
to make the correct code. Here is my code. I know this still has a lot
of errors. Please give me advise. Thx before.
/*
* ECGTerminalSetup.java
*/
package ecgterminal;
import org.jdesktop.application.Action;
import java.sql.*;
public class ECGTerminalSetup extends javax.swing.JDialog {
//DB Configuration
public static final String DRIVER_NAME = "com.mysql.jdbc.Driver";
public static final String DATABASE_URL = "jdbc:mysql://localhost:3306/
dicom";
public Connection myConn;
public ECGTerminalSetup(java.awt.Frame parent) {
super(parent);
initComponents();
getRootPane().setDefaultButton(closeButton);
}
@Action public void closeAboutBox() {
setVisible(false);
}
/** 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.
*/
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
closeButton = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
terminalIdTxt = new javax.swing.JTextField();
terminalNameTxt = new javax.swing.JTextField();
insNameTxt = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
insAddr1Txt = new javax.swing.JTextField();
submitButton = new javax.swing.JButton();
jLabel5 = new javax.swing.JLabel();
insAddr2Txt = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
org.jdesktop.application.ResourceMap resourceMap =
org.jdesktop.application.Application.getInstance(ecgterminal.ECGTerminalApp.class).getContext().getResourceMap(ECGTerminalSetup.class);
setTitle(resourceMap.getString("title")); // NOI18N
setModal(true);
setName("aboutBox"); // NOI18N
setResizable(false);
javax.swing.ActionMap actionMap =
org.jdesktop.application.Application.getInstance(ecgterminal.ECGTerminalApp.class).getContext().getActionMap(ECGTerminalSetup.class,
this);
closeButton.setAction(actionMap.get("closeAboutBox")); //
NOI18N
closeButton.setText(resourceMap.getString("closeButton.text")); //
NOI18N
closeButton.setName("closeButton"); // NOI18N
jLabel1.setFont(resourceMap.getFont("jLabel1.font")); //
NOI18N
jLabel1.setText(resourceMap.getString("jLabel1.text")); //
NOI18N
jLabel1.setName("jLabel1"); // NOI18N
jLabel2.setText(resourceMap.getString("jLabel2.text")); //
NOI18N
jLabel2.setName("jLabel2"); // NOI18N
jLabel3.setText(resourceMap.getString("jLabel3.text")); //
NOI18N
jLabel3.setName("jLabel3"); // NOI18N
terminalIdTxt.setName("terminalIdTxt"); // NOI18N
terminalNameTxt.setName("terminalNameTxt"); // NOI18N
insNameTxt.setName("insNameTxt"); // NOI18N
jLabel4.setText(resourceMap.getString("jLabel4.text")); //
NOI18N
jLabel4.setName("jLabel4"); // NOI18N
insAddr1Txt.setName("insAddr1Txt"); // NOI18N
submitButton.setAction(actionMap.get("addTerminal")); //
NOI18N
submitButton.setName("submitButton"); // NOI18N
jLabel5.setText(resourceMap.getString("jLabel5.text")); //
NOI18N
jLabel5.setName("jLabel5"); // NOI18N
insAddr2Txt.setName("insAddr2Txt"); // NOI18N
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(49, 49, 49)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(insNameTxt,
javax.swing.GroupLayout.DEFAULT_SIZE, 265, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
.addComponent(terminalNameTxt,
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(terminalIdTxt,
javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 139, Short.MAX_VALUE))
.addGap(126, 126, 126))))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(submitButton)
.addComponent(jLabel5))
.addGap(39, 39, 39)
.addComponent(insAddr1Txt,
javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE))))
.addGroup(layout.createSequentialGroup()
.addGap(140, 140, 140)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(closeButton)
.addComponent(insAddr2Txt,
javax.swing.GroupLayout.DEFAULT_SIZE, 263, Short.MAX_VALUE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(terminalIdTxt,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(terminalNameTxt,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(26, 26, 26)
.addComponent(jLabel4))
.addGroup(layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(insNameTxt,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(21, 21, 21)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(insAddr1Txt,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addGap(18, 18, 18)
.addComponent(insAddr2Txt,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(closeButton)
.addComponent(submitButton))
.addContainerGap(20, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
//This method is used to connect to the database
public void init() {
try {
Class.forName(DRIVER_NAME);
//Again, you'll have to change these to suit your own config.
myConn =
DriverManager.getConnection(DATABASE_URL,"dicom","");
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
//This method is to be called only after init() in order to get
the database connection
public Connection getMyConnection() {
return myConn;
}
//Closes the SQL statement once you're done retrieving data
public void Close(java.sql.Statement stmt) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
//Shuts down the connection
public void CloseConnection() {
if (myConn != null) {
try {
myConn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
//This next method represents the code of your application
//and is used to insert or retrieve data from your database
public static void main(String[] args) throws SQLException {
//Define a few variables that you'll need later
//This is obviously a contrived variable. You asked to
retrieve database data
//based on information gathered from a GUI. Therefore, get
the information
//from the appropriate control in the GUI. For a text box,
you might do it
//like this: txtbxCriteria.getText();
//String txtbxCriteria = "Second String";
//Open a database connection, and define required SQL
statements and result sets
ECGTerminalSetup myConn = new ECGTerminalSetup();
myConn.init();
Connection con = myConn.getMyConnection();
//Set up your SQL statements
//Next, to insert data.
String sqlInsert = "insert into TABLENAME (INTVAR2, STRVAR1)
values (?, ?)";
//After your data have been retrieved successfully, close
everything
con.close();
myConn.CloseConnection();
}
// Variables declaration - do not modify
private javax.swing.JButton closeButton;
private javax.swing.JTextField insAddr1Txt;
private javax.swing.JTextField insAddr2Txt;
private javax.swing.JTextField insNameTxt;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JButton submitButton;
private javax.swing.JTextField terminalIdTxt;
private javax.swing.JTextField terminalNameTxt;
// End of variables declaration
}