D.6.1
Answer
(session stateless bean, transaction starts before operation and closed after operation at once) We have database containing table with name Tabl1. Table have column XX of type "integer number". Firstly, table is empty. Determine content of table after launching the following application a few times and inputting pair of values (1, A), (2, A), (3, A), (4, A), (5, A) into fields ("Input value:", "Input user name:").
Текст файла jsp1.jsp такой же как из задачи JSP.6.1.
Текст файла Interprise1Bean.java
package pr_c;
import java.rmi.*;
import javax.ejb.*;
import javax.naming.NamingException;
import java.sql.SQLException;
import javax.transaction.SystemException;
import javax.transaction.NotSupportedException;
import javax.transaction.HeuristicRollbackException;
import javax.transaction.HeuristicMixedException;
import javax.transaction.RollbackException;
public class Enterprise1Bean implements SessionBean {
SessionContext sessionContext;
String pp;
public void ejbCreate() {
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public void doDo() throws NamingException, SQLException,
SystemException, NotSupportedException, IllegalStateException,
SecurityException, HeuristicRollbackException,
HeuristicMixedException, RollbackException {
javax.transaction.UserTransaction utx;
javax.sql.DataSource dataSour;
java.sql.Connection Conn;
java.sql.Statement Stmt;
javax.naming.Context context = new javax.naming.InitialContext();
dataSour = (javax.sql.DataSource)
context.lookup("java:comp/env/jdbcDatabase1");
Conn = dataSour.getConnection();
Stmt = Conn.createStatement();
utx = sessionContext.getUserTransaction();
utx.begin();
java.sql.ResultSet rs = Stmt.executeQuery("select sum(XX) from Tabl1");
rs.next();
int jj = rs.getInt(1);
Stmt.executeUpdate("insert into Tabl1 (XX) values ("+Integer.toString(jj)+")");
utx.commit();
Stmt.close();
Conn.close();
}
public String getPp() {
return pp;
}
public void setPp(String pp) {
this.pp = pp;
try {
doDo();
}
catch (RollbackException ex) { }
catch (HeuristicMixedException ex) { }
catch (HeuristicRollbackException ex) { }
catch (SecurityException ex) { }
catch (IllegalStateException ex) { }
catch (NotSupportedException ex) { }
catch (SystemException ex) { }
catch (SQLException ex) { }
catch (NamingException ex) {
}
}
}