JDBC连接MySQL数据库----以插入数据为例

本文详细介绍了JDBC在Java中的应用,包括如何通过JDBC连接MySQL数据库,加载驱动,执行SQL语句,异常处理(throws声明和try-catch块),以及资源的关闭。特别强调了PreparedStatement的使用以提高安全性和性能。
摘要由CSDN通过智能技术生成

JDBC,全称为Java Database Connectivity,是Java语言中用来规范客户端程序如何访问数据库的一套API(应用程序编程接口),它是用于执行SQL语句的Java API,允许应用程序与各种数据库建立连接并进行操作。

简而言之JDBC就是通过Java语言来操作数据库。

运行环境: IDEA  Edition 2022.1.4 JDK17,、 MySQL 8.0.36以及Navicat Premium 16 

想要通过JDBC连接并操作Mysql数据库,在操作之前需要下载一个Mysql数据库驱动jar包。导入项目中必须导入哦!!!

在JDBC中,异常处理通常涉及两种机制:throws声明和try-catch块。

首先,throws声明是在方法签名中使用的,它表明该方法可能会抛出指定的异常类型。这样做的目的是通知方法的调用者,他们需要准备好处理这些潜在的异常。例如,在JDBC中,如果一个方法可能会抛出SQLException,那么这个方法的签名中应该包含throws SQLException。这样,任何调用这个方法的代码都知道它们需要处理这个异常,或者在自己的方法签名中再次声明throws

其次,try-catch是用于实际捕获和处理异常的。在try块中,您放置可能会抛出异常的代码。如果在执行这些代码时发生异常,控制流将转移到相应的catch块,该块包含了处理特定类型异常的代码。在JDBC操作中,最常见的异常是SQLException。使用try-catch块可以让您有机会在异常发生时执行一些清理工作,比如关闭数据库连接,或者记录错误信息等。

此外,在使用JDBC时,通常会结合这两种机制来确保异常被适当地处理。例如,您可以在try块中执行数据库操作,并在catch块中捕获SQLException,然后进行适当的错误处理或资源清理。

  1. 加载驱动:需要加载数据库的JDBC驱动,这可以通过Class.forName()方法实现,例如Class.forName("com.mysql.jdbc.Driver")。 
    注意:不同版本驱动不一样
    5版本:com.mysql.jc.jdbc.java.Driver
    8.版本:com.mysql.jc.jdbc.java.Driver
          
  2. 建立连接:使用DriverManager.getConnection()方法来建立与数据库的连接。需要提供JDBC URL,这个URL包含了数据库的类型、主机名、端口号和数据库名称等信息。    
     获得的链接是一个对象
    ("jdbc:mysql://127.0.0.1:3306/data_01", "root","123456789");
    jdbc:mysql   协议,类似与http,https;Java与MySQL之间的协议
    127.0.0.1  数据库所在服务器地址
    3306 数据库占用的端口号
    data_01   数据库名
    Connection com = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/data_01", "root","123456789");
  3. 创建Statement:通过Connection对象的createStatement()方法创建一个Statement对象,用于发送SQL语句到数据库。
    Statement statement = com.createStatement();
    
  4. 执行SQL:使用Statement对象的executeQuery()(用于查询)或executeUpdate()(用于更新)方法来执行SQL语句。
    String sql="insert into student values(100,'虾红',30,99)";
  5. 处理结果:如果是查询操作,需要处理返回的ResultSet对象,提取数据。这里是一个增添操作,只需要返回查看操作完成即可;
    statement.executeUpdate(sql);
  6. 关闭资源:在操作完成后,需要关闭ResultSetStatementConnection对象,以释放JDBC资源。这一步非常重要,即使在方法执行完毕后,这些资源也不会立即消失,而是需要显式关闭以避免资源泄露。资源指的就是和数据连接的相关对象
    statement.close();
    com.close();

最后看到已经添加成功,JDBC连接数据库连接成功。数据插入成功 (100,'虾红',30,99)

总的来说,以上就是JDBC连接数据库的基本顺序。需要注意的是,在实际应用中,通常会使用try-with-resources语句或者在finally块中确保资源被正确关闭。此外,为了提高性能和安全性,现在更推荐使用PreparedStatement代替Statement,因为PreparedStatement可以预编译SQL语句并提供参数化查询,有助于防止SQL注入攻击。有时间再写使用PreparedStateme对象查询,敬请期待。

标题

 

package com.shuangti.jdbc;

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

public class insert {
   
    public static void main(String[] args) {
      
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");


            Connection com = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/data_01", "root","123456789");
           
            String sql="insert into student values(100,'虾红',30,99)";
            String sql1="updata into student values(100,'虾红',30,99)";
            //通过此方法返回一个可执行的对象
            Statement statement = com.createStatement();
//          executeUpdate执行sql增删改语句
            statement.executeUpdate(sql);
            
            statement.close();
            com.close();



            System.out.println("ok");
        } catch (ClassNotFoundException | SQLException e) {
            throw new RuntimeException(e);
        }


    }
}
  • 29
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 JDBC(Java Database Connectivity)来连接数据库插入数据MySQL 数据库。以下是一个简单的示例代码: ```java import java.sql.*; public class InsertDataExample { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/your_database_name"; static final String USER = "your_username"; static final String PASS = "your_password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // 注册 JDBC 驱动 Class.forName(JDBC_DRIVER); // 打开连接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); // 执行查询 System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql = "INSERT INTO your_table_name " + "VALUES (value1, value2, value3)"; stmt.executeUpdate(sql); // 完成后关闭 stmt.close(); conn.close(); } catch (SQLException se) { // 处理 JDBC 错误 se.printStackTrace(); } catch (Exception e) { // 处理 Class.forName 错误 e.printStackTrace(); } finally { // 关闭资源 try { if (stmt != null) stmt.close(); } catch (SQLException se2) { } // 什么都不做 try { if (conn != null) conn.close(); } catch (SQLException se) { se.printStackTrace(); } } System.out.println("Goodbye!"); } } ``` 在上面的示例中,你需要将 `your_database_name` 替换为你的数据库名称,`your_username` 和 `your_password` 替换为你的 MySQL 用户名和密码,`your_table_name` 替换为你要插入数据的表名称,以及 `value1`、`value2` 和 `value3` 替换为你要插入的实际值。 注意,上述代码只是一个示例,实际使用时需要根据你的实际需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值