1 package spoon.examples.dbaccess.template; 2 3 import java.sql.Connection ; 4 import java.sql.DriverManager ; 5 import java.sql.ResultSet ; 6 import java.sql.SQLException ; 7 import java.sql.Statement ; 8 9 import spoon.reflect.Factory; 10 import spoon.template.Local; 11 import spoon.template.Parameter; 12 import spoon.template.Template; 13 14 public class DBCodeTemplate implements Template { 15 @Parameter 16 public String _database_; 17 18 @Parameter 19 public String _username_; 20 21 @Parameter 22 public String _password_; 23 24 @Parameter 25 public String _tableName_; 26 27 @Parameter 28 public String _columnName_; 29 30 Connection connection; 31 32 @Local 33 String key; 34 35 public DBCodeTemplate(Factory f, String database, String username, 36 String password, String tableName) { 37 this._database_ = database; 38 this._username_ = username; 39 this._password_ = password; 40 this._tableName_ = tableName; 41 } 42 43 public void initializerCode() { 44 try { 45 Class.forName("org.postgresql.Driver"); 46 } catch (ClassNotFoundException e) { 47 e.printStackTrace(); 48 return; 49 } 50 try { 51 connection = DriverManager.getConnection("jdbc:postgresql:" 52 + _database_, _username_, _password_); 53 } catch (SQLException e) { 54 new Exception ("failed to connect to the database with " 55 + "jdbc:postgresql:" + _database_ + "," + _username_ + "," 56 + _password_).printStackTrace(); 57 } 58 } 59 60 public String accessCode() { 61 String query = "select " + _columnName_ + " from " + _tableName_ 62 + " where key=" + key; 63 Statement s = null; 64 try { 65 s = connection.createStatement(); 66 ResultSet rs = s.executeQuery(query); 67 rs.first(); 68 return rs.getString(1); 69 } catch (java.sql.SQLException ex12) { 70 ex12.printStackTrace(); 71 } finally { 72 try { 73 s.close(); 74 } catch (Exception ex13) { 75 ex13.printStackTrace(); 76 } 77 } 78 return null; 79 } 80 81 } | Popular Tags |