第十章 框架升级之单例模式及统一异常处理(2023版本IDEA)


  通过前面的课程学习,大家对Spring MVC 框架的整体结构和基本请求处理流程已经有了基本的了解,并可以使用Spring MVC 框架做一些简单的开发。(如果没有了解可以去我主页看看 第一至九章的内容来学习)本章将继续学习 Spring MVC 框架的基础知识,包括静态资源的访问、Servlet API 入参等,最终搭建一个 Spring MVC+Spring+JDBC 的框架,帮助大家加深对Spring MVC框架的理解。

10.1 单例模式

  设计模式是一套被反复使用、多数人知晓、经过分类编目的代码设计经验的总结。使用设计模式是为了保证代码的可靠性,提高工作效率,让代码更容易被他人理解。java共有23种成熟的设计模式,今天要学习的单例模式就是其中一种。

10.1.1 使用单例模式改造数据库连接功能

  单例模式是一种比较基础的设计模式,应用非常广泛,如应用程序的日志应用,Web应用的配置文件读取,数据库连接池的设计,网站的计数器等,并且SpringMVC框架的Controller默认也是单例的。那么到底什么是单例模式?单例模式的优点又有哪些?

1. 加载配置数据

数据库配置信息存储于database.properties配置文件中,具体配置信息如下所示。

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.:3306/cvs_db?useUnicode=true&characterEncoding=utf8
user=root
password=123456

2. 获取数据库的连接对象

使用Connection getConnection()方法获取数据库连接,返回Connection实例。

3. 处理查询操作

ResultSet execute(Connection,PreparedStatement,ResultSet,String,Object[])方法:负责根据传入的参数完成数据的查询操作,返回结果集ResultSet。

4. 处理增、删、改操作

使用int execute(Connection,PreparedStatement,ResultSet,String,Object[])方法根据传入的参数完成数据的更新(增、删、改)操作,返回影响的行数。

5. 关闭数据库连接

使用boolean closeResource(Connection,PreparedStatement,ResultSet)方法,负责根据传入的参数进行相应资源的关闭操作,返回boolean值。

下面是一个使用单例模式改造数据库连接功能的简单示例,这里假设我们使用Java语言和JDBC来连接数据库:

  1. 定义单例类 DatabaseConnection
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.SQLException;  
  
public class DatabaseConnection {
     
    // 私有静态变量,存储唯一实例  
    private static DatabaseConnection instance = null;  
      
    // 私有构造函数,防止外部通过new创建实例  
    private DatabaseConnection() {
   }  
      
    // 静态方法,返回唯一实例  
    public static DatabaseConnection getInstance() {
     
        if (instance == null) {
     
            instance = new DatabaseConnection();  
            // 这里可以初始化数据库连接,但为了演示清晰,我们稍后在需要时调用connect方法  
        }  
        return instance;  
    }  
      
    // 数据库连接对象  
    private Connection connection = null;  
      
    // 连接数据库的方法  
    public Connection connect(String url, String user, String password) throws SQLException {
     
        if (connection == null || connection.isClosed()) {
     
            connection = DriverManager.getConnection(url, user, password);  
        }  
        return connection;  
    }  
      
    // 关闭数据库连接的方法  
    public void close() throws SQLException {
     
        if (connection != null && !connection.isClosed(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值