using JSP and JavaBeans to enter data in MySQL database
I am using Java 1.5.0_09, Tomcat 5.5.17, MySQL 5.0 .
I am trying to take data that is entered into a web page form, using
JSP and JavaBeans place data in a database table.
I enter data in the webpage and submit but no entry into the database
is made. I have tested the dataBase.java bean code that interacts with
the database and it works.
I suspect 1) The problem is something to do with memory and something
I have done wrong with jsp, Or, 2) maybe when "submit" is selected
should the ChainInfoBean.java bean be refreshed ? If so, how can I do
this?
On the first machine this code worked and I added 12 entries into the
database table. Then i moved it to another development machine (same
versions of Java, Tomcat, and MySQL ) and it only enters fields into
the database table once in a while. The randomness suggests to me it
could be a memory issue but I do not know what to do.
Any suggestions ? Thanks in advance.
**********************************************************
AddChain.jsp :
<jsp:useBean id="ChainInfoBean" class="com.bean.ChainInfoBean"
scope="request"/>
<jsp:useBean id="GiftData" class="com.bean.dataBase" scope="session" /
<jsp:setProperty name="ChainInfoBean" property="*"/>
<html>
<head><title>Add Chain</title></head>
<body bgcolor="white">
<h2>Chain Information</h2>
<form ACTION="../gift/AddChain.jsp" method=POST>
<P>
Chain Name <input type="text" name="chainName" value="" size=50
maxlength=50>
<P>
Address 1 <input type="text" name="address1" value="" size=50
maxlength=50>
<P>
Address 2 <input type="text" name="address2" value="" size=50
maxlength=50>
<P>
City <input type="text" name="city" value="" size=50 maxlength=50>
<P>
State <input type="text" name="state" value="" size=2 maxlength=2>
<P>
Zipcode <input type="text" name="zipCode" value="" size=9 maxlength=9>
<P>
Phone Number <input type="text" name="phoneNumber" value="" size=10
maxlength=10>
<p></p>
<input type="submit" value="Submit">
<input type="reset" value="Reset">
</form>
<%
if (request.getMethod().equals("POST") ) {
out.println("POST");
String [] results;
// String ResponseCode;
GiftData.init();
results = GiftData.addChain("E",
ChainInfoBean.getchainName(),
ChainInfoBean.getaddress1(),
ChainInfoBean.getaddress2(),
ChainInfoBean.getcity(),
ChainInfoBean.getstate(),
ChainInfoBean.getzipCode(),
ChainInfoBean.getphoneNumber()
);
}
%>
</body>
</html>
*************************************************************************************************
ChainInfoBean.java
package com.bean;
import java.io.*;
import java.sql.*;
import javax.sql.*;
public class ChainInfoBean implements Serializable {
private String language="E";
private String chainName="";
private String address1="";
private String address2="";
private String city="";
private String state="";
private String zipCode="";
private String phoneNumber="";
ChainInfoBean Record;
public void ChainInfoBean() {
Record = new ChainInfoBean();
}
// public void setlanguage(String language) {
// this.language = language;
// }
public String getlanguage() {
return language;
}
public void setchainName(String chainName) {
this.chainName = chainName;
}
public String getchainName() {
return chainName;
}
public void setAddress1(String address1) {
this.address1 = address1;
}
public String getaddress1() {
return address1;
}
public void setaddress2(String address2) {
this.address2 = address2;
}
public String getaddress2() {
return address2;
}
public void setcity(String city) {
this.city = city;
}
public String getcity() {
return city;
}
public void setstate(String state) {
this.state = state;
}
public String getstate() {
return state;
}
public void setzipCode(String zipCode) {
this.zipCode = zipCode;
}
public String getzipCode() {
return zipCode;
}
public void setphoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getphoneNumber() throws SQLException {
return phoneNumber;
}
} // end ChainInfoBean
**********************************************************************************
dataBase.java
package com.bean;
import java.sql.*;
import java.math.*;
import java.util.*;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class dataBase
{
// common members
static String url = "jdbc:mysql://localhost:3306/gift";
static Driver driver; // the driver can be common over
connections
// private members
public Connection con; // each session should have its
own connection to the database
boolean connected;
// members that are used to pass messages back to the
calling routines
String sResponseCode;
String sMessage;
public dataBase ()
{
connected = false;
}
//------------------------------------------------------------------------
//
// i n i t -- initialize the database connection
//
//------------------------------------------------------------------------
public void init()
throws SQLException
{
if (! connected)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Driver driver = new org.gjt.mm.mysql.Driver();
con = DriverManager.getConnection(url, "xxxxx",
"yyyyy");
connected = true;
}catch (java.lang.ClassNotFoundException CE)
{
// System.out.println ("can't create driver class");
}
}
}
//------------------------------------------------------------------------
//
// a d d C h a i n
//
//------------------------------------------------------------------------
//
// The results are a string array with the following elements
// 0 - result code = 'A' / 'E'
// 1 - result message
// 2 - Tran Number
// 3 - resulting chain ID
public String[] addChain (
String Language,
String ChainName,
String Addr1,
String Addr2,
String City,
String sState,
String Zip,
String Phone
)
throws SQLException
{
String ResponseCode;
String Message;
String TranNumber;
String ChainID;
String [] results;
PreparedStatement pstmt = null;
Validation Validate;
results = new String [2];
results [0] = "E";
results [1] = "System Error";
try
{
Validate = new Validation ();
Validate.validateField (Language, "lang", "Language");
Validate.validateField (ChainName, "names", "Chain Name");
Validate.validateField (Addr1, "addr", "Address1");
Validate.validateField (Addr2, "addr", "Address2");
Validate.validateField (City, "city", "City");
Validate.validateField (sState, "state", "State");
Validate.validateField (Zip, "zip", "Postal
Code");
Validate.validateField (Phone, "phone", "Phone");
pstmt = con.prepareStatement(
"CALL gp_AddChain (?, " + // language
"?, " + // name
"?, " + // address1
"?, " + // address2
"?, " + // city
"?, " + // state
"?, " + // zip
"?)" // phone
);
pstmt.setString(1, Language);
pstmt.setString(2, ChainName);
pstmt.setString(3, Addr1);
pstmt.setString(4, Addr2);
pstmt.setString(5, City);
pstmt.setString(6, sState);
pstmt.setString(7, Zip);
pstmt.setString(8, Phone);
ResultSet rst = pstmt.executeQuery();
rst.first();
ResponseCode = rst.getString (1);
Message = rst.getString (2);
if (ResponseCode.equalsIgnoreCase("A"))
{
TranNumber = rst.getString (3);
ChainID = rst.getString ("new_id");
results = new String[4];
results [0] = ResponseCode;
results [1] = Message;
results [2] = TranNumber;
results [3] = ChainID;
}
else
{
results = new String [2];
results [0] = ResponseCode;
results [1] = Message;
}
}
catch (GiftException e)
{
results = new String [2];
results [0] = "E";
results [1] = e.getMessage();
}
finally
{
if (pstmt != null) pstmt.close();
}
return results;
}
..
..
..
..