import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class JDutil { // 声明一个连接池对象 private static DruidDataSource druidDataSource; private static ThreadLocal<Connection> threadLocal = new ThreadLocal<>(); static { Properties properties = new Properties(); InputStream inputStream = JDutil.class.getResourceAsStream("/datebase.properties"); try { properties.load(inputStream); // 创建连接池 try { druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } //1.获取连接 public static Connection getConnection() { try { return druidDataSource.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return null; // String url = "jdbc:mysql://localhost:3306/shujuku?&useUnicode=true&serverTimezone=UTC"; // String user = "root"; // String password = "123456"; // Connection connection = threadLocal.get(); // try { //// String url = "jdbc:mysql://localhost:3306/shujuku?&useUnicode=true&serverTimezone=UTC"; //// String user = "root"; //// String password = "123456"; // if(threadLocal.get() == null) { // connection = DriverManager.getConnection(url, user, password); // threadLocal.set(connection); // } //// System.out.println(connection); // } // catch (SQLException e) { // e.printStackTrace(); // } // return connection; } public static void closeAll(Connection connection, Statement statement, ResultSet resultSet) { try { if(resultSet != null) resultSet.close(); if(statement != null) statement.close(); if(connection != null) connection.close(); } catch (SQLException e) { e.printStackTrace(); } } public static void begin() { Connection connection = getConnection(); try { connection.setAutoCommit(false); } catch (SQLException e) { e.printStackTrace(); } } public static void commit() { Connection connection = getConnection(); try { connection.commit(); } catch (SQLException e) { e.printStackTrace(); }finally { closeAll(connection,null,null); } } public static void rollback() { Connection connection = null; try { connection = getConnection(); connection.rollback(); } catch (SQLException e) { e.printStackTrace(); }finally { closeAll(connection,null,null); } } }