Java读取数据库表

Java读取数据库表

package com.easycrud.builder;

import com.easycrud.utils.PropertiesUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.*;

/**
 * @BelongsProject: EasyCrud
 * @BelongsPackage: com.easycrud.builder
 * @Author: xpx
 * @Email: 2436846019@qq.com
 * @CreateTime: 2023-05-02  18:02
 * @Description: 读Table
 * @Version: 1.0
 */

public class BuildTable {

    private static final Logger logger = LoggerFactory.getLogger(BuildTable.class);
    private static Connection conn = null;

    /**
     * 查表名和表注释
     */
    private static String SQL_SHOW_TABLE_STATUS = "show table status";

    /**
     * 读配置,连接数据库
     */
    static {
        String driverName = PropertiesUtils.getString("db.driver.name");
        String url = PropertiesUtils.getString("db.url");
        String user = PropertiesUtils.getString("db.username");
        String password = PropertiesUtils.getString("db.password");

        try {
            Class.forName(driverName);
            conn = DriverManager.getConnection(url,user,password);
        } catch (Exception e) {
            logger.error("数据库连接失败",e);
        }
    }

    /**
     * 读取表
     */
    public static void getTables() {
        PreparedStatement ps = null;
        ResultSet tableResult = null;

        try{
            ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS);
            tableResult = ps.executeQuery();
            while(tableResult.next()) {
                String tableName = tableResult.getString("name");
                String comment = tableResult.getString("comment");
                logger.info("tableName:{},comment:{}",tableName,comment);
            }
        }catch (Exception e){
            logger.error("读取表失败",e);
        }finally {
            if (tableResult != null) {
                try {
                    tableResult.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

新手引导

Logger

Java自带的日志。

常见用法如下,打印日志信息:

logger.error("数据库连接失败",e)

logger.info("tableName:{},comment:{}",tableName,comment),{}是占位符

LoggerFactory.getLogger(xxx.class)

指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类。

Connection

Connection 对象用于打开与数据源的连接。

Class.forName(driverName)

加载驱动程序。

DriverManager.getConnection(url,user,password)

获取数据库连接。

PreparedStatement

用来执行SQL查询语句的 API 之一。

ResultSet

结果集 (ResultSet) 是数据中查询结果返回的一种对象,结果集是一个存储查询结果的对象。

ps = conn.prepareStatement(SQL_SHOW_TABLE_STATUS)

执行前会对SQL语句进行预编译的操作,然后就开始执行SQL语句,并返回结果。

tableResult = ps.executeQuery()

把数据库响应的查询结果存放在ResultSet类对象中供我们使用。

ResultSet中next()方法

ResultSet中指针的初始位置位于第一行之前;第一次调用next()方法将会把第一行设置为当前行。

name和comment

分别代表执行数据库show table status语句后查询出的表名和表注释。配合ResultSet的getString()方法得到对应值。

原文链接:https://www.cnblogs.com/LoginX/p/Login_X73.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java读取数据库表 - Python技术站

(0)
上一篇 2023年5月2日
下一篇 2023年5月3日

相关文章

  • SpringBoot快速整合Mybatis、MybatisPlus(代码生成器)实现数据库访问功能

    SpringBoot整合Mybatis 1.引入依赖 在pom.xml中引入以下依赖: <!– SpringBoot整合Mybatis依赖 –> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis…

    Java 2023年5月20日
    00
  • SpringDataJPA详解增删改查操作方法

    SpringDataJPA详解增删改查操作方法 简介 Spring Data JPA是Spring Framework的一部分,它是JPA规范的一个实现,提供了一种方便、基于注解的方式来实现对数据库的访问和操作。 环境准备 在进行Spring Data JPA的开发之前,我们需要在项目中导入相关的依赖,下面是一个示例的pom.xml配置: <!– S…

    Java 2023年5月20日
    00
  • maven仓库repositories和mirrors的配置及区别详解

    介绍 在使用Maven进行依赖管理时,常常会遇到一些有关仓库repositories和镜像mirrors的问题。本文将详细介绍这两个概念及其配置方式和区别。 仓库Repositories 仓库repositories是存储Maven构建的依赖和插件的位置。在Maven中有两种仓库:本地仓库和远程仓库。 本地仓库 指存储在本地计算机上的仓库,一般位于用户的.h…

    Java 2023年5月19日
    00
  • java获取整点与凌晨的时间戳

    获取整点与凌晨的时间戳,可以用Java中的Calendar类来实现,这个类可以帮助我们获取日期时间的各个部分,例如年份、月份、日期、小时数、分钟数等,还可以进行日期时间的加减运算。具体实现步骤如下: 1. 获取整点的时间戳 获取当前整点的时间戳,我们可以先获取当前的年、月、日和小时,然后将分钟和秒数置为0,最后再获取时间戳即可。 Calendar calen…

    Java 2023年5月20日
    00
  • spring boot多数据源动态切换代码实例

    下面将为您详细讲解如何实现在Spring Boot应用中实现多数据源动态切换,并提供两个示例。 一、前置条件 在开始编写代码之前,需要满足以下条件: 确保已经正确配置了多个数据源,这些数据源需要连接的数据库表结构和数据内容都应当是相同的; 当前应用中必须已经引入了相关依赖,这里采用Spring Boot 2.x版本为例: <dependencies&g…

    Java 2023年5月20日
    00
  • 详解Spring Security 简单配置

    《详解Spring Security 简单配置》是一篇介绍如何简单配置Spring Security的文章。下面是详细攻略: 1. 引入依赖 首先需要在项目中引入Spring Security的依赖,可以从Maven Central Repository中搜索Spring Security依赖,选择适合的版本引入。 2. 配置Spring Security …

    Java 2023年5月20日
    00
  • springboot 使用mybatis查询的示例代码

    以下是关于”springboot 使用mybatis查询的示例代码”的完整攻略: 1. 准备工作 在开始之前,我们需要做一些准备工作: Java JDK 1.8 及以上版本 Gradle 或者 Maven 等构建工具 MyBatis 3 + SpringBoot 数据库(本示例使用 MySQL) 这些工具和技术是开发这个示例所需的基本要素。如果你已经安装好了…

    Java 2023年5月19日
    00
  • Java调用Windows的DOS命令的方法

    Java调用Windows的DOS命令的方法 在Java中调用Windows的DOS命令可以使用Java的Runtime类。Runtime类提供了一个exec()方法,通过该方法可以调用DOS命令并且获取它的返回结果。 下面是一个简单的调用DOS命令的示例: String command = "dir"; // 要执行的DOS命令 Pro…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部