Spring复习_耦合(1)

本篇文章基于https://www.bilibili.com/video/av47952931?p=1这个视频总结理解写成

 

一般的jdbc的代码如下:

	// 1.注册驱动
		DriverManager.registerDriver(new com.mysql.jdbc.Driver());
		// 2.获取连接
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/eesy","root","1234");
//		这些都是可以放在配置文件中解耦合的
		// 3.获取操作数据库的预处理对象
		PreparedStatement pstm = conn.prepareStatement("select * from account");
		// 4.执行SQL,得到结果集
		ResultSet rs = pstm.executeQuery();
		// 5.遍历结果集
		while(rs.next()){
			System.out.println(rs.getString("name"));
		}
		
		rs.close();
		pstm.close();
		conn.close();

过程是:

拿到驱动,然后获取数据库的连接地址(包括用户名和密码),再用连接地址编写sql语句作为预处理对象,然后执行预处理对象获得结果

 

但是这个耦合太高了

          DriverManager.registerDriver(new com.mysql.jdbc.Driver());

可以将上面这行代码改成下面的
//        此时这里只是依赖于一个字符串而不是一个具体的对象,减少了一些耦合;
        Class.forName("com.mysql.jdbc.Driver");

 

这里引出,耦合是什么,又如何解决呢

 

程序的耦合:
              耦合是指程序间的依赖关系
                  包括:类之间的依赖;方法间的依赖
              解耦:降低程序间的依赖关系
      
              实际开发中应该做到:  编译期不依赖,运行期才依赖
              解耦的思路:
                  第一步:使用反射来创建对象,而避免使用new关键字
                  第二步:通过读取配置文件来获取要创建对象全限定类名

 

 

上面的代码改了之后,其实还是依赖于com.mysql.jdbc.Driver的,如果没有一样会报错,但截然不同的是,没改之前是直接报错,改了之后是编译时才报错。

这也是解耦合的一直方法,当然   Class.forName("com.mysql.jdbc.Driver");也不是尽善尽美,后面还会有更好的方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值