原生jdbc操作mysql数据库详解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 首先给大家说一下使用JDBC链接数据库的步骤  1.加载链接数据库驱动  2.建立数据库链接  3.创建数据库操作对象  4.编写sql语句,执行sql语句  5.获取结果集  6.释放资源我这边采用的是maven构建工具创建的java项目;如果不使用maven创建的话也没有什么不同,...

首先给大家说一下使用JDBC链接数据库的步骤

  1.加载链接数据库驱动

  2.建立数据库链接

  3.创建数据库操作对象

  4.编写sql语句,执行sql语句

  5.获取结果集

  6.释放资源

我这边采用的是maven构建工具创建的java项目;如果不使用maven创建的话也没有什么不同,因为都是在main方法里面写的嘛!

只是需要导入jdbc需要的jar包即可,然后下面建项目的这些步骤就可以直接跳过了

  首先点击新建项目

如果你的这里没有Maven Project 这个选项的话,那就直接点击Other,有的话就直接点击Maven项目即可!

 

点完以后在这里搜索maven也是一样的,选择Maven  Project   然后next

 

 直接使用默认  继续next   

 

找到我选中的那一条   ,其他地方不用填 ,继续next

 

主要目的不是为了构建项目,所以这上面两个需要填写的地方可以随意些,上面的代表包名 ,第二个代表项目名,然后Finish

 

 然后在pom.xml里面加入如下配置;我是不记得需要那几个jar包了,所以直接全部放进去了,哈哈哈哈哈

现在开始就要写代码了,首先建一个main方法,很简单的写一个例子

package com.TestJDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Hello world!
 *
 */
public class Demo01 
{
    public static void main( String[] args )
    {
        Connection connection=null ;
        Statement statement=null;
        ResultSet resultSet = null;
        try {
            //1.加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接对象(参数解释,第一个是代表jdbc的方式访问mysql数据库,localhost代表是访问本地的,3306端口号,db_test01代表数据库名字,后面两个代表账户密码
             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_test01","root","root");
            
            //3.获取执行sql对象
             statement = connection.createStatement();
            //4.编写sql语句,执行sql
            String sql="select * from stu";
            //5.获取结果集 ,查询操作使用executeQuery,增,删,改使用statement.executeLargeUpdate(sql)
            //如果是增删改操作,失败了会返回0            
            resultSet = statement.executeQuery(sql);
            if(resultSet.next()){
          //获取字符串类型的值 String name
= resultSet.getString("name"); String sex = resultSet.getString("sex");
            //获取int型的值
int age = resultSet.getInt("age"); System.out.println(name+" ,"+sex+","+age); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //6.释放连接 if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(statement!=null){ try { statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(connection!=null){ try { connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }

 下面改了一下,是一个预编译的案例

package com.TestJDBC;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Hello world!
 *
 */
public class Demo01 {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;
        try {
            // 1.加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 2.获取连接对象(参数解释,第一个是代表jdbc的方式访问mysql数据库,localhost代表是访问本地的,3306端口号,db_test01代表数据库名字,后面两个代表账户密码
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_test01", "root", "root");

            // 3.获取执行sql对象
            // 4.编写sql语句,执行sql(预编译,用?号代替值)
            String sql = "select * from stu where id=?";
            statement = connection.prepareStatement(sql);
            //然后再设置进去,可以设置多个值
            statement.setString(1, "1");
            resultSet = statement.executeQuery();
            // 5.获取结果集
            // ,查询操作使用executeQuery,增,删,改使用statement.executeLargeUpdate(sql)
            // 如果是增删改操作,失败了会返回0
            if (resultSet.next()) {
                // 获取字符串类型的值
                String name = resultSet.getString("name");
                String sex = resultSet.getString("sex");
                // 获取int型的值
                int age = resultSet.getInt("age");
                System.out.println(name + " ," + sex + "," + age);
            }

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            // 6.释放连接
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
存储 数据处理 数据库
深入了解达梦数据库的增删查改操作:从入门到精通
深入了解达梦数据库的增删查改操作:从入门到精通
|
2天前
|
Java 数据库连接 数据库
实时计算 Flink版操作报错合集之flink jdbc写入数据时,长时间没写入后报错,是什么原因导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
23 9
|
2天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之用CTAS从mysql同步数据到hologres,改了字段长度,报错提示需要全部重新同步如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
42 8
|
2天前
|
Oracle 关系型数据库 MySQL
实时计算 Flink版操作报错合集之采集oracle的时候报ORA-65040:不允许从可插入数据库内部执行该操作如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
20 3
|
2天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版操作报错合集之程序初始化mysql没有完成就报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
12 4
|
2天前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之sqlserver mysql都用的胖包,sqlserver的成功了,mysql报这个错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
17 6
|
2天前
|
SQL Oracle 关系型数据库
实时计算 Flink版操作报错合集之连接器换成2.4.2之后,mysql作业一直报错如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
12 3
|
3天前
|
Java 数据处理 流计算
实时计算 Flink版产品使用合集之可以通过JDBC连接器来连接Greenplum数据库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
12 1
|
4天前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之当 SQL Server 源数据库中的数据更新后,CDC 吐出的操作(op)是怎样的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
14 0
|
5天前
|
SQL 关系型数据库 MySQL
Mysql忘记密码操作
Mysql忘记密码操作
26 1

推荐镜像

更多