不过随着业务的扩展,你就会发现jdbc建立一个连接居然要几百毫秒,而执行一个普通的SQL仅仅需要几毫秒。

这么重量级的资源建立了就释放了不合适,得找个容器存起来,谁要就来取,不用了就还给容器,毕竟容器里的借取比建立一个连接要快的多。

这样的容器叫做数据连接池。

小日子继续过,业务也越做越大,慢慢地你就发现了:这jdbc的接口也太粗暴了,有一大半的代码在往bean里塞数据,下标还是从1开始的。

这时候你就会想,要不独立一层,专门处理把jdbc读取出来的数据塞进bean里吧。

这一层就是DAO,data access object,比较出名的框架就是myBatis。

公司越做越大,你也在不断尝试新鲜的技术,并且在其中的一个项目上实践了敏捷,积极拥抱变化。

不久后你就发现了,一次迭代中多出的一个字段,你的SQL模板就去同步,然后你望着项目里指数级增长的SQL模板,心里一阵阵发慌:要是有个框架,只需要管理bean之间的关系,就可以生成常用的CRUD语句。这就是ORM框架,比较出名的就是Hibernate,其中的大部分接口被JSR吸纳,成为JPA标准。

渐渐地,使用公司产品的客户越来越多,但是一部分客户希望系统通知通过短信来推送,另一部分希望通过邮件。除此之外,大家对剩下的功能没有任何分歧。

虽然在编写代码时,你已经在这里对通知的推送做了接口隔离,但是因为这个接口的引用指向的一个new关键字创建对象,所以程序的行为在编译时就已经确定了。

为了响应另一部分客户的需求,你不得不在打包前,去修改代码。

这时候你就在想:如果程序的行为可以通过一些配置在运行时才确定,或许可以改善现在的处境。

这种把对象的实例化交给容器(运行中的程序)而不是另一个对象(硬编码的代码)的设计思想叫控制反转(IOC),这就是Spring所做的事情。

JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?的更多相关文章

  1. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  2. Java中通过JDBC远程连接Oracle数据库

    通过jdbc连接数据库,拢共分三步: 第一步:下载一个JDBC的驱动,然后把jar包扔到项目里并add to build path: 第二步:去本地oracle文件夹下找到“TNSNAMES.ORA” ...

  3. Java程序操作数据库SQLserver详解

    数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...

  4. Java使用JDBC连接SQL Server数据库|实现学生成绩信息系统

    Java实验四 JDBC 使用SQL Server数据库或者MySQL数据库各自的客户端工具,完成如下任务: (1)创建数据库students: (2)在数据students中创建表scores,包括 ...

  5. Java Servlet(七):JavaWeb MVC 操作(jdk7+tomcat7+eclipse)

    之前一段时间一直忙于毕业设计,也没有空学习了,本篇继续学习. 本篇将开始学习java web下使用servlet下来操作数据库,并展示到界面上的使用方法. 新建工程ServletMvc001. 目录结 ...

  6. JM操作数据库

    [前言] 为什么要去直连数据库,去操作数据库? 因为在我们做自动化的时候,或者在大批量准备数据的时候,自动化的时候有时候会生成很多条页面上,接口上无法删除的数据,那么就很有很多的测试数据遗留在系统上, ...

  7. Python3.x:SQLAlchemy操作数据库

    Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...

  8. [数据库操作]Java中的JDBC的使用方法.

    前言:想必大家在实际编码中都遇到过JDBC的操作, 这里仅做自己的一个总结, 有错误和不完整之处还请大家提出来. 1,JDBC其实一套规范(接口)数据库厂商需要实现此接口(实现类)--数据库驱动 2, ...

  9. Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

随机推荐

  1. Postman进行webservices接口测试

    1.接口地址 webservices是什么? 更多webservices接口地址访问地址:http://www.webxml.com.cn/zh_cn/web_services.aspx webser ...

  2. Beam Search快速理解及代码解析(下)

    Beam Search的问题 先解释一下什么要对Beam Search进行改进.因为Beam Search虽然比贪心强了不少,但还是会生成出空洞.重复.前后矛盾的文本.如果你有文本生成经验,一定对这些 ...

  3. 安装Go语言支持及Gogs版本管理工具

    安装Go语言支持及Gogs版本管理工具 1. GO 语言: 1.1 介绍 1.1.1 官方介绍: The Go programming language is an open source proje ...

  4. HttpClient(七)

    一.定义 1.什么是HttpClient?在什么场景要用到HttpClient? http协议可以说是现在Internet上面最重要,使用最多的协议之一了,越来越多的java应用需要使用http协议来 ...

  5. Matplotlib和Seaborn演示Python可视化

    数据可视化:就是使用图形图表等方式来呈现数据,图形图表能够高效清晰地表达数据包含的信息. Seaborn是基于matplotlib,在matplotlib的基础上进行了更高级的API封装,便于用户可以 ...

  6. Qt Creator内qmake配置静态编译

    起因 利用QT Creator编写一些纯C/C++应用,默认配置下是动态编译 解决 解决起来很简单,这里只是附上配置备忘;-) msvc: { QMAKE_CFLAGS_RELEASE += /MT ...

  7. OpenSUSE Leap 42.1 KDE Ultmate Linux Distribution终极Linux系统试用与SSH连接

    系统安装环境: #一台旧笔记本电脑 #CPU Intel(R) Core(TM) i3 M 380 2.53GHz (4核) #内存 1G #硬盘存储 250G #系统型号 OpenSUSE Leap ...

  8. HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR、REMOTE_ADDR

    REMOTE_ADDR 是你的客户端跟你的服务器"握手"时候的IP.如果使用了"匿名代理",REMOTE_ADDR将显示代理服务器的IP. HTTP_CLIEN ...

  9. linux下编译常见错误

    1.浮点数例外:除数为0 2.已杀死:空间过大 3.已放弃:时间过长 4.段错误:递归 / 循环出不来

  10. 还有更惨的吗?字节面经,美团,网易,招银,360全部在HR前一面挂了

    最近一朋友向我吐槽去年的秋招,字节面经,美团,网易,招银,360全部在HR前一面挂了,实在是有点惨.我把他语无伦次的话做了一个整理: 最近真的很暴躁,控制不住自己陷入情绪低落胡思乱想,每天都是在希望失 ...