Guest User

Untitled

a guest
Jan 17th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. package com.wisedu.jdbc.utils;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7.  
  8. import javax.sql.DataSource;
  9.  
  10. import com.mchange.v2.c3p0.ComboPooledDataSource;
  11.  
  12. public class DataSourceUtils {
  13.  
  14. private static DataSource dataSource = new ComboPooledDataSource();
  15.  
  16. private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();
  17.  
  18. // 直接可以获取一个连接池
  19. public static DataSource getDataSource() {
  20. return dataSource;
  21. }
  22.  
  23. public static Connection getConnection() throws SQLException{
  24. return dataSource.getConnection();
  25. }
  26.  
  27. // 获取连接对象
  28. public static Connection getCurrentConnection() throws SQLException {
  29.  
  30. Connection con = tl.get();
  31. if (con == null) {
  32. con = dataSource.getConnection();
  33. tl.set(con);
  34. }
  35. return con;
  36. }
  37.  
  38. // 开启事务
  39. public static void startTransaction() throws SQLException {
  40. Connection con = getCurrentConnection();
  41. if (con != null) {
  42. con.setAutoCommit(false);
  43. }
  44. }
  45.  
  46. // 事务回滚
  47. public static void rollback() throws SQLException {
  48. Connection con = getCurrentConnection();
  49. if (con != null) {
  50. con.rollback();
  51. }
  52. }
  53.  
  54. // 提交并且 关闭资源及从ThreadLocall中释放
  55. public static void commitAndRelease() throws SQLException {
  56. Connection con = getCurrentConnection();
  57. if (con != null) {
  58. con.commit(); // 事务提交
  59. con.close();// 关闭资源
  60. tl.remove();// 从线程绑定中移除
  61. }
  62. }
  63.  
  64. // 关闭资源方法
  65. public static void closeConnection() throws SQLException {
  66. Connection con = getCurrentConnection();
  67. if (con != null) {
  68. con.close();
  69. }
  70. }
  71.  
  72. public static void closeStatement(Statement st) throws SQLException {
  73. if (st != null) {
  74. st.close();
  75. }
  76. }
  77.  
  78. public static void closeResultSet(ResultSet rs) throws SQLException {
  79. if (rs != null) {
  80. rs.close();
  81. }
  82. }
  83.  
  84. }
Add Comment
Please, Sign In to add comment