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

商城网站发展计划广告资源对接平台

商城网站发展计划,广告资源对接平台,网络游戏排行榜2022,家具网站建设的前景分析一、引言 在 Java 开发中,与数据库的交互是一项常见且重要的任务。JDBC(Java Database Connectivity)作为 Java 语言访问数据库的标准 API,为我们提供了统一的接口来操作各种数据库。然而,每次进行数据库操作都编写大…

一、引言

在 Java 开发中,与数据库的交互是一项常见且重要的任务。JDBC(Java Database Connectivity)作为 Java 语言访问数据库的标准 API,为我们提供了统一的接口来操作各种数据库。然而,每次进行数据库操作都编写大量重复的代码,如加载驱动、获取连接、释放资源等,不仅繁琐,还容易出错。因此,我们通常会封装一个 JDBC 工具类来简化这些操作。本文将详细介绍我所编写的三个不同版本的 JDBC 工具类,分别是基础版(1.0)、优化版(2.0)和连接池版(3.0)。

二、基础版(1.0):JDBCUtilsO

2.1 代码实现

package com.qcby;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class JDBCUtilsO {/*** 加载驱动的方法 static*/public static void loadDriver() {try{Class.forName("com.mysql.cj.jdbc.Driver");}catch(Exception e){e.printStackTrace();}}//获取链接public static Connection getconnect() {loadDriver();Connection conn = null;try{conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbcdemo", "root", "123456");} catch (Exception e) {e.printStackTrace();}return conn;}//释放资源public static void close(Connection conn, Statement stmt, ResultSet rs) {if(rs != null) {try{rs.close();} catch (Exception e) {e.printStackTrace();}}if(stmt != null) {try{stmt.close();} catch (Exception e) {e.printStackTrace();}}if(conn != null) {try{conn.close();}catch (Exception e) {e.printStackTrace();}}}
}

2.2 代码分析

  • 加载驱动:通过Class.forName("com.mysql.cj.jdbc.Driver")加载 MySQL 的 JDBC 驱动。
  • 获取连接:使用DriverManager.getConnection方法获取数据库连接,需要硬编码数据库的 URL、用户名和密码。
  • 释放资源:依次关闭ResultSetStatementConnection对象,确保资源被正确释放。

2.3 优缺点

  • 优点:代码简单易懂,适合初学者理解 JDBC 的基本操作流程。
  • 缺点
    • 数据库连接信息硬编码在代码中,不利于维护和修改。
    • 每次获取连接都需要重新加载驱动,效率较低。

三、优化版(2.0):JdbcUtils

3.1 代码实现

package com.qcby;import java.io.InputStream;
import java.sql.*;
import java.util.Properties;public class JdbcUtils {private static final String driverclass;private static final String url;private static final String username;private static final String password;static {//加载属性文件Properties prop = new Properties();InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");if (in == null) {System.out.println("找不到配置文件");}try{prop.load(in);} catch (Exception e) {e.printStackTrace();}//给常量赋值driverclass = prop.getProperty("driverclass");url = prop.getProperty("url");username = prop.getProperty("username");password = prop.getProperty("password");}/***     加载驱动*/public static void loadDriver() throws ClassNotFoundException, SQLException {try{//加载驱动类Class.forName(driverclass);}catch (ClassNotFoundException e){e.printStackTrace();}}/*** 获取链接 返回链接对象* @return*/public static Connection getConnection() {//加载驱动//获取到链接对象,返回连接对象;Connection conn = null;try {conn = DriverManager.getConnection(url, username, password);} catch (SQLException e) {e.printStackTrace();}return conn;}public static void close(Connection conn, Statement stmt, ResultSet rs) {if (rs != null) {try {rs.close();} catch (Exception e) {e.printStackTrace();}}if (stmt != null) {try{stmt.close();}catch (Exception e){e.printStackTrace();}}if (conn != null) {try{conn.close();} catch (Exception e) {e.printStackTrace();}}}
}

 

3.2 代码分析

  • 配置文件加载:通过Properties类加载jdbc.properties配置文件,将数据库连接信息存储在配置文件中,避免了硬编码。
  • 静态代码块:在类加载时执行静态代码块,确保驱动只加载一次。
  • 获取连接:从配置文件中读取数据库连接信息,使用DriverManager.getConnection方法获取连接。

3.3 优缺点

  • 优点
    • 数据库连接信息存储在配置文件中,便于维护和修改。
    • 驱动只加载一次,提高了效率。
  • 缺点:每次获取连接都需要创建新的连接对象,频繁创建和销毁连接会消耗大量的系统资源。

 

四、连接池版(3.0):JDBCUtilsC

4.1 代码实现

package com.qcby;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;public class JDBCUtilsC {//连接池对象private static DataSource DATA_SOURCE;static {//加载属性文件Properties prop = new Properties();InputStream input = JDBCUtilsC.class.getClassLoader().getResourceAsStream("jdbc.properties");try{//加载属性文件prop.load(input);//创建连接池对象DATA_SOURCE = DruidDataSourceFactory.createDataSource(prop);}catch(Exception e){e.printStackTrace();}}/*** 从连接池中获取链接,返回*/public static Connection getConnection() {Connection conn = null;try{conn = DATA_SOURCE.getConnection();} catch (Exception e) {e.printStackTrace();}return conn;}public static void close(Connection conn, Statement stmt, ResultSet rs){if(rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if(stmt != null){try {stmt.close();} catch (SQLException e) {e.printStackTrace();}}if(conn != null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}

 

4.2 代码分析

  • 连接池的使用:使用阿里巴巴的 Druid 连接池,通过DruidDataSourceFactory.createDataSource方法创建连接池对象。
  • 获取连接:从连接池中获取连接,而不是每次都创建新的连接对象。
  • 释放资源:关闭连接时,实际上是将连接归还给连接池,而不是真正的关闭。

4.3 优缺点

  • 优点
    • 连接池可以复用连接对象,减少了频繁创建和销毁连接的开销,提高了系统的性能。
    • 连接池可以对连接进行管理,如连接的超时、最大连接数等,提高了系统的稳定性。
  • 缺点:引入了第三方依赖,增加了项目的复杂度。

五、总结

通过对三个不同版本的 JDBC 工具类的介绍,我们可以看到,随着版本的升级,工具类的性能和可维护性都得到了显著的提升。基础版适合初学者了解 JDBC 的基本操作,优化版通过配置文件和静态代码块提高了代码的可维护性和效率,而连接池版则通过连接池的使用进一步提高了系统的性能和稳定性。在实际开发中,我们应该根据项目的需求选择合适的版本。

希望本文对你理解 JDBC 工具类的优化过程有所帮助。如果你有任何问题或建议,欢迎在评论区留言。

以上博客围绕 JDBC 工具类的三个版本展开,从基础版逐步优化到连接池版,详细介绍了每个版本的代码实现、代码分析和优缺点,希望能满足你的需求。你可以根据实际情况进行调整和修改。

http://www.dtcms.com/wzjs/412122.html

相关文章:

  • 免费域名解析网站建设百度站长平台工具
  • 微博wordpress插件seo查询seo优化
  • 学做衣服网站小说搜索风云榜
  • 商务网站安全方案设计市场营销互联网营销
  • 现在流行什么做网站长沙推广公司
  • 制作网站作品云南seo网站关键词优化软件
  • 酒店做网站热点事件
  • 做网站的必要网络推广的网站有哪些
  • 淄博市建设委员会网站aso推广公司
  • 零基础学做网站要多久广州谷歌seo公司
  • 深圳龙岗疫情最新消息风险等级湘潭seo培训
  • 英文版网站建设方案搜索百度
  • 天河定制型网站建设北京网站推广
  • 企业网站建设哪里做网站好各大免费推广网站
  • 个人音乐网站模板网络seo软件
  • 网站建设项目合同手机怎么创建网站
  • 手机网站会员中心模板热搜在哪里可以看
  • 网上做网站的公司都是怎么做的引擎优化seo是什么
  • 查做外贸客户的网站软件推广赚佣金渠道
  • 番禺网站建设找哪家互联网营销师培训教材
  • 展馆展示设计公司排名优化推广网站怎么做最好
  • 114啦建站程序用手机制作自己的网站
  • 洛阳做网站找哪家好东莞营销网站建设直播
  • 顺德做网站网络营销成功的案例分析
  • 南宁比优建站俄罗斯搜索引擎yandex
  • 写作网站设定百度扫一扫识别图片在线
  • 网店怎么运营吉林seo网络推广
  • 网站描文本国外独立网站如何建站
  • 昆山玉山网站建设河北优化seo
  • 加网络网站建设工作室推广赚钱app哪个靠谱