/web/DRCP/src/foo/DBTest.java
http://drcp.googlecode.com/ · Java · 70 lines · 51 code · 15 blank · 4 comment · 6 complexity · f481133878ba8f9f70d4c618d2ddd573 MD5 · raw file
- package foo;
-
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.Statement;
-
- import javax.naming.Context;
- import javax.naming.InitialContext;
- import javax.sql.DataSource;
- import javax.transaction.UserTransaction;
-
- public class DBTest{
-
- int foo = -1;
- // value stored in DB
-
- public void init(String completion) {
- try{
- Context ctx = new InitialContext();
-
- // JDBC stuff
- DataSource ds =
- (DataSource)ctx.lookup("java:comp/env/jdbc/myDB");
-
- UserTransaction ut = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
-
- java.sql.Connection conn = ds.getConnection();
-
- System.out.println("<<< beginning the transaction >>>");
- ut.begin();
-
- // JDBC statements
- Statement stmt = conn.createStatement();
- ResultSet rst =
- stmt.executeQuery("select id, foo from testdata");
- if(rst.next()) {
- foo=rst.getInt(2);
- }
- System.out.println("foo = "+ foo +" (before completion)");
-
- PreparedStatement pstmt = conn.prepareStatement("update testdata set foo=? where id=1");
- pstmt.setInt(1,++foo);
- pstmt.executeUpdate();
-
- if (completion != null && completion.equals("commit")) {
- System.out.println("<<< committing the transaction >>>");
- ut.commit();
- } else {
- System.out.println("<<< rolling back the transaction >>>");
- ut.rollback();
- }
-
- // we set foo to the value stored in the DB
- rst =
- stmt.executeQuery("select id, foo from testdata");
- if(rst.next()) {
- foo=rst.getInt(2);
- }
- System.out.println("foo = "+ foo +" (after completion)");
-
- conn.close();
- System.out.println("<<< done >>>");
- }catch(Exception e) {
- System.out.print("DBTest >> ");
- e.printStackTrace();
- }
- }
-
- public String getFoo() { return ""+foo; }
- }