zoukankan      html  css  js  c++  java
  • 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);
            }
        }
  • 相关阅读:
    图形控件开发商十年之旅回顾
    图表控件,数据可视化,你真的选对了吗?
    话说LightningChart是最快最美的图表控件,到底先进在哪里?
    LayUI技巧总结
    解决EFCore缓存机制导致的数据查询错误问题
    关于反射的那些骚操作
    .NetCore借助AutoMapper实现全局数据字段按角色过滤
    记录一次EFCore CodeFirst迁移实践,解决多个项目表结构同步更新问题
    SQL查询整个数据库中某个特定值所在的表和字段的方法
    Visual Studio利用正则表达式进行查找和替换
  • 原文地址:https://www.cnblogs.com/ushowtime/p/14880544.html
Copyright © 2011-2022 走看看