Day09–利用JavaWeb+大数据实现纽约市共享单车地图服务

原创声明:近期发现在关键字搜索我的文章时,发现很多文章被其他网站直接一字不落的拿去。在这里我先谢谢大家对我写的内容的肯定,我也会继续努力。但是,很多网站连标明都未标明来源,这就让人很可气,毕竟每一篇文章都是我一个字一个字敲出来的。我也不是在抱怨什么,只是希望那些某些站长在“转载”他人文章时标明来源,注明作者。不要只是简单的一个来源互联网。万分感谢。

此外,本站文章如未标注文章来源,则均为作者原创,请转载附上原文链接,并声明作者。保护原创,从我做起,谢谢合作。

如果是我的项目的话,源码会全部上传到我的Github,大家有需要的可以拿去研究,也可以我们一起交流探讨。最后,祝愿每一个默默努力的人都可以取得理想的结果。

-----------吃土少年8

# 基础知识:
  1. JavaEE经典三层架构
    • MVC
      • M:Model层也称模型层,进行数据的操作,数据库的访问,数据的封装。
      • V:View层也称视图层,负责视图的生成,主要是和用户产生交互。
      • C:Controller层也称控制层,负责处理M和V之间的逻辑操作,
      • 三部分彼此独立,互不干扰。
    • 其中,截止目前M中分为了Service和DAO(database access object)也称repository。分别叫业务层和持久层。其实是将JavaEE开发架构前一阶段中的JavaBean进行了拆分,因为对数据处理的业务逻辑越来越复杂。以至于JavaBean被拆的只剩下了对数据进行封装成对象的功能,也就不算是层次架构中的内容了,属于层次间的内容。
    • 发展历程:
    • Day09–利用JavaWeb+大数据实现纽约市共享单车地图服务
  2. JDBC
    • JDBC(Java Database Connectivity)
    • Java程序与数据库进行交互时,遵循的规范(API),其实就是Java访问数据库时,代码怎么写。
    • JDBC代码步骤:
      • 注册驱动(将数据库厂商提供的驱动类加载到内存中)
      • 建立连接(生成一条路Java程序和数据库程序之间的路)
      • 声明SQL的执行器(就是声明SQL语句)
      • 执行SQL语句(通过通道发到数据库程序去执行)
      • 对结果集进行操作(对执行的结果进行操作)
      • 关闭连接,释放资源
    • 图解:
    • Day09–利用JavaWeb+大数据实现纽约市共享单车地图服务
    • 前置条件:引入数据库连接jar包
    • 本次使用Maven引入jar包,在pom.xml中添加jar包依赖,依赖包网站
    • jar包向下兼容不向上兼容,我们选用5.1.47版本。
  3. 数据库连接池
    • 每次JDBC访问时,创建连接和销毁连接所占用的资源大于传输数据所小号的资源。每次访问都创建新的连接和销毁该链接,会造成较大的资源浪费,并且严重影响数据库的并发访问量。
    • 数据库连接池的思路是,在应用启动时,一次性建立与多个数据库的连接,这些连接保存在一个连接的容器中(连接池),当用户需要使用连接时,不再需要创建新的连接,而是从连接池中获取一个空闲的连接,当用户本次访问结束时,不在销毁连接,而是将连接归还给连接池。
    • 在实际开发中,不再需要开发者自己编写数据库连接池的代码,行业中有非常成熟的 数据库连接池解决方案。较为常见的连接池解决方案有dbcp,c3p0等。
    • 本项目使用dbcp数据库连接池:
      • 在项目pom.xml文件中添加对dbcp的依赖。
      • 在Java Resources/src/main/resources新建jdbc.properties文件(properties是一种格式后缀),来创建配置。
      • 开发一个数据库连接池工具类DBUtils,功能如下:
        • 读取jdbc.properties文件的配置
        • 初始化dbcp连接池的实例
        • 对dbcp连接池进行配置
        • 提供一个静态的获取连接的方法,供使用者调用。
        • 都是现成的文件,我们采用老师给的java文件,拷贝到工具类package包下。
  4. 使用数据库连接池
    • 不再需要注册驱动,建立连接的操作,而是直接调用