0%

响应返回值

String类型

controller 方法(SpringMvc的控制器方法)返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。

1
2
3
4
5
6
7
//指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp
@RequestMapping("/testReturnString")
public String testReturnString() {
System.out.println("AccountController 的 testReturnString 方法执行了。。。。");
return "success";
}

阅读全文 »

SpringMVC 的基本概念

三层架构

我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就
是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S 架构的开发。那么在 B/S 架构中,系统标准的三层架构
包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多

阅读全文 »

Spring中JdbcTemplate的使用

JdbcTemplate 概述

它是 spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。spring 框架为我们提供了很多的操作模板类。

  • 操作关系型数据的:
    • JdbcTemplate
    • HibernateTemplate
  • 操作 nosql 数据库的:
    • RedisTemplate
  • 操作消息队列的:
    • JmsTemplate

我们今天的主角在 spring-jdbc-5.0.2.RELEASE.jar 中,我们在导包的时候,除了要导入这个 jar 包外,还需要导入一个 spring-tx-5.0.2.RELEASE.jar(它是和事务相关的)。

阅读全文 »

什么是AOP

AOP:全称是 Aspect Oriented Programming 即:面向切面编程。

简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。

AOP 的作用及优势

  • 作用:在程序运行期间,不修改源码对已有方法进行增强。
  • 优势:
    • 减少重复代码
    • 提高开发效率
    • 维护方便

AOP 的实现方式:使用动态代理技术

阅读全文 »

常用注解

  • 基于注解整合时,导入约束时需要多导入一个 context 名称空间下的约束。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">

  • 如果xml和注解一起使用,则在xml配置文件中需要告知Spring创建容器时需要扫描的包
    1
    2
    <!-- 告知 spring 创建容器时要扫描的包 -->
    <context:component-scan base-package="com.itheima"></context:component-scan>

用于创建对象的

@Component

相当于:

1
<bean id="" class="">
  • 作用:把资源让 spring 来管理。相当于在 xml 中配置一个 bean。
  • 属性:value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。

它衍生了三个注解,他们的作用及属性都是一模一样的,其实就是@Component子类,他们只不过是提供了更加明确的语义化

  • @Controller:一般用于表现层的注解
  • @Service:一般用于业务层的注解
  • @Repository:一般用于持久层的注解
阅读全文 »

概述

Spring是什么

Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:
反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核
,提供了展现层 Spring
MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多
著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。

阅读全文 »

延迟加载

什么是延迟加载

实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的账户信息。此时就是我们所说的延迟加载。

延迟加载就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.

  • 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。
  • 坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。
阅读全文 »

Mybaits的连接池技术

我们在前面的 WEB 课程中也学习过类似的连接池技术,而在 Mybatis 中也有连接池技术,但是它采用的是自
己的连接池技术。在 Mybatis 的 SqlMapConfig.xml 配置文件中,通过来实
现 Mybatis 中连接池的配置。

Mybatis连接池的分类

  • UNPOOLED:不使用连接池的数据源
  • POOLED:使用连接池的数据源
  • JNDI 使用:JNDI 实现的数据源

相应地,MyBatis 内部分别定义了实现了 java.sql.DataSource 接口的 UnpooledDataSource,
PooledDataSource 类来表示 UNPOOLED、POOLED 类型的数据源

阅读全文 »

MyBatis 框架概述

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,
而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。
mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中
sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并
返回。
采用 ORM 思想解决了实体和数据库映射的问题,对 jdbc 进行了封装,屏蔽了 jdbc api 底层访问细节,使我
们不用与 jdbc api 打交道,就可以完成对数据库的持久化操作。

阅读全文 »

1
2
3
4
5
6
7
8
String insertSql = "insert into user(name,age) values (:name,:age)";
User user = new User();
user.setName("test");
user.setAget(18);

KeyHolder keyHolder = new GeneratedKeyHolder();
int insertResult = namedParameterJdbcTemplate.update(insertSql, new BeanPropertySqlParameterSource(user), keyHolder);
int userId = keyHolder.getKey().longValue();