Java-数据库-SpringMvc

4 篇文章 0 订阅
4 篇文章 0 订阅

1.java

  • 编译型->JVM,一次性将代码解析,class,C,C++
  • 解释型 逐行解释 JS 效率比较型慢
  • Java 半解释,半编译,Java跨平台 JVM

2.Oracle 与MySQl的区别

  • 1.Mysql是基于表的数据库,oracle是基于行的数据库。
  • 2.Mysql有主键自增长的特性,而Oracle没有,oracle靠序列提供主键值
  • 3.oracle存在伪表(dual)、伪列(rownum/rowid),而Mysql不存在。伪表主要用于补全sql语句,因为oracle的查询必须要有
    from+表名的格式,如果没有具体的表就可以使用dual作为表名;rownum是行号,每次查询自动生成,主要用于分页;rowid是记录编号,每次插入数据库数据的时候自动生成,是针对具体数据的,用来标识唯一的一条数据,和主键有区别,主键是针对业务数据的,标识唯一的业务数据。伪表和伪列都是数据库自动维护,不需要我们管理,只拿来用就可以了。
  • 4.mysql中的单引号和双引号没有区别;而oracle中有区别,只要是别名或不需要Oracle解析(运算)的字符串,用双引号,剩下的都用单引号(比如字符串)。
  • 5.oracle中的日期格式不区分大小写,如yyyy-mm-dd HH24:mi;ss可以全部小写,其中 分钟用mi 和mysql不同。当前时间mysql:now(),
    oracle:sysdata。但oracle表中字段的具体值区分大小写,mysql不区分。
  • 6.分页的不同:mysql利用limit关键字进行分页,如:limit m ,n. 其中m 表示起始索引 , n 表示每次查询的条数。oracle 通过rownum分页 ,如:SELECT * FROM (SELECT ROWNUM r, t.*
    FROM emp t WHERE ROWNUM<=结束行号) WHERE r>=起始行号; 因为rownum不能使用 >= 符号,所以要利用子查询,把查询的rownum作为子表的字段,然后再使用>=符号。
  • 7.oracle有单独的pl/sql语言的支持,它可以利用存储过程操作数据库,简单来说就是用来写出一个具有特定功能的程序procedure ,调用这个procedure 就可以得到想要的数据,oracle中可以调用,java程序也可以调用。
  • 8.oracle的数据类型整数和小数都是Number,并且独有varchar2类型。

3.JDBC

  • 最底层的数据交互,Java和数据交互
  • ojdbc6.jar Oracle
  • Java 数据交互的接口
  • 数据库厂商来实现这个接口,给出jar包
  • JDBC编程 代码多,效率最高,速度最快

4. 普通java项目 JDK1.8 基础jar合集 SE stardard editon coreJava 标准版

Web项目 web.xml 和浏览器交互 EE entriprise edition 企业版

5. tomcat web的容器,放入EE代码,有tomcat来操控浏览器或web

servlet(JDK) 最底层的技术,通过servlet来解析代码到浏览器,控制浏览器的动作

6. 框架的含义

- 含义:是一个提供可重用的公用结构的半成品,框架封装了通用的方法和调用流程架构,他可以让我直接调用成熟的方法来完成某种功能,达到事半功倍的效果,也可以不用关心底层的实现,注重于功能的实现
. 通用的功能,可独立,便于二次利用,

  • 开发MVC 框架,思想
  • Mode entity,dao,service,util
  • View 视图,HTML,JS
  • Controller 连接JAVA和视图

7. MyBatis

ORM对象关系映射:MyBatis是一个优秀的数据持久化框架,在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现
数据库的数据,映射到JAVA对象
数据库和JAVA交互
mybatis-config.xml 连接数据的信息,*mapper映射
***Mapper.xml 一个表对应一个实体类,对应一个mapper,对应一个dao
resultMap 映射关系,JAVA命名标准,Oracle sys_user
resultType java.lang.String java.lang.Integer
多表查询
animal 动物 名称,大小,animal list
cat 猫
map
缓冲机制 1,2 log4j redis
数据库池 C3P0, druid
控制处理, 占位符

8. Spring

- spring是一个容器框架,它可以接管web层,业务层,dao层,持久层的各个组件,并且可以配置各种bean,
并可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以直接getBean(id),使用即可

- Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置
内部通过反射去动态的组装对象) ,Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。

Spring家族体系
凡是使用Spring框架,都需要把对象(特殊对象)交由Spring管理,Spring对象的大管家,IOC
IOC/DI  控制反转/依赖注入
DI 三种方式
设置注入	set
构造注入	构造方法
自动装配	set   MVC  简单方便,代码少 
bean工厂
显式,隐式 定义,声明
升级
dao动态代理
service  扫描
AOP 增强,配件,插件
前置,后置,异常,环绕(功能最强)

9. SpringMVC

Struts2与SpringMVC的区别:

1、Struts2是类级别的拦截,一个类对应一个request 上下文, SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url ,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。

2、由上边原因, SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量,而Struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码读程序时带来麻烦,每次来了请求就创建一个Action ,一个Action对象对应一个request 上下文。

3、由于Struts2需要针对每个request进行封装,把request , session等servlet生命周期的变量封装成一个一 个Map ,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。

4、拦截器实现机制上, Struts2有以自己的interceptor机制, SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

5、SpringMVC的入口是servlet ,而Struts2是filter (这里要指出, filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致 了二者的机制不同,这里就牵涉到servlet和filter的区别了。

6、SpringMVC集成了Ajax ,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax ,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

7、SpringMVC验证支持JSR303 ,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。

8、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC-样的效果,但是需要xml配置的地方不少)。

9、设计思想上, Struts2更加符合0OP的编程思想,SpringMVC就比较谨慎,在servlet上扩展。

10、SpringMVC开发效率和性能高于Struts2。

11、SpringMVC可以认为已经100%零配置。

  • Spring MVC的核心技术
  • 注解开发(@Controller,@RequestMapping,@ResponseBody。。。。)
    还有Spring的诸多注解,这两者是不需要整合的~ 传参,接参(request) 基本配置 文件上传与下载 Spring
  • MVC中文件上传需要添加Apache Commons FileUpload相关的jar包, 基于该jar,
    Spring中提供了MultipartResolver实现类: CommonsMultipartResolver.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值