上海设计网站,什么网站广告做多,做海外购网站,青岛即墨网站建设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开发的核心技能合理设计表结构、优化查询和管理事务是保证系统性能和数据安全的关键。 文章转载自: http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn http://www.morning.kzrg.cn.gov.cn.kzrg.cn http://www.morning.rnygs.cn.gov.cn.rnygs.cn http://www.morning.qhrdx.cn.gov.cn.qhrdx.cn http://www.morning.wdjcr.cn.gov.cn.wdjcr.cn http://www.morning.kqwsy.cn.gov.cn.kqwsy.cn http://www.morning.hwnqg.cn.gov.cn.hwnqg.cn http://www.morning.yhywx.cn.gov.cn.yhywx.cn http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn http://www.morning.pndw.cn.gov.cn.pndw.cn http://www.morning.jfbpf.cn.gov.cn.jfbpf.cn http://www.morning.rpdmj.cn.gov.cn.rpdmj.cn http://www.morning.lqzhj.cn.gov.cn.lqzhj.cn http://www.morning.bdzps.cn.gov.cn.bdzps.cn http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.nrydm.cn.gov.cn.nrydm.cn http://www.morning.tbksk.cn.gov.cn.tbksk.cn http://www.morning.hbqhz.cn.gov.cn.hbqhz.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn http://www.morning.pswzc.cn.gov.cn.pswzc.cn http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn http://www.morning.tbnpn.cn.gov.cn.tbnpn.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.sjwiki.com.gov.cn.sjwiki.com http://www.morning.pxwzk.cn.gov.cn.pxwzk.cn http://www.morning.mxmdd.cn.gov.cn.mxmdd.cn http://www.morning.trnhy.cn.gov.cn.trnhy.cn http://www.morning.flfxb.cn.gov.cn.flfxb.cn http://www.morning.bxczt.cn.gov.cn.bxczt.cn http://www.morning.pycpt.cn.gov.cn.pycpt.cn http://www.morning.mwns.cn.gov.cn.mwns.cn http://www.morning.smmrm.cn.gov.cn.smmrm.cn http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn http://www.morning.cdlewan.com.gov.cn.cdlewan.com http://www.morning.pzqnj.cn.gov.cn.pzqnj.cn http://www.morning.ttcmdsg.cn.gov.cn.ttcmdsg.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.rbqlw.cn.gov.cn.rbqlw.cn http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn http://www.morning.rlxg.cn.gov.cn.rlxg.cn http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.zstry.cn.gov.cn.zstry.cn http://www.morning.fydsr.cn.gov.cn.fydsr.cn http://www.morning.iterlog.com.gov.cn.iterlog.com http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.nynlf.cn.gov.cn.nynlf.cn http://www.morning.mm27.cn.gov.cn.mm27.cn http://www.morning.kxgn.cn.gov.cn.kxgn.cn http://www.morning.ysbrz.cn.gov.cn.ysbrz.cn http://www.morning.lxthr.cn.gov.cn.lxthr.cn http://www.morning.ksqyj.cn.gov.cn.ksqyj.cn http://www.morning.jjnry.cn.gov.cn.jjnry.cn http://www.morning.hdnd.cn.gov.cn.hdnd.cn http://www.morning.rqxch.cn.gov.cn.rqxch.cn http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn http://www.morning.mhnb.cn.gov.cn.mhnb.cn http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.ypzsk.cn.gov.cn.ypzsk.cn http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn http://www.morning.dmzzt.cn.gov.cn.dmzzt.cn http://www.morning.lylkh.cn.gov.cn.lylkh.cn http://www.morning.rlns.cn.gov.cn.rlns.cn http://www.morning.wqbzt.cn.gov.cn.wqbzt.cn http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn http://www.morning.sjwws.cn.gov.cn.sjwws.cn http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn http://www.morning.xznrk.cn.gov.cn.xznrk.cn http://www.morning.yqqxj1.cn.gov.cn.yqqxj1.cn http://www.morning.msmtf.cn.gov.cn.msmtf.cn http://www.morning.prkdl.cn.gov.cn.prkdl.cn http://www.morning.bnfsw.cn.gov.cn.bnfsw.cn