01 package trail.injection;
02
03 import javax.ejb.Stateless;
04 import javax.ejb.TimerService;
05 import javax.ejb.SessionContext;
06 import javax.annotation.Resource;
07 import javax.jms.QueueConnectionFactory;
08 import javax.jms.Queue;
09 import java.sql.*;
10 import javax.sql.*;
11
12 @Stateless
13 public class RecordManagerBean implements RecordManager {
14
15 // Inject resources based on global jndi names
16 @Resource (mappedName="java:/DefaultDS")
17 DataSource myDb;
18
19 @Resource (mappedName="ConnectionFactory")
20 QueueConnectionFactory factory;
21
22 @Resource (mappedName="queue/testQueue")
23 Queue queue;
24
25 // Inject resources based on type
26 @Resource
27 TimerService tms;
28
29 @Resource
30 SessionContext ctx;
31
32 public void addRecord (long sent, double result) {
33 Connection conn = null;
34 PreparedStatement pstmt = null;
35 try {
36
37 conn = myDb.getConnection();
38 pstmt = conn.prepareStatement (
39 "INSERT INTO INJECTIONREC " +
40 "(SENT,PROCESSED,RESULT) " +
41 "VALUES (?, ?, ?)");
42 pstmt.setLong (1, sent);
43 long processed = System.currentTimeMillis();
44 pstmt.setLong (2, processed);
45 pstmt.setDouble (3, result);
46 pstmt.executeUpdate();
47
48 } catch (Exception e) {
49 e.printStackTrace ();
50 } finally {
51 try {
52 pstmt.close ();
53 conn.close ();
54 } catch (Exception e) {
55 e.printStackTrace ();
56 }
57 }
58 }
59
60 public CalculationRecord getRecord (long sent) {
61 Connection conn = null;
62 Statement stmt = null;
63 ResultSet rs = null;
64
65 CalculationRecord rc = null;
66
67 try {
68
69 conn = myDb.getConnection();
70 stmt = conn.createStatement ();
71 rs = stmt.executeQuery("SELECT * FROM INJECTIONREC");
72
73 while (rs.next()) {
74 if (rs.getLong("sent") == sent) {
75 rc = new CalculationRecord (
76 rs.getLong ("sent"),
77 rs.getLong ("processed"),
78 rs.getDouble ("result"));
79 break;
80 }
81 }
82
83 } catch (Exception e) {
84 e.printStackTrace ();
85 } finally {
86 try {
87 rs.close ();
88 stmt.close ();
89 conn.close ();
90 } catch (Exception e) {
91 e.printStackTrace ();
92 }
93 }
94 return rc;
95 }
96
97 }
|