当前位置:   article > 正文

JDBC -Java连接数据库详解_java jdbc数据库

java jdbc数据库

1.什么是JDBC?

JDBC(Java Database Connectivity)是Java语言用于与数据库进行交互的API(应用程序接口)。它允许Java应用程序通过标准化的方式连接到各种数据库,并执行各种数据库操作,如查询、更新和删除数据等。通过JDBC,Java应用程序可以使用SQL语句与数据库进行通信,而不必关心底层数据库的具体实现。JDBC提供了一种灵活、可移植的方式,使开发人员能够轻松地编写与数据库交互的Java应用程序。

2.流程

  1. DriverManager类DriverManager 是 JDBC 中的一个类,负责管理 JDBC 驱动程序。它的主要作用是加载并注册数据库的驱动程序。通过调用 getConnection() 方法,DriverManager 可以获取与数据库的连接。

  2. Connection接口Connection 是 JDBC 中的一个接口,表示与数据库的连接。它定义了用于与数据库进行通信的方法,比如创建 Statement 对象、管理事务、关闭连接等。

  3. 具体的Connection实现类Connection 接口的具体实现类由数据库供应商提供的 JDBC 驱动程序实现。当我们通过 DriverManager.getConnection() 方法获取连接时,实际上获得的是数据库驱动程序提供的具体的 Connection 实现类的一个实例。这个实现类负责实现 Connection 接口定义的方法,并管理与数据库的底层通信。

  4. Statement接口及其实现类Statement 接口用于执行静态 SQL 语句,并返回执行结果。它有两个主要的实现类:StatementPreparedStatementStatement 对象用于执行不带参数的 SQL 语句,而 PreparedStatement 对象用于执行预编译的 SQL 语句,可以带有参数,提高了执行效率和安全性。

  5. ResultSet接口ResultSet 接口用于表示 SQL 查询的结果集。当执行查询语句时,StatementPreparedStatement 对象会返回一个 ResultSet 对象,其中包含了查询结果的数据。通过 ResultSet 对象,我们可以遍历结果集,获取查询结果的各个行和列的数据。

3.项目搭建

准备数据库。

创建学生表

  1. CREATE TABLE students (
  2. id INT PRIMARY KEY AUTO_INCREMENT,
  3. name VARCHAR(50) NOT NULL,
  4. class VARCHAR(50) NOT NULL,
  5. age INT NOT NULL,
  6. score FLOAT
  7. );
  8. INSERT INTO students (name, class, age, score) VALUES ('Alice', 'Class A', 20, 85.5);
  9. INSERT INTO students (name, class, age, score) VALUES ('Bob', 'Class B', 21, 78.2);
  10. INSERT INTO students (name, class, age, score) VALUES ('Charlie', 'Class A', 19, 92.0);
  11. INSERT INTO students (name, class, age, score) VALUES ('David', 'Class C', 22, 79.8);
  12. INSERT INTO students (name, class, age, score) VALUES ('Eva', 'Class B', 20, 88.9);

 4.下载驱动包注意你的Mysql版本。我使用8.0以上的。

 5.创建java项目。

一个空项目,创建一个lib文件夹,把上面的jar包放进去。

讲lib目录设置为仓库 

 

  1. package com.xugong;
  2. import com.mysql.jdbc.Driver;
  3. import javax.naming.spi.DirStateFactory;
  4. import java.sql.*;
  5. public class Test_JDBC {
  6. public static void main(String[] args) throws ClassNotFoundException, SQLException {
  7. //1.注册驱动
  8. Class.forName("com.mysql.cj.jdbc.Driver");
  9. //2.获取连接对象
  10. //DriverManager.getConnection();
  11. String url = "jdbc:mysql://localhost:3306/test_jdbc";
  12. String username = "root";
  13. String password = "123456";
  14. Connection connection = DriverManager.getConnection(url, username, password);
  15. //3.获取执行sql语句的对象
  16. Statement statement = connection.createStatement();
  17. //4.编写sql语句,执行语句,接收结果
  18. String sql = "select name,class,age,score from students";
  19. ResultSet resultSet = statement.executeQuery(sql);
  20. //5.处理结果:遍历result结果集
  21. while(resultSet.next()){
  22. String name = resultSet.getString("name");
  23. String aClass = resultSet.getString("class");
  24. int age = resultSet.getInt("age");
  25. float score = resultSet.getFloat("score");
  26. System.out.println(name+"\t"+aClass+"\t"+age+"\t"+score);
  27. }
  28. //6.释放资源
  29. resultSet.close();
  30. statement.close();
  31. connection.close();
  32. }
  33. }

 结果展示:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/847946
推荐阅读
相关标签
  

闽ICP备14008679号