数据库
介绍
数据库是一个有组织的数据集合,它按照数据结构来存储和管理数据。数据库管理系统(DBMS)负责对数据库进行统一的管理和控制,包括数据的存储、检索、更新和删除等操作。
类型
关系型数据库(RDBMS)
关系型数据库通过表格的形式来组织数据,每个表格包含一系列行(记录)和列(字段)。它们之间的数据通过关系进行连接,最常见的关系型数据库系统包括MySQL、Oracle、SQL Server和PostgreSQL等。
非关系型数据库(NoSQL)
非关系型数据库不依赖于传统的表格关系模型,它们更适合处理非结构化或半结构化数据。NoSQL数据库可以进一步分为几种类型,包括文档型数据库(如MongoDB)、键值存储(如Redis)、列族存储(如Cassandra)和图形数据库(如Neo4j)。
MySQL
基本操作
//创建数据库
CREATE DATABASE database_name;
//删除数据库
DROP DATABASE database_name;
//使用数据库
USE DATABASE database_name;
数据库的建立->
建立表格,并进行基本操作处理->
IDEA链接数据库
事务
数据库中的事务(transaction)是访问并可能操作各种数据项的一个数据库操作序列。这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。
事务的四大特性简称为ACID特性,包括:
原子性(Atomicity):事务是一个原子操作单元,其包含的各操作要么都做,要么都不做。如果事务在执行过程中出错,则全部回滚到事务开始前的状态,就像这个事务从未执行过一样。
一致性(Consistency):在事务开始之前和事务结束之后,数据库的完整性没有被破坏。这要求写入的数据必须完全符合所有的预设约束、触发器、级联回滚等。
隔离性(Isolation):数据库允许多个并发事务同时对其数据进行读写和修改能力,隔离性可以防止多个事务并发执行由于交叉执行而导致数据不一致。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(Durability):也称永久性,指一旦事务提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。这通常是通过将数据写入到持久化存储(如硬盘)来实现的。
这些特性保证了数据库在事务执行过程中的数据完整性和一致性,是数据库设计和实现中至关重要的部分,特别是在多用户、高并发的环境中。
JDBC
JDBC(Java Database Connectivity)是Java语言中用来执行SQL语句的API,它提供了Java应用与数据库之间的连接和操作机制。
基本操作
JDBC的基本使用步骤包括:
1.导入jar包,加载驱动:使用Class.forName()方法加载数据库驱动。
2. 建立连接:使用DriverManager.getConnection()方法建立与数据库的连接。
3. 创建执行SQL语句的对象:根据要执行的SQL语句的类型(如查询、更新等),使用连接对象创建相应的Statement对象或PreparedStatement对象。
4.执行SQL语句:使用Statement或PreparedStatement对象的execute()、executeQuery()或executeUpdate()方法执行SQL语句。
5. 处理结果集:如果执行的是查询语句,则处理返回的结果集;如果执行的是更新语句,则处理更新的记录数。
6. 关闭资源:使用完数据库连接后,需要关闭ResultSet、Statement和Connection对象,以释放资源。
导入jar包
import java.sql.*;
public class Main {
public static void main(String[] args) {
String diver="com.mysql.cj.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/ddz";
String user="root";
String password="*******";
String sql = "SELECT * FROM employees";
try {
// 加载数据库驱动类
Class.forName(diver);
// 通过DriverManager.getConnection方法建立与数据库的连接
Connection con= DriverManager.getConnection(url,user,password);
// 创建Statement对象,用于执行SQL语句
Statement stat= con.createStatement();
// 执行SQL查询,并将结果存储在ResultSet对象中
ResultSet res=stat.executeQuery(sql);
while(res.next()){
String id = res.getString("id");
String name = res.getString("name");
System.out.println(STR."ID: \{id}, Name: \{name}");
}
System.out.println("数据库获取成功!");
res.close();
stat.close();
con.close();
}catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("MySQL JDBC Driver not found.");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Connection Failed! Check output console");
}
}
}
运行结果: