前言
项目很多小伙伴学习后端的时候以及学习数据库的时候,在后端程序中,有很多的数据来自前端的传递或者后端本身创建的,这些数据都是需要的,学过数据库的小伙伴知道,数据存放到数据库里才容易管理以及安全、方便。那么我们就会需要将程序与数据库进行连接并执行相关的操作,这是后端的一项经典又必不可少的技术
一、java连接数据库技术
Java 连接技术是 Java 程序与外部资源进行交互的方式,可以包括连接数据库、连接消息队列、连接 Web 服务等等。
Java 连接技术主要有以下几种:
1.JDBC
JDBC(Java Database Connectivity):JDBC是Java连接数据库的标准API。它提供了一组接口和类,用于与关系型数据库进行交互。通过JDBC,可以连接到各种数据库(如MySQL、Oracle、SQL Server等),执行SQL语句、事务管理和结果集处理等操作。
2.ORM
ORM框架: ORM(Object-Relational Mapping)框架允许将Java对象和关系型数据库之间进行映射,进而实现数据库操作。常见的Java ORM框架包括Hibernate、MyBatis等。这些框架提供了对象与数据库表之间的映射关系配置,简化了数据库操作的编写和维护工作。
3.JPA
JPA(Java Persistence API): JPA是一种基于ORM思想的Java持久化规范。它提供了一组API,用于管理和持久化Java对象到关系型数据库。JPA具有统一的API和查询语言,可以与多种底层ORM实现(如Hibernate、EclipseLink等)集成。
4.JPA
数据库连接池: 数据库连接池是一种管理数据库连接的技术,它通过创建和维护一定数量的数据库连接对象,实现连接的复用和高效管理。常见的Java数据库连接池有Apache Commons DBCP、C3P0和HikariCP等。
5.NoSQL数据库驱动:
NoSQL数据库驱动: 除了关系型数据库,Java也支持连接和操作各种NoSQL数据库,如MongoDB、Redis、Elasticsearch等。这些数据库通常有自己的原生Java驱动或客户端库,用于在Java应用程序中进行连接和数据交互。
二、jdbc
JDBC是Java语言中提供的一组API,它提供了一种与关系型数据库进行交互的标准方式。利用JDBC可以让Java程序连接到各种不同的关系型数据库(例如Oracle、MySQL、Microsoft SQL Server等),执行SQL语句以及检索和更新数据库中的数据。
JDBC API包含两部分:JDBC API和JDBC驱动程序。
JDBC API提供了访问关系型数据库的标准方式,其中包含连接数据库所需的类、接口和标准SQL类型。JDBC驱动程序是一个具体的实现,不同类型的关系型数据库需要不同的驱动程序实现。
在使用JDBC时,我们需要先加载对应的JDBC驱动程序,然后通过JDBC API提供的接口和类建立数据库连接,最后通过执行SQL语句来操作数据库中的数据,执行结束后需关闭连接。下面是一个简单的Java程序示例,展示如何使用JDBC连接数据库并执行SQL语句:
import java.sql.*; public class JDBCDemo { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载MySQL驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String user = "root"; String password = "123456"; conn = DriverManager.getConnection(url, user, password); /** 准备写入 SQL */ // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL查询语句 rs = stmt.executeQuery("SELECT * FROM student"); // 处理查询结果 while (rs.next()) { System.out.println(rs.getString("Studentname")); //获取Studentname这一列的数据 } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { // 关闭ResultSet、Statement和Connection try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
上面的示例程序中,我们首先加载了MySQL数据库的JDBC驱动,然后通过DriverManager获取数据库连接,创建Statement对象并执行SQL查询语句,最后处理查询结果并关闭所持有的JDBC资源。
三、连接步骤
使用 JDBC 连接数据库需要分为以下几个步骤:
1. 加载数据库驱动
在连接数据库之前,需要先加载相应的 JDBC 驱动程序。不同类型的数据库需要使用不同的驱动程序,例如 MySQL 使用的驱动程序是 com.mysql.jdbc.Driver,Oracle 使用的是 oracle.jdbc.driver.OracleDriver,如果忘记加载驱动程序,会导致连接数据库失败。
加载驱动程序可以通过 Class.forName() 方法实现,例如:
Class.forName("com.mysql.jdbc.Driver");
2. 创建数据库连接
在加载完成驱动程序之后,就可以使用 DriverManager.getConnection() 方法来创建连接对象。该方法需要传递一个包含连接信息的 URL(Uniform Resource Locator)、用户名和密码,例如:
String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "root"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password);
其中,“jdbc:mysql://” 表示连接的数据库类型是 MySQL,“localhost” 表示连接到本地主机,“3306” 表示连接到 MySQL 的端口号,“mydatabase” 表示要连接的数据库名称,“root” 和 “mypassword” 分别表示连接用户名和密码。
3. 创建 Statement 或 PreparedStatement 对象
连接数据库之后,可以使用 Statement 或 PreparedStatement 对象执行 SQL 语句。其中,Statement 对象用于执行静态 SQL 语句或者预编译的 SQL 语句,PreparedStatement 对象用于执行带参数的 SQL 语句。
创建 Statement 或 PreparedStatement 对象可以通过 Connection 的 createStatement() 或 prepareStatement() 方法实现,例如:
// 创建 Statement 对象 Statement stmt = conn.createStatement(); // 创建 PreparedStatement 对象 PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM user WHERE username = ?");
4. 执行 SQL 语句
创建好 Statement 或 PreparedStatement 对象之后,就可以使用 execute()、executeQuery() 或 executeUpdate() 方法来执行 SQL 语句了。其中,execute() 用于执行任意一种 SQL 语句,executeQuery() 用于执行 SELECT 语句并返回结果集,executeUpdate() 用于执行 INSERT、UPDATE 和 DELETE 语句并返回受影响的记录数。
// 执行查询语句,返回结果集 ResultSet rs = stmt.executeQuery("SELECT * FROM user"); // 执行插入语句,返回受影响的记录数 int count = stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('admin', '123456')");
5. 处理结果集
执行 SQL 语句之后,需要将结果集通过 ResultSet 对象进行获取。ResultSet 对象的使用方法和 Statement 或 PreparedStatement 对象类似,例如可以使用 next() 方法将当前记录移动到下一条记录,使用 getXXX() 获取记录中某个列的值,例如:
while (rs.next()) { int id = rs.getInt("id"); String username = rs.getString("username"); String password = rs.getString("password"); }
6. 关闭资源
最后,在不再使用数据库连接、Statement、PreparedStatement 或 ResultSet 对象时,需要将它们及时关闭,释放对数据库系统的连接,以减少系统负担。例如:
rs.close(); stmt.close(); conn.close();
以上就是使用 JDBC 连接到数据库并执行 SQL 语句的基本步骤。需要注意的是,使用 JDBC 连接数据库需要加上异常处理,防止在执行过程中出现异常导致程序崩溃。
总结
到此这篇关于java连接数据库知识点总结以及操作应用的文章就介绍到这了,更多相关java连接数据库操作应用内容请搜索好代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持好代码网!