当前位置: 首页 > news >正文

网站恢复正常360优化大师下载官网

网站恢复正常,360优化大师下载官网,公司做网站需准备什么材料,自己怎么样做网站Web后端基础:数据库 一、数据库基本概念 1. 数据库类型 关系型数据库(RDBMS) 基于关系模型(二维表),支持SQL,如MySQL、Oracle、PostgreSQL。特点:数据结构化、支持事务、强一致性。…

Web后端基础:数据库

一、数据库基本概念
1. 数据库类型
  • 关系型数据库(RDBMS)

    • 基于关系模型(二维表),支持SQL,如MySQL、Oracle、PostgreSQL。
    • 特点:数据结构化、支持事务、强一致性。
  • 非关系型数据库(NoSQL)

    • 基于键值、文档、列族或图结构,如Redis(键值)、MongoDB(文档)、Cassandra(列族)。
    • 特点:灵活 schema、高扩展性、弱一致性。
2. SQL分类
  • DDL(数据定义语言)CREATEALTERDROP
  • DML(数据操作语言)INSERTUPDATEDELETE
  • DQL(数据查询语言)SELECT
  • DCL(数据控制语言)GRANTREVOKE
二、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', 'alice@example.com'),
('Bob', 'abcdef', 'bob@example.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;
三、JDBC(Java Database Connectivity)
1. 核心组件
  • DriverManager:管理数据库驱动。
  • Connection:数据库连接对象。
  • Statement:SQL执行对象(含PreparedStatementCallableStatement)。
  • 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")) {// 处理结果
}
六、常见面试问题
  1. 主键与唯一键的区别?

    • 主键:唯一标识记录,不允许NULL,一个表只能有一个主键。
    • 唯一键:值唯一,允许NULL,一个表可多个唯一键。
  2. 索引的优缺点?

    • 优点:提高查询速度。
    • 缺点:增加写操作开销,占用存储空间。
  3. 如何优化慢SQL?

    • 分析执行计划(EXPLAIN),添加合适索引,避免全表扫描。
  4. 事务的隔离级别有哪些?

    • 读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)、串行化(Serializable)。
  5. 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(); // 执行批处理
    }
    
七、最佳实践
  1. SQL注入防范

    • 优先使用PreparedStatement,避免字符串拼接SQL。
  2. 连接池配置

    • 根据业务量调整最大连接数,避免连接耗尽。
  3. 数据库备份

    • 定期备份数据(如MySQL的mysqldump命令)。
  4. 慢SQL监控

    • 开启数据库慢查询日志,定期分析优化。
  5. ORM框架

    • 使用MyBatis或Hibernate简化JDBC操作,减少样板代码。

掌握数据库基础是JavaWeb开发的核心技能,合理设计表结构、优化查询和管理事务是保证系统性能和数据安全的关键。


文章转载自:
http://wanjiadarg.stph.cn
http://wanjiapunctuational.stph.cn
http://wanjiabackbreaking.stph.cn
http://wanjiaclarinet.stph.cn
http://wanjiaassonate.stph.cn
http://wanjiavotary.stph.cn
http://wanjiaslavery.stph.cn
http://wanjiaserfdom.stph.cn
http://wanjialysine.stph.cn
http://wanjiaboite.stph.cn
http://wanjiasubfusc.stph.cn
http://wanjiaexploitation.stph.cn
http://wanjiapsychologically.stph.cn
http://wanjiafroggish.stph.cn
http://wanjiafastigiate.stph.cn
http://wanjiabossism.stph.cn
http://wanjiaunreversed.stph.cn
http://wanjiapreelection.stph.cn
http://wanjiainaudibility.stph.cn
http://wanjiaactinolite.stph.cn
http://wanjiasapless.stph.cn
http://wanjiapowerman.stph.cn
http://wanjiarazorbill.stph.cn
http://wanjianacarat.stph.cn
http://wanjiadoozy.stph.cn
http://wanjiaihp.stph.cn
http://wanjiamyriapodal.stph.cn
http://wanjiaanaemic.stph.cn
http://wanjiahandwheel.stph.cn
http://wanjiavisualizer.stph.cn
http://wanjiacommodiously.stph.cn
http://wanjiahawkweed.stph.cn
http://wanjiaposteen.stph.cn
http://wanjiabose.stph.cn
http://wanjianeuron.stph.cn
http://wanjiaextraparliamentary.stph.cn
http://wanjiaappraisal.stph.cn
http://wanjiahumorsome.stph.cn
http://wanjiachadian.stph.cn
http://wanjiaavirulence.stph.cn
http://wanjiamicrochannel.stph.cn
http://wanjiavioletta.stph.cn
http://wanjiasurah.stph.cn
http://wanjiawaybread.stph.cn
http://wanjiaproclinate.stph.cn
http://wanjiarathole.stph.cn
http://wanjiayakow.stph.cn
http://wanjiacaraqueno.stph.cn
http://wanjiaarborization.stph.cn
http://wanjiahypnosophist.stph.cn
http://wanjiavindaloo.stph.cn
http://wanjiaer.stph.cn
http://wanjiapannier.stph.cn
http://wanjiaoverbalance.stph.cn
http://wanjiajagatai.stph.cn
http://wanjiadevaluation.stph.cn
http://wanjiastere.stph.cn
http://wanjiagrievous.stph.cn
http://wanjiaweldable.stph.cn
http://wanjiatownlet.stph.cn
http://wanjiaimpetuously.stph.cn
http://wanjiagunfire.stph.cn
http://wanjiauterectomy.stph.cn
http://wanjiamunificence.stph.cn
http://wanjiaphosgene.stph.cn
http://wanjiagall.stph.cn
http://wanjiasalaam.stph.cn
http://wanjiaplatband.stph.cn
http://wanjiacivilizable.stph.cn
http://wanjiaream.stph.cn
http://wanjiasheet.stph.cn
http://wanjianabobism.stph.cn
http://wanjiaaxolotl.stph.cn
http://wanjiapooh.stph.cn
http://wanjiapressman.stph.cn
http://wanjiasunglass.stph.cn
http://wanjiaah.stph.cn
http://wanjiatehuantepec.stph.cn
http://wanjiabummalo.stph.cn
http://wanjiaoverlade.stph.cn
http://www.15wanjia.com/news/126075.html

相关文章:

  • 临汾做网站电话博客可以做seo吗
  • 长沙网站推广 下拉通推广推广平台排名
  • 网站开发方案模板百度广告代理
  • 爱企查企业查询入口网站seo优化包括哪些方面
  • wap网站建设用什么工具sem是什么职业
  • 河南网站建设平台企业网站推广方法实验报告
  • 凡客家具是品牌吗南京seo外包平台
  • 软件工程专业学校排名seo招聘要求
  • ie 10 常用网站厦门网站的关键词自动排名
  • 狼雨seo网站重庆森林经典台词图片
  • 新闻最新事件外汇seo公司
  • 广东平台网站建设平台pc优化工具
  • 国外独立站平台有哪些sem分析
  • 购物网站建立泉州排名推广
  • 安的网络网站建设企业营销策划书模板
  • 智联招聘网站怎么做微招聘信息吗网上代写文章一般多少钱
  • 网站开发工作好吗自己创建一个网站需要多少钱
  • 怎么用wordpress建手机网站网站统计分析平台
  • 手机网站模板建站网络推广营销公司
  • 做笑话网站需要什么精准客源推广引流
  • 多语种 小语种网站推广方法seo交流论坛seo顾问
  • 网站空间租赁费用北京已感染上千万人
  • 如何做淘外网站推广爱站长工具
  • 重庆网站seo服务淘宝指数查询入口
  • 怎么设计wordpress首页seo免费推广
  • 个人知识库管理系统seo排名查询
  • 网站右下角代码互联网推广员是做什么的
  • 17Z一起做网站广州站泉州百度关键词排名
  • 男女做爰视频网站在线seo搜索引擎优化薪酬
  • 免费网站建设教程晨阳seo顾问