JAVA基础复习之JDBC(配置动态数据源)

简介: 复习原因 在项目的开发当中,之前数据库连接信息都是写死在配置文件当中。但是突然接到一个需求: 获取外部数据源信息,然后将某些数据通过Echarts绘制成折线图展示出来(ps:数据源需要用户手动设定) 有点懵,因为之前都是写死在配置文件当中的,然后在网上也找了一些资料,发现都不是自己想要的。 最后想到,既然是简单的获取数据进行展示,直接使用JDBC连接数据库获取就可以了啊。没有必要搞什么骚操作。JDBC 一直使用的JPA或者mybatis进行数据库连接,很少使用JDBC进行数据库连接。 因此也复习一下JDBC,毕竟无论是JPA还是Mybatis都是对JDBC的一个封装。什么是JD

复习原因

在项目的开发当中,之前数据库连接信息都是写死在配置文件当中。但是突然接到一个需求:
  获取外部数据源信息,然后将某些数据通过Echarts绘制成折线图展示出来(ps:数据源需要用户手动设定)
  有点懵,因为之前都是写死在配置文件当中的,然后在网上也找了一些资料,发现都不是自己想要的。
  最后想到,既然是简单的获取数据进行展示,直接使用JDBC连接数据库获取就可以了啊。没有必要搞什么骚操作。

JDBC

一直使用的JPA或者mybatis进行数据库连接,很少使用JDBC进行数据库连接。
  因此也复习一下JDBC,毕竟无论是JPA还是Mybatis都是对JDBC的一个封装。

什么是JDBC

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序(来源于百度百科)

如何使用JDBC

第一步 加载驱动

第二步 连接数据库

第三步 创建sql

第四步 通过Statement类执行sql

第五步 获取到执行结果集ResultSet然后进行业务操作

第六步 关闭数据库连接

完整代码如下:

String ClassName = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://127.0.0.1:3306/test";
    String username = "root";
    String password = "root";
    //第一步:加载驱动
    try {//加载MySql的驱动类 将驱动注册到DriverManager当中
      Class.forName(ClassName);
    } catch (ClassNotFoundException e) {
      System.out.println("加载驱动失败!请检查驱动名称");
      e.printStackTrace();
    }
    Connection con = null;
    Statement statement = null;
    String sql = null;
    ResultSet resultSet = null;
    try {
      //第二步:获取连接
      con = DriverManager.getConnection(url, username, password);
      //第三步:创建sql
      sql = "SELECT username,password FROM test1 ";
      //第四步:获取statement类
      statement = con.createStatement();
      //第五步:获取到执行后的结果集resultSet
      resultSet = statement.executeQuery(sql);
     while (resultSet.next()){
        //通过结果集的操作方法进行数据的获取   这里可以进行实际的业务操作,例如存到一个对应的实体类,返回给前端
        //这里是获取的
      System.out.println(resultSet.getString(1));
      System.out.println(resultSet.getString(2));
      }
    } catch (SQLException e) {
      System.out.println("数据库连接失败!请检查数据库连接信息");
      e.printStackTrace();
    }finally {
      //先关闭结果集
      try {
        resultSet.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
      //然后关闭Statement对象
      try {
        statement.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
      //最后关闭连接
      try {
        con.close();
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }

到这里一个简单的JDBC连接就搞定了。

动态配置数据源

从上面JDBC连接当中可以看到,需要关注的参数是:ClassName url username password sql 这5个参数。因此我们只需要让用户输入这5个参数的相关配置信息,然后我们后台封装一个工具类,就可以简单的实现动态数据源的数据展示了。

第一步 创建一个配置类用于接受用户指定的数据源信息并存入数据库。

配置类代码如下:

@Id
  @GeneratedValue(strategy= GenerationType.AUTO)
  private int id;//主键.
  private String driverClassName;  //驱动名称
  private String url;//url  例如127.0.0.1
  private String iport; //端口 例如:3306
  private String username;//用户名称
  private String password;//用户密码
  private String databaseName; //数据库名称
  private String tableName; //表名称
  private String xData; //x轴数据列名
  private String yData; //y轴数据列名

第二步 将配置类传入到工具类,然后工具类执行数据获取操作,将获取到的数据存入到一个实体类然后返回给前端进行渲染生成折线图就可以了。

工具类就直接修改上面的jdbc代码当中的5个参数,将获取到的数据进行封装成实体类返回给前端就可以了。

重点:由于列名是动态的,返回的结果集获取数据时,直接通过列的顺序来获取就行了。(列是从左到右编号的,并且从列1开始)当然也可以通过指定别名来获取数据。

难点 主要是处理动态数据的接收问题。

相关文章
|
1月前
|
SQL Java 数据库连接
java使用jdbc操作数据库
java使用jdbc操作数据库
|
19天前
|
Java
Java配置环境
Java配置环境
21 0
Java配置环境
|
2天前
|
SQL Java 关系型数据库
零基础轻松入门Java数据库连接(JDBC)
零基础轻松入门Java数据库连接(JDBC)
8 0
|
3天前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
15 1
|
4天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
9 0
|
9天前
|
Oracle Java 关系型数据库
windows 下 win11 JDK17安装与环境变量的配置(配置简单详细,包含IJ中java文件如何使用命令运行)
本文介绍了Windows 11中安装JDK 17的步骤,包括从官方网站下载JDK、配置环境变量以及验证安装是否成功。首先,下载JDK 17的安装文件,如果没有Oracle账户,可以直接解压缩文件到指定目录。接着,配置系统环境变量,新建`JAVA_HOME`变量指向JDK安装路径,并在`Path`变量中添加。然后,通过命令行(cmd)验证安装,分别输入`java -version`和`javac -version`检查版本信息。最后,作者分享了如何在任意位置运行Java代码,包括在IntelliJ IDEA(IJ)中创建的Java文件,只需去掉包声明,就可以通过命令行直接运行。
|
13天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
20 1
|
14天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
|
15天前
|
Java Windows
java——安装JDK及配置解决常见问题
java——安装JDK及配置解决常见问题
|
17天前
|
Java Spring
【Java】配置多数据源报错循环依赖
【Java】配置多数据源报错循环依赖
25 1