D.6.1 Ответы
(сессионный бин без состояния, транзакция открывается на момент выполнения операции и сразу же закрывается) Имеется база данных, содержащая таблицу с именем Tabl1. Таблица имеет столбец с именем XX и типом данных "целое число". Первоначально, таблица пустая. Определить содержимое таблицы после запусков следующего приложения и вводе клиентом пар значений (1, A), (2, A), (3, A), (4, A), (5, A) в поля ("Введите значение:", "Введите имя пользователя:").
Текст файла 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) {
}
}
}