实习日记07/23 day12

杂谈:技术是解决问题的工具

假如我想写一个商城系统,我可能会遇到哪些问题呢?

业务篇 part1

1.首先想有一个漂亮的页面,于是HTML+CSS+JS站出来了,我有了一个不错的界面,就像一个精致的娃娃。(HTML解决了页面展示的问题)
2.但是问题来了,这是一个静态页面,它的作用只是展示信息,我希望能让它有更多的功能,而不是只是站着不动的娃娃,于是我又采用了JSP、Servlet实现动态页面,这样当我点击欢迎按钮,输入自己的名字的时候,它会亲切的喊出“Hello,OldManWalk”。(JSP解决了动态页面的问题)。
3.但是问题又来了,业务和界面的高度耦合让我增加改动一些功能的时候特别吃力,而且几乎没有测试的能力,这对于一个功能简单的下载网站来说不是问题,当对于一个业务量巨大的商城网站来说只用JSP是不可能的。于是我才用了Struts将业务与界面相分离。还是玩偶的例子,Struts相当于给了玩偶一个简单的大脑,让它实现小爱同学的功能,在这种情况下,我只要含“打招呼”,大脑就会处理命令再控制玩偶做出反应,而单单有JSP的情况下,我增加功能我需要自己控制肌肉、皮肤等乱七八糟的东西。Struts采用的MVC的设计模式,把界面,逻辑判断,业务实现三者相分离。这样小玩偶就有了最基本的大脑(一个不太聪明的玩偶)

数据篇 part2

4.到此为止还很棒,我们先放下逻辑这一部分,看一下数据,首先是当我们搭建商城时避不开的有许多数据,我们不可能让数据四海为家,对于数据管理这个问题,我们采用了Mysql这个工具来帮我们解决,这样数据就井井有条的堆放在硬盘中。
5.这是我们又遇到了新问题,数据只是放在硬盘中,这和我的业务没有交集啊!,比如我想调用某一个顾客的信息,我可以在数据库中轻松地处理,但是返回的数据怎么反映到我的业务之中?于是JDBC这个工具出现了,通过JDBC,我们可以在业务中对数据库进行增删改查的处理。JDBC的作用是连接数据源,如:数据库。为数据库传递查询和更新指令。处理数据库响应并返回的结果。这非常棒,举一个不恰当的例子。如果说数据是必要的知识,数据库就是把一本书,而JDBC就是让小玩偶去读书,并能对书中的内容加工并陈述,甚至自己改写书。例如查询用户名字和年龄。

ResultSet rs = stmt.executeQuery("SELECT user_name, age FROM user");
      while(rs.next()){
          System.out.println(rs.getString("user_name")+" 年龄:"+rs.getInt("age"));
      }

6.JDBC很棒,但是还是遇到了新问题。Java是面向对象的语言,她所控制的都是类与对象,而数据库则是以表的形式存储数据,可以说驴头不对马嘴,JDBC确实实现了数据库与业务的沟通,但是代价往往是巨大的。对于这个问题,我们需要Hibernate,Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象!使用了Hibernate就可以极大地方便我们的开发,少写很多SQL语句,例如通过名字查询:

User user1 = (User) session.get(User.class, name);
     System.out.println(user1);

使用hibernate相当于小玩偶读书的时候,多了一本教辅书,简化了学习的过程。
7.Hibernate很酷,我们的项目可以更方便的操纵数据库了,但是把Hibernate比作教辅书的话,那么他就是一部又大又厚的教辅书,有很高的学习门槛,而且它只青睐于自己的方法去操作数据库,我们无法很方便的进行修改,这又是一个问题,为了解决这个问题,我们可以采用Mybatis来代替Hibernate。相当于我们用一本更轻的教辅书来帮助我们处理数据库。
8.Mybatis非常棒,但是还有一个问题,一个顾客来询问热销物品,一个顾客来询问,查阅数据库,过一会,有一个顾客,来询问,又查阅数据库。频繁的对某种热门信息进行交互行为对于存储在磁盘上的数据来说速度太慢了,就像北京到上海,这么多辆车频繁往回,居然只修了个乡村小路一样,对于这种问题,我们可以采用Redis来解决,让频繁使用到的数据存储在内存上,实现快速交互,就像修了高速公路一样。拿我们的小玩偶来举例,就是对一些常用知识形成了条件反射,脱口而出,不用每次都去查询数据库。

下次再说

以上是我个人对业务所使用的一些常用框架的理解,可能写的不太正确欢迎讨论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值