IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> java中jdbc,利用反射查询数据 -> 正文阅读

[大数据]java中jdbc,利用反射查询数据

java中jdbc,利用反射查询数据

 /**
     * 加载JDBC驱动;
     * 建立并获取数据库连接;
     * 创建 JDBC Statements 对象;
     * 设置SQL语句的传入参数;
     * 执行SQL语句并获得查询结果;
     * 对查询结果进行转换处理并将处理结果返回;
     * 释放相关资源(关闭Connection,关闭Statement,关闭ResultSet);
     *
     * @return list
     */
    public static List<Map<String, Object>> queryForList() {
        // 连接
        Connection connection = null;
        // 执行请求
        PreparedStatement stmt = null;
        // 返回数据
        ResultSet rs = null;
        // 返回格式
        List<Map<String, Object>> resultList = new ArrayList<>();
        try {
            // 加载JDBC驱动(加不加newInstance都行,
            // 因为静态初始化器的中已经进行了注册:
            // DriverManager.registerDriver(new Driver());
            // 所以不需要加newInstance,加了也没事)
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
            String user = "root";
            String password = "123456";
            // 获取数据库连接
            connection = DriverManager.getConnection(url, user, password);
            //要执行的sql语句
            String sql = "SELECT * FROM `user` WHERE id= ?";
            // 创建Statement对象用于向数据库发送SQL语句(每一个Statement为一次数据库执行请求)
            stmt = connection.prepareStatement(sql);
            // 设置传入参数(int、string、list、object······)
            stmt.setInt(1, 7);
            // 执行SQL语句
            rs = stmt.executeQuery();
            // 处理查询结果(将查询结果转换成List<Map>格式)
            ResultSetMetaData rsmd = rs.getMetaData();
            int num = rsmd.getColumnCount();
            Map<String, Object> map = new HashMap<>();
            while (rs.next()) {
                for (int i = 0; i < num; i++) {
                    // 获取字段名,从1开始
                    String columnName = rsmd.getColumnName(i + 1);
                    // 通过字段名获取值,放入map里
                    map.put(columnName, rs.getString(columnName));
                }
                // 将map里的数据放入list
                resultList.add(map);
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        } finally {
            // 最后关闭所有连接
            try {
                // 关闭结果集
                if (rs != null) {
                    rs.close();
                }
                // 关闭执行请求
                if (stmt != null) {
                    stmt.close();
                }
                // 关闭数据库连接
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        // 返回最后的数据list
        return resultList;
    }

数据表

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(4) NOT NULL AUTO_INCREMENT COMMENT 'id主键',
  `name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
  `password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
  `sex` int(2) NOT NULL DEFAULT 0 COMMENT '性别:0女,1男',
  `birth` datetime(0) NOT NULL COMMENT '生日',
  `update_date` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新日期',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 300 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:40:57  更:2022-03-22 20:42:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:45:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码