JDBC连接数据库详细教程指南

举报
久绊A 发表于 2023/04/07 15:03:24 2023/04/07
【摘要】 一、JDBC介绍JDBC是Java数据库连接的简称。它是Java语言中用于访问关系型数据库的API,提供了一套标准的接口,使得Java应用程序能够与各种关系型数据库进行通信。二、JDBC环境的搭建三、JDBC的开发步骤1、加载JDBC驱动程序在程序运行之前,需要将JDBC驱动程序加载到内存中。可以使用Class.forName()方法加载驱动程序。例如,如果要使用MySQL数据库,则需要加载...

一、JDBC介绍

JDBC是Java数据库连接的简称。它是Java语言中用于访问关系型数据库的API,提供了一套标准的接口,使得Java应用程序能够与各种关系型数据库进行通信。

二、JDBC环境的搭建

三、JDBC的开发步骤

1、加载JDBC驱动程序

在程序运行之前,需要将JDBC驱动程序加载到内存中。可以使用Class.forName()方法加载驱动程序。例如,如果要使用MySQL数据库,则需要加载com.mysql.jdbc.Driver类。

Class.forName("com.mysql.jdbc.Driver");

2、建立数据库连接

使用DriverManager.getConnection()方法建立与数据库的连接。需要提供数据库的URL、用户名和密码。

String url = "jdbc:mysql://localhost/test";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);

3、创建Statement对象

创建一个Statement对象,用于向数据库发送SQL语句。

 Statement stmt = conn.createStatement();

4、执行SQL语句

使用Statement对象的executeQuery()或executeUpdate()方法执行SQL语句。

executeQuery()方法用于执行SELECT语句,返回一个ResultSet对象,而executeUpdate()方法用于执行INSERT、UPDATE和DELETE语句,返回一个整数,表示受影响的行数。

 ResultSet rs = stmt.executeQuery("SELECT * FROM student");

5、处理结果集

如果执行的是SELECT语句,那么需要处理返回的结果集。可以使用ResultSet对象的next()方法遍历结果集,并使用getXXX()方法获取每个字段的值。

 while (rs.next()) {
         int id = rs.getInt("id");
         String name = rs.getString("name");
         int age = rs.getInt("age");
         System.out.println("id: " + id + ", name: " + name + ", age: " + age);
      }

6、关闭连接

使用Connection、Statement和ResultSet对象的close()方法关闭连接。

rs.close();
stmt.close();
conn.close();

7、示例程序

import java.sql.*;

public class JdbcDemo {
   public static void main(String[] args) throws Exception {
      // 加载JDBC驱动程序
      Class.forName("com.mysql.jdbc.Driver");

      // 建立数据库连接
      String url = "jdbc:mysql://localhost/test";
      String user = "root";
      String password = "123456";
      Connection conn = DriverManager.getConnection(url, user, password);

      // 创建Statement对象
      Statement stmt = conn.createStatement();

      // 执行SQL语句
      ResultSet rs = stmt.executeQuery("SELECT * FROM student");

      // 处理结果集
      while (rs.next()) {
         int id = rs.getInt("id");
         String name = rs.getString("name");
         int age = rs.getInt("age");
         System.out.println("id: " + id + ", name: " + name + ", age: " + age);
      }

      // 关闭连接
      rs.close();
      stmt.close();
      conn.close();
   }
}

8、注意

在实际开发中,建议使用PreparedStatement对象代替Statement对象,以防止SQL注入攻击。PreparedStatement对象可以使用Connection.prepareStatement()方法创建。

PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student WHERE name = ?");
pstmt.setString(1, "张三");
ResultSet rs = pstmt.executeQuery();
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。