原生JDBC连接数据库案例教学

简介: 前言:我们在刚刚接触后端开发时,有没有思考过,怎么才能后java代码和数据库进行交互的呢?

原生JDBC连接数据库案例教学


前言:

我们在刚刚接触后端开发时,有没有思考过,怎么才能后java代码和数据库进行交互的呢?

正轨:

今天就带大家一起学习一下原生JDBC连接数据库

里面解析结果集说了两种:一种需要导入maven依赖:

<dependency>
    <groupId>commons-dbutils</groupId>
    <artifactId>commons-dbutils</artifactId>
    <version>1.6</version>
</dependency>

直接上代码:

public static void main(String args[]){
        Connection con = null;
        Statement sta = null;
        ResultSet rs = null;
        try {
            //1.注册驱动==》告诉指挥部有哪些造桥人可以调遣
            Class.forName("com.mysql.cj.jdbc.Driver");
            //这里是mysql为例   oracle的url ---"jdbc:oracle:thin:@localhost:1521:orcl"
            String url = "jdbc:mysql://127.0.0.1:3306/test_1.0";
            String user = "root";
            String pwd =  "root";
            //2.获得链接==》指挥部根据传入类型 调遣不同的造桥的人造桥
            con = DriverManager.getConnection(url,user,pwd);
            //3.创建Statement对象===》造车
            sta = con.createStatement();
            //4.执行SQL ==》运行SQL 有结果返回
            String sql="select * from user";
            rs = sta.executeQuery(sql);
            //5.处理结果
            while(rs.next()){
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int age = rs.getInt("age");
                //String code = rs.getString("");
                System.out.println(id+"\t"+name+"\t"+age+"\t");
            }
            System.out.println("----------------华丽分割线------------------");
            //第五步处理结果还可以引入Dbutils工具包来解析结果
            QueryRunner queryRunner = new QueryRunner();
            List<User> list = queryRunner.query(con, sql, new BeanListHandler<>(User.class));
            list.forEach(x-> System.out.println(x));
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }finally {
            //6.关闭资源
            close(con,sta,rs);
        }
    }

其中,在结束时要关闭资源,防止资源浪费,这里封装了一个关闭资源方法,代码如下:

public static void close(Connection con , Statement sta , ResultSet rs){
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            sta.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        try {
            con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

运行结果展示,代码如下:

/**
     * 运行结果展示:
     * 解析ResultSet结果
     * 1  df  222
     * 2  wang  22
     * ----------------华丽分割线------------------
     * 使用Dbutils来拿取数据库结果展示
     * User(id=1, name=df, age=222)
     * User(id=2, name=wang, age=22)
     */

结语:

这样就和数据库建立了连接,当然对于数据库的url,账号密码可以写在配置文件中,这样方便修改,本博客目的是讲一下原生JDBC怎么与数据库建立连接的,有什么问题留言呦!!有时间写一下Dbutils工具包QueryRuunner的常用方法.



相关文章
|
11天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
111 68
|
7天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
20 3
|
7天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
20 2
|
14天前
|
关系型数据库 MySQL 数据库连接
DBeaver如何连接一个数据库
【10月更文挑战第27天】DBeaver 是一款功能强大的通用数据库管理工具,支持多种主流数据库。本文介绍了使用 DBeaver 连接数据库的基本步骤,包括下载安装、创建新连接、选择数据库类型、配置连接参数、测试连接以及最终连接到数据库。详细的操作指南帮助用户轻松管理和操作数据库。
54 9
|
7天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
11 1
|
7天前
|
Java 数据库连接 数据库
Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销
本文深入探讨了Java连接池在数据库性能优化中的重要作用。连接池通过预先创建和管理数据库连接,避免了频繁创建和关闭连接的开销,显著提升了系统的响应速度和吞吐量。文章介绍了连接池的工作原理,并以HikariCP为例,展示了如何在Java应用中使用连接池。通过合理配置和优化,连接池技术能够有效提升应用性能。
22 1
|
12天前
|
存储 数据挖掘 数据库
数据库数据恢复—SQLserver数据库ndf文件大小变为0KB的数据恢复案例
一个运行在存储上的SQLServer数据库,有1000多个文件,大小几十TB。数据库每10天生成一个NDF文件,每个NDF几百GB大小。数据库包含两个LDF文件。 存储损坏,数据库不可用。管理员试图恢复数据库,发现有数个ndf文件大小变为0KB。 虽然NDF文件大小变为0KB,但是NDF文件在磁盘上还可能存在。可以尝试通过扫描&拼接数据库碎片来恢复NDF文件,然后修复数据库。
|
12天前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
17 3
|
15天前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
16天前
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库