深圳网站设计精选刻,做刷单网站违法吗,深圳多彩科技集团有限公司,百度收录较好的网站Web后端基础#xff1a;数据库
一、数据库基本概念
1. 数据库类型 关系型数据库#xff08;RDBMS#xff09; 基于关系模型#xff08;二维表#xff09;#xff0c;支持SQL#xff0c;如MySQL、Oracle、PostgreSQL。特点#xff1a;数据结构化、支持事务、强一致性。…Web后端基础数据库
一、数据库基本概念
1. 数据库类型 关系型数据库RDBMS 基于关系模型二维表支持SQL如MySQL、Oracle、PostgreSQL。特点数据结构化、支持事务、强一致性。 非关系型数据库NoSQL 基于键值、文档、列族或图结构如Redis键值、MongoDB文档、Cassandra列族。特点灵活 schema、高扩展性、弱一致性。
2. SQL分类
DDL数据定义语言CREATE、ALTER、DROP。DML数据操作语言INSERT、UPDATE、DELETE。DQL数据查询语言SELECT。DCL数据控制语言GRANT、REVOKE。
二、MySQL基础操作
1. 创建数据库与表
-- 创建数据库
CREATE DATABASE IF NOT EXISTS mydb CHARACTER SET utf8mb4;-- 使用数据库
USE mydb;-- 创建表
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL UNIQUE,password VARCHAR(100) NOT NULL,email VARCHAR(100) UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);2. 增删改查CRUD
-- 插入数据
INSERT INTO users (username, password, email) VALUES
(Alice, 123456, aliceexample.com),
(Bob, abcdef, bobexample.com);-- 查询数据
SELECT * FROM users WHERE username Alice;-- 更新数据
UPDATE users SET password newpass WHERE id 1;-- 删除数据
DELETE FROM users WHERE id 2;3. 表关联查询
-- 创建订单表
CREATE TABLE orders (order_id INT PRIMARY KEY AUTO_INCREMENT,user_id INT,amount DECIMAL(10, 2),FOREIGN KEY (user_id) REFERENCES users(id)
);-- 多表查询
SELECT u.username, o.amount
FROM users u
JOIN orders o ON u.id o.user_id;三、JDBCJava Database Connectivity
1. 核心组件
DriverManager管理数据库驱动。Connection数据库连接对象。StatementSQL执行对象含PreparedStatement、CallableStatement。ResultSet结果集对象。
2. JDBC操作步骤
import java.sql.*;public class JdbcExample {public static void main(String[] args) {String url jdbc:mysql://localhost:3306/mydb;String username root;String password 123456;try (Connection conn DriverManager.getConnection(url, username, password);Statement stmt conn.createStatement();ResultSet rs stmt.executeQuery(SELECT * FROM users)) {while (rs.next()) {System.out.println(rs.getInt(id) , rs.getString(username));}} catch (SQLException e) {e.printStackTrace();}}
}3. PreparedStatement 防止SQL注入
String sql SELECT * FROM users WHERE username ? AND password ?;
try (Connection conn DriverManager.getConnection(url, username, password);PreparedStatement pstmt conn.prepareStatement(sql)) {pstmt.setString(1, Alice);pstmt.setString(2, 123456);try (ResultSet rs pstmt.executeQuery()) {if (rs.next()) {System.out.println(登录成功);}}
}四、数据库设计原则
1. 三范式
第一范式1NF字段原子性不可再分。第二范式2NF消除部分依赖非主键字段完全依赖主键。第三范式3NF消除传递依赖非主键字段不依赖其他非主键字段。
2. 索引优化
适用场景高频查询的字段如WHERE条件、JOIN关联字段。避免滥用索引会降低写操作性能占用额外存储空间。
3. 事务管理
ACID特性原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。示例try (Connection conn DriverManager.getConnection(url, username, password)) {conn.setAutoCommit(false); // 开启事务try (Statement stmt conn.createStatement()) {stmt.executeUpdate(UPDATE accounts SET balance balance - 100 WHERE id 1);stmt.executeUpdate(UPDATE accounts SET balance balance 100 WHERE id 2);conn.commit(); // 提交事务} catch (SQLException e) {conn.rollback(); // 回滚事务throw e;}
}五、数据库连接池
1. 常用连接池
HikariCP高性能连接池Spring Boot默认选择。Druid阿里巴巴开源支持监控和SQL防火墙。C3P0老牌连接池配置灵活。
2. HikariCP配置示例
HikariConfig config new HikariConfig();
config.setJdbcUrl(jdbc:mysql://localhost:3306/mydb);
config.setUsername(root);
config.setPassword(123456);
config.setMaximumPoolSize(10); // 最大连接数try (HikariDataSource ds new HikariDataSource(config);Connection conn ds.getConnection();Statement stmt conn.createStatement();ResultSet rs stmt.executeQuery(SELECT * FROM users)) {// 处理结果
}六、常见面试问题 主键与唯一键的区别 主键唯一标识记录不允许NULL一个表只能有一个主键。唯一键值唯一允许NULL一个表可多个唯一键。 索引的优缺点 优点提高查询速度。缺点增加写操作开销占用存储空间。 如何优化慢SQL 分析执行计划EXPLAIN添加合适索引避免全表扫描。 事务的隔离级别有哪些 读未提交Read Uncommitted、读已提交Read Committed、可重复读Repeatable Read、串行化Serializable。 JDBC批处理如何实现 try (Connection conn DriverManager.getConnection(url, username, password);PreparedStatement pstmt conn.prepareStatement(INSERT INTO users (username) VALUES (?))) {for (String name : names) {pstmt.setString(1, name);pstmt.addBatch(); // 添加到批处理}pstmt.executeBatch(); // 执行批处理
}七、最佳实践 SQL注入防范 优先使用PreparedStatement避免字符串拼接SQL。 连接池配置 根据业务量调整最大连接数避免连接耗尽。 数据库备份 定期备份数据如MySQL的mysqldump命令。 慢SQL监控 开启数据库慢查询日志定期分析优化。 ORM框架 使用MyBatis或Hibernate简化JDBC操作减少样板代码。
掌握数据库基础是JavaWeb开发的核心技能合理设计表结构、优化查询和管理事务是保证系统性能和数据安全的关键。