Day09–利用JavaWeb+大数据实现纽约市共享单车地图服务
原创声明:近期发现在关键字搜索我的文章时,发现很多文章被其他网站直接一字不落的拿去。在这里我先谢谢大家对我写的内容的肯定,我也会继续努力。但是,很多网站连标明都未标明来源,这就让人很可气,毕竟每一篇文章都是我一个字一个字敲出来的。我也不是在抱怨什么,只是希望那些某些站长在“转载”他人文章时标明来源,注明作者。不要只是简单的一个来源互联网。万分感谢。
此外,本站文章如未标注文章来源,则均为作者原创,请转载附上原文链接,并声明作者。保护原创,从我做起,谢谢合作。
如果是我的项目的话,源码会全部上传到我的Github,大家有需要的可以拿去研究,也可以我们一起交流探讨。最后,祝愿每一个默默努力的人都可以取得理想的结果。
-----------吃土少年8
# 基础知识:- JavaEE经典三层架构
- MVC
- M:Model层也称模型层,进行数据的操作,数据库的访问,数据的封装。
- V:View层也称视图层,负责视图的生成,主要是和用户产生交互。
- C:Controller层也称控制层,负责处理M和V之间的逻辑操作,
- 三部分彼此独立,互不干扰。
- 其中,截止目前M中分为了Service和DAO(database access object)也称repository。分别叫业务层和持久层。其实是将JavaEE开发架构前一阶段中的JavaBean进行了拆分,因为对数据处理的业务逻辑越来越复杂。以至于JavaBean被拆的只剩下了对数据进行封装成对象的功能,也就不算是层次架构中的内容了,属于层次间的内容。
- 发展历程:
- MVC
- JDBC
- JDBC(Java Database Connectivity)
- Java程序与数据库进行交互时,遵循的规范(API),其实就是Java访问数据库时,代码怎么写。
- JDBC代码步骤:
- 注册驱动(将数据库厂商提供的驱动类加载到内存中)
- 建立连接(生成一条路Java程序和数据库程序之间的路)
- 声明SQL的执行器(就是声明SQL语句)
- 执行SQL语句(通过通道发到数据库程序去执行)
- 对结果集进行操作(对执行的结果进行操作)
- 关闭连接,释放资源
- 图解:
- 前置条件:引入数据库连接jar包
- 本次使用Maven引入jar包,在pom.xml中添加jar包依赖,依赖包网站
- jar包向下兼容不向上兼容,我们选用5.1.47版本。
- 数据库连接池
- 每次JDBC访问时,创建连接和销毁连接所占用的资源大于传输数据所小号的资源。每次访问都创建新的连接和销毁该链接,会造成较大的资源浪费,并且严重影响数据库的并发访问量。
- 数据库连接池的思路是,在应用启动时,一次性建立与多个数据库的连接,这些连接保存在一个连接的容器中(连接池),当用户需要使用连接时,不再需要创建新的连接,而是从连接池中获取一个空闲的连接,当用户本次访问结束时,不在销毁连接,而是将连接归还给连接池。
- 在实际开发中,不再需要开发者自己编写数据库连接池的代码,行业中有非常成熟的 数据库连接池解决方案。较为常见的连接池解决方案有dbcp,c3p0等。
- 本项目使用dbcp数据库连接池:
- 在项目pom.xml文件中添加对dbcp的依赖。
- 在Java Resources/src/main/resources新建jdbc.properties文件(properties是一种格式后缀),来创建配置。
- 开发一个数据库连接池工具类DBUtils,功能如下:
- 读取jdbc.properties文件的配置
- 初始化dbcp连接池的实例
- 对dbcp连接池进行配置
- 提供一个静态的获取连接的方法,供使用者调用。
- 都是现成的文件,我们采用老师给的java文件,拷贝到工具类package包下。
- 使用数据库连接池
- 不再需要注册驱动,建立连接的操作,而是直接调用