1. 程式人生 > 其它 >java mysql jdbc連線資料庫

java mysql jdbc連線資料庫

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);
        }
    }