java mysql jdbc連線資料庫
阿新 • • 發佈:2021-06-13
1.獲取一個連線
/** * 獲取資料庫連線 * @author songmin * @param generateData: * @date 2021/6/12 14:57 * @return: java.sql.Connection */ public static Connection getConnection(GenerateData generateData){ String url = generateData.getDbUrl() ; String username = generateData.getDbUserName(); String password= generateData.getDbPassword(); Connection con = null; try{ con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("資料庫連線失敗!"); se.printStackTrace() ; } return con; }
2.獲取連線之後查詢
/*** 獲取所有表 * @author songmin * @param generateData: * @date 2021/6/12 15:07 * @return: java.lang.String */ public static Set<String> getAllTable(GenerateData generateData){ Connection conn = getConnection(generateData); PreparedStatement pstmt = null; String sql= "select table_name from information_schema.tables where table_schema=?"; Set<String> tableNames = new HashSet<>(); try { pstmt = conn.prepareStatement(sql); pstmt.setString(1,generateData.getDbName()); ResultSet rs = pstmt.executeQuery(); while (rs.next()){ tableNames.add(rs.getString("TABLE_NAME")); } } catch (SQLException e) { e.printStackTrace(); }finally { close(pstmt,conn); } return tableNames; }
3.關閉連線的方法
/** * 關閉連線 * @author songmin * @param statement: * @param conn: * @date 2021/6/12 15:08 * @return: void */ public static void close(Statement statement, Connection conn) { if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
4.功能測試
public static void main(String[] args) { GenerateData generateData = new GenerateData(); generateData.setDbName("generate_code_test"); generateData.setDbUrl("jdbc:mysql://localhost:3306/generate_code_test?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useAffectedRows=true"); generateData.setDbUserName("root"); generateData.setDbPassword("123456"); Set<String> tables = getAllTable(generateData); for (String str : tables) { logger.info("表名 {}",str); } }