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

整站优化哪家专业天府健康通二维码图片高清下载

整站优化哪家专业,天府健康通二维码图片高清下载,wordpress带搜索主题,产品设计方案模板范文文章目录 一、JDBC 1.0:手动管理的起点1.1 核心特点1.2 代码示例:1.3 痛点分析 二、JDBC 2.0:配置化的升级2.1 核心改进2.2 代码示例2.3 优势与不足 三、JDBC 3.0:连接池的革命3.1 核心改进3.2 代码示例3.3 核心优势 四、版本对比…

文章目录

  • 一、JDBC 1.0:手动管理的起点
    • 1.1 核心特点
    • 1.2 代码示例:
    • 1.3 痛点分析
  • 二、JDBC 2.0:配置化的升级
    • 2.1 核心改进
    • 2.2 代码示例
    • 2.3 优势与不足
  • 三、JDBC 3.0:连接池的革命
    • 3.1 核心改进
    • 3.2 代码示例
    • 3.3 核心优势
  • 四、版本对比与演进意义
  • 五、实战:从1.0到3.0的查询示例
    • 5.1 JDBC 1.0版本
    • 5.2 JDBC 3.0版本(优化后)
  • 六、总结


一、JDBC 1.0:手动管理的起点

1.1 核心特点

手动加载驱动:通过Class.forName()或DriverManager.registerDriver()显式注册驱动。

硬编码连接信息:数据库URL、用户名、密码直接写在代码中。

资源手动关闭:需逐一手动关闭Connection、Statement、ResultSet。

1.2 代码示例:

public class JdbcUtils {// 硬编码数据库信息public static Connection getConnection() {Connection conn = null;try {DriverManager.registerDriver(new Driver()); // 加载驱动conn = DriverManager.getConnection("jdbc:mysql:///spring_db", "root", "1234");} catch (SQLException e) {e.printStackTrace();}return conn;}// 手动关闭资源public static void close(Connection conn, Statement stmt, ResultSet rs) {try { rs.close(); } catch (Exception e) { e.printStackTrace(); }try { stmt.close(); } catch (Exception e) { e.printStackTrace(); }try { conn.close(); } catch (Exception e) { e.printStackTrace(); }}
}

1.3 痛点分析

  • 代码冗余:每次操作需重复编写连接和关闭逻辑。
  • 维护困难:修改数据库配置需改动源码。
  • 性能低下:频繁创建和销毁连接消耗资源。

二、JDBC 2.0:配置化的升级

2.1 核心改进

  • 配置文件分离:使用db.properties存储数据库配置。
  • 动态加载配置:通过Properties类读取配置文件,实现解耦。
  • 统一资源管理:封装工具类减少重复代码。

2.2 代码示例

# db.properties
driverclass=com.mysql.jdbc.Driver
url=jdbc:mysql:///spring_db
username=root
password=1234
public class JdbcUtils2 {private static String driverclass;private static String url;private static String username;private static String password;static {// 加载配置文件Properties pro = new Properties();try (InputStream in = JdbcUtils2.class.getResourceAsStream("/db.properties")) {pro.load(in);driverclass = pro.getProperty("driverclass");url = pro.getProperty("url");username = pro.getProperty("username");password = pro.getProperty("password");} catch (IOException e) {e.printStackTrace();}}// 动态加载驱动并获取连接public static Connection getConnection() {Connection conn = null;try {Class.forName(driverclass); // 反射加载驱动conn = DriverManager.getConnection(url, username, password);} catch (Exception e) {e.printStackTrace();}return conn;}
}

2.3 优势与不足

  • 优势:

    • 配置与代码分离,便于维护。
    • 减少硬编码,提升灵活性。
  • 不足:

    • 仍依赖DriverManager,无法解决频繁创建连接的性能问题。

三、JDBC 3.0:连接池的革命

3.1 核心改进

  • 连接池管理:使用Druid等连接池,预先创建连接,随用随取。
  • 性能飞跃:连接复用减少创建开销,支持并发和高负载。
  • 自动化资源管理:通过DataSource接口隐藏底层细节。

3.2 代码示例

# druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///spring_db
username=root
password=1234
initialSize=5
maxActive=20
maxWait=3000
public class JdbcUtils3 {private static DataSource dataSource;static {try {// 加载配置文件并初始化连接池Properties props = new Properties();props.load(JdbcUtils3.class.getResourceAsStream("/druid.properties"));dataSource = DruidDataSourceFactory.createDataSource(props);} catch (Exception e) {throw new RuntimeException("连接池初始化失败", e);}}// 从连接池获取连接public static Connection getConnection() throws SQLException {return dataSource.getConnection();}// 归还连接(实际是关闭资源)public static void close(Connection conn, Statement stmt, ResultSet rs) {try { rs.close(); } catch (Exception ignored) {}try { stmt.close(); } catch (Exception ignored) {}try { conn.close(); } catch (Exception ignored) {}}
}

3.3 核心优势

  • 性能提升:连接复用减少70%的创建时间。
  • 资源可控:限制最大连接数,防止数据库过载。
  • 功能扩展:支持监控、SQL日志等高级功能。

四、版本对比与演进意义

特性JDBC 1.0JDBC 2.0JDBC 3.0
配置管理硬编码配置文件配置文件 + 连接池参数
连接获取手动创建动态加载连接池自动分配
性能低(频繁创建连接)高(连接复用)
维护成本高(修改需重新编译)低(修改配置文件)低(配置 + 监控)
适用场景简单Demo中小型项目高并发、生产环境

五、实战:从1.0到3.0的查询示例

5.1 JDBC 1.0版本

public class JdbcDemo1 {public static void main(String[] args) {Connection conn = JdbcUtils.getConnection();Statement stmt = null;ResultSet rs = null;try {stmt = conn.createStatement();rs = stmt.executeQuery("SELECT * FROM account");while (rs.next()) {System.out.println(rs.getString("name"));}} catch (SQLException e) {e.printStackTrace();} finally {JdbcUtils.close(conn, stmt, rs);}}
}

5.2 JDBC 3.0版本(优化后)

public class JdbcDemo3 {public static void main(String[] args) {try (Connection conn = JdbcUtils3.getConnection();Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM account")) {while (rs.next()) {System.out.println(rs.getString("name"));}} catch (SQLException e) {e.printStackTrace();}}
}

六、总结

  • JDBC 1.0:适合快速验证功能,但缺乏扩展性和维护性。
  • JDBC 2.0:通过配置文件解耦,适合中小项目。
  • JDBC 3.0:连接池大幅提升性能,是高并发场景的标配。

演进启示:技术的升级始终围绕解耦、性能和易用性展开。掌握每个版本的核心思想,才能在实际项目中灵活选择最优方案。

http://www.dtcms.com/a/424015.html

相关文章:

  • 静态网站是什么怎么做网站登录站
  • AI大模型是怎么工作的?从石头分类说起
  • 苹果群控系统如何做到游戏数据精准采集
  • 分布式任务调度系统中的线程池使用详解
  • pc开奖网站开发濮阳建网站
  • JWT token 简要介绍以及使用场景和案例
  • 网站在线留言怎么做行政法规
  • 语义网络(Semantic Net)对人工智能中自然语言处理的深层语义分析的影响与启示
  • 南通网站建设优化网站建设服务器配置
  • “AI+“行动下的可控智能体:GPT-5 与 GPT-OSS 高性能推理 安全可控 产业落地 GPT-OSS 一可控AI目前全球唯一开源解决方案
  • 零基础网站建设视频想做一个自己的网站怎么做
  • UWB实操:使用litepoint测试FCC 1ms PSD功率谱密度
  • 企业网站自己可以做吗工作室做什么项目好
  • 商丘做网站的电话怎样做自己公司的网站
  • 复旦华为提出首个空间理解和生成统一框架UniUGG,支持参考图像和任意视图变换的 3D 场景生成和空间视觉问答 (VQA) 任务。
  • InnoDB与MySQL复制的关键注意事项
  • 【python】五个容器
  • 网站后台信息发布这样做利用html做博客网站
  • SSM数字图书馆on33n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 网站开发项目团队人员易车网汽车之家
  • 个人建站公司好看个人网页模板
  • 高端网站建设 源码wordpress去log
  • 杭州网站建设哪里好牡丹江有做网站的人吗
  • PHP转JAVA入门知识解析 (指南一)
  • Django之APPEND_SLASH配置爬坑
  • 连连建设跨境电商网站在线名片设计
  • dw和vs做网站跨境电商怎么注册开店
  • Meep 和 MPB 软件的关系:姊妹软件
  • 动易网站风格免费下载广州天河区必去的地方
  • Vue3 全局 API 转移详解