Guest User

Untitled

a guest
Sep 17th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.31 KB | None | 0 0
  1. Oracle connection get closed
  2. conn = DriverManager.getConnection(
  3. "jdbc:oracle:thin:@localhost:1521:orcl", "usr", "pwd");
  4.  
  5. protected Connection getConn() throws Exception {
  6. if(conn == null || conn.isClosed()) {
  7. conn = DriverManager.getConnection(
  8. "jdbc:oracle:thin:@localhost:1521:orcl", "usr", "pwd");
  9. }
  10. return conn;
  11. }
  12.  
  13. package persistence;
  14.  
  15. import java.sql.*;
  16. import java.util.*;
  17.  
  18. /**
  19. * util.DatabaseUtils
  20. * User: Michael
  21. * Date: Aug 17, 2010
  22. * Time: 7:58:02 PM
  23. */
  24. public class DatabaseUtils {
  25. private static final String DEFAULT_DRIVER = "oracle.jdbc.driver.OracleDriver";
  26. private static final String DEFAULT_URL = "jdbc:oracle:thin:@host:1521:database";
  27. private static final String DEFAULT_USERNAME = "username";
  28. private static final String DEFAULT_PASSWORD = "password";
  29. /*
  30. private static final String DEFAULT_DRIVER = "org.postgresql.Driver";
  31. private static final String DEFAULT_URL = "jdbc:postgresql://localhost:5432/party";
  32. private static final String DEFAULT_USERNAME = "pgsuper";
  33. private static final String DEFAULT_PASSWORD = "pgsuper";
  34. */
  35. /*
  36. private static final String DEFAULT_DRIVER = "com.mysql.jdbc.Driver";
  37. private static final String DEFAULT_URL = "jdbc:mysql://localhost:3306/party";
  38. private static final String DEFAULT_USERNAME = "party";
  39. private static final String DEFAULT_PASSWORD = "party";
  40. */
  41.  
  42. public static void main(String[] args) {
  43. long begTime = System.currentTimeMillis();
  44.  
  45. String driver = ((args.length > 0) ? args[0] : DEFAULT_DRIVER);
  46. String url = ((args.length > 1) ? args[1] : DEFAULT_URL);
  47. String username = ((args.length > 2) ? args[2] : DEFAULT_USERNAME);
  48. String password = ((args.length > 3) ? args[3] : DEFAULT_PASSWORD);
  49.  
  50. Connection connection = null;
  51.  
  52. try {
  53. connection = createConnection(driver, url, username, password);
  54. DatabaseMetaData meta = connection.getMetaData();
  55. System.out.println(meta.getDatabaseProductName());
  56. System.out.println(meta.getDatabaseProductVersion());
  57.  
  58. String sqlQuery = "SELECT PERSON_ID, FIRST_NAME, LAST_NAME FROM PERSON ORDER BY LAST_NAME";
  59. System.out.println("before insert: " + query(connection, sqlQuery, Collections.EMPTY_LIST));
  60.  
  61. connection.setAutoCommit(false);
  62. String sqlUpdate = "INSERT INTO PERSON(FIRST_NAME, LAST_NAME) VALUES(?,?)";
  63. List parameters = Arrays.asList("Foo", "Bar");
  64. int numRowsUpdated = update(connection, sqlUpdate, parameters);
  65. connection.commit();
  66.  
  67. System.out.println("# rows inserted: " + numRowsUpdated);
  68. System.out.println("after insert: " + query(connection, sqlQuery, Collections.EMPTY_LIST));
  69. } catch (Exception e) {
  70. rollback(connection);
  71. e.printStackTrace();
  72. } finally {
  73. close(connection);
  74. long endTime = System.currentTimeMillis();
  75. System.out.println("wall time: " + (endTime - begTime) + " ms");
  76. }
  77. }
  78.  
  79. public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException {
  80. Class.forName(driver);
  81. if ((username == null) || (password == null) || (username.trim().length() == 0) || (password.trim().length() == 0)) {
  82. return DriverManager.getConnection(url);
  83. } else {
  84. return DriverManager.getConnection(url, username, password);
  85. }
  86. }
  87.  
  88. public static void close(Connection connection) {
  89. try {
  90. if (connection != null) {
  91. connection.close();
  92. }
  93. } catch (SQLException e) {
  94. e.printStackTrace();
  95. }
  96. }
  97.  
  98.  
  99. public static void close(Statement st) {
  100. try {
  101. if (st != null) {
  102. st.close();
  103. }
  104. } catch (SQLException e) {
  105. e.printStackTrace();
  106. }
  107. }
  108.  
  109. public static void close(ResultSet rs) {
  110. try {
  111. if (rs != null) {
  112. rs.close();
  113. }
  114. } catch (SQLException e) {
  115. e.printStackTrace();
  116. }
  117. }
  118.  
  119. public static void rollback(Connection connection) {
  120. try {
  121. if (connection != null) {
  122. connection.rollback();
  123. }
  124. } catch (SQLException e) {
  125. e.printStackTrace();
  126. }
  127. }
  128.  
  129. public static List<Map<String, Object>> map(ResultSet rs) throws SQLException {
  130. List<Map<String, Object>> results = new ArrayList<Map<String, Object>>();
  131. try {
  132. if (rs != null) {
  133. ResultSetMetaData meta = rs.getMetaData();
  134. int numColumns = meta.getColumnCount();
  135. while (rs.next()) {
  136. Map<String, Object> row = new HashMap<String, Object>();
  137. for (int i = 1; i <= numColumns; ++i) {
  138. String name = meta.getColumnName(i);
  139. Object value = rs.getObject(i);
  140. row.put(name, value);
  141. }
  142. results.add(row);
  143. }
  144. }
  145. } finally {
  146. close(rs);
  147. }
  148. return results;
  149. }
  150.  
  151. public static List<Map<String, Object>> query(Connection connection, String sql, List<Object> parameters) throws SQLException {
  152. List<Map<String, Object>> results = null;
  153. PreparedStatement ps = null;
  154. ResultSet rs = null;
  155. try {
  156. ps = connection.prepareStatement(sql);
  157.  
  158. int i = 0;
  159. for (Object parameter : parameters) {
  160. ps.setObject(++i, parameter);
  161. }
  162. rs = ps.executeQuery();
  163. results = map(rs);
  164. } finally {
  165. close(rs);
  166. close(ps);
  167. }
  168. return results;
  169. }
  170.  
  171. public static int update(Connection connection, String sql, List<Object> parameters) throws SQLException {
  172. int numRowsUpdated = 0;
  173. PreparedStatement ps = null;
  174. try {
  175. ps = connection.prepareStatement(sql);
  176.  
  177. int i = 0;
  178. for (Object parameter : parameters) {
  179. ps.setObject(++i, parameter);
  180. }
  181. numRowsUpdated = ps.executeUpdate();
  182. } finally {
  183. close(ps);
  184. }
  185. return numRowsUpdated;
  186. }
  187. }
Add Comment
Please, Sign In to add comment