Mabatis
主要优点有哪些- 小巧简单易学,没有任何第三方依赖
Mybatis
相当灵活,不会对应用程序或者数据库的现有设计强加任何影响。- SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,更易于单元测试,并可重用
- 提供映射标签,支持对象与数据库字段关系映射
- 支持编写动态SQL语句
什么是数据持久化以及ORM
- 数据持久化就是将内存中的数据模型转化为存储模型,以及将存储模型转化为内存中的数据模型的统称,数据模型可以是任何数据结构或数据模型,例如
JavaBean
对象;存储模型可以是关系型数据库表,XML
文件,二进制文件等。 - ORM是对象/关系映射,用来把对象模型表示的对象映射到基于
SQL
的关系模型数据库结构中去。这样,只需简单的操作实体对象的属性和方法,而不需要和复杂的SQL
语句打交道,将程序中的对象自动持久化到关系数据库中。
- 数据持久化就是将内存中的数据模型转化为存储模型,以及将存储模型转化为内存中的数据模型的统称,数据模型可以是任何数据结构或数据模型,例如
什么是
IOC
和DI
- IOC全称是
Inversion of Control
,含义是控制反转。IOC
是指程序中对象的获取方式发生反转,由最初的new
方式转变为由第三方框架创建,注入,它降低了对象之间的耦合度 - DI全称是
Dependency Injection
,含义是依赖注入,指自身对象中的内置对象是通过注入的方式进行创建,注入的方式主要有两种,即setter
注入,它降低了对象之间的耦合度
- IOC全称是
什么是组件扫描
- 指定一个包路径,
Spring
容器会自动扫描该包和其子包下的所有组件类,当发现组件类定义前有特定的注解标记时,就将该组件纳入到Spring
容器中。等价于原来在XML
配置中的定义功能
- 指定一个包路径,
请列出
Spring
中关于组件创建的注解标记(至少5种)@Component
(把普通pojo
实例化到spring容器中,相当于配置文件中的<bean id = "" class = ""/>
)@Autowired
(注入属性)@Repository
(dao
)@Service
(service
)@Controller
(controller
)这些加了注解的类都纳入了
spring
容器中管理下面写这个引入
component
的扫描组件<context:component-scan base-package="com.spring">
举例说明什么是构造器注入
package ex; public class A{ private int a; public A(){} public A(int a){} public int getA(){return a;} public void setA(){this.a = a;} } // 配置文件中 <bean id="a" class="ex.A"> <constructor-arg name="a" value="1"></constructor-arg> </bean>
简述SpringMvc的工作流程
- 首先用户发送请求->前端控制器(
DispatcherServlet
),前端控制器根据请求信息(如URL
)来决定选择哪一个页面控制器(Controller
)进行处理并把请求委托给他 - 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在
SpringMVC
中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView
- 首先用户发送请求->前端控制器(
简述
Spring
框架的好处- 降低组件之间的耦合度,实现软件各层之间的解耦
- 可以使用容器提供的众多服务,如:事务管理服务,消息服务等等
- 容器提供单例模式支持,开发人员不再需要自己编写实现代码
- 容器提供
AOP
技术,利用它很容易实现如权限拦截,运行期监控等功能
写出
SrpingMVC
的Controller
向页面传值的方法- 使用
HttpServletRequest
对象,调用setAttribute()传值 - 使用
HttpSession
对象,调用setAttribute()
传值 - 使用
ModelAndView
对象,调用addObject()
传值 - 使用
Model
对象,调用addAttribute()
传值 - 使用
RedirectAttributes对象
,调用addFlashAttrubute()
传值
- 使用
简述
SpringMVC
如何和ajax
进行交互返回json
对象- 前端
ajax
方法设置dataType:"json"
- 项目添加
jackson-core
和jackson-databind
依赖 - 在
SpringMVC
配置文件中添加json
转换器的配置 - 在
Controller
中接收ajax
的方法的上方添加@ResponseBody
注解 - 该方法直接返回的
Object
或List
对象等数据类型
- 前端
简述Servlet的生命周期
Servlet
生命周期:Servlet
加载->实例化->服务->销毁init()->service()->destory()
init()
和destory()
都仅执行一次
简述请求转发和请求重定向的区别
- 转发是服务器行为,重定向是客户端行为
- 转发过程:客户浏览器发送
http
请求->Web
服务器接收此请求->调用内部的一个方法在容器内部完成请求处理和转发动作->将目标资源发给客户;在这里,转发的路径必须是同一个Web
容器下的url
,其不能转向其他的web
路径中去,中间传递的是自己容器内的request
。在客户浏览器路径栏显示的任然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。 - 重定向过程:客户浏览器发送
http
请求->Web
服务器接收后发送302
状态码相应及对应新的location
给客户浏览器->客户浏览器发送是302
响应,则自动再发送一个新的http
请求,请求url
是新的location
地址->服务器根据此请求寻找资源并发送给客户。在这里location
可以重定向到任意URL
,既然是浏览器重新发出了请求,则就没有什么request
传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次访问请求。
简述
JDBC
的主要工作原理- 使用
Class.forName()
方法加载数据库JDBC
驱动 - 通过
DriverManager.getConnection()
方法获取数据库的连接对象Connection
- 通过
Connection
对象创建相关的Statement
对象 - 使用
Statement
对象executeUpdate()
方法执行添加,修改以及删除的SQL
语句 - 使用
statement
对象executeQuery()
方法执行SQL
查询语句,该方法返回ResultSet
对象 - 关闭数据库连接
- 使用
JavaEE知识总结
最新推荐文章于 2023-11-28 12:57:56 发布