JavaEE框架技术

彭红伟、骆丽华、李康顺、聂鹏、袁大伟、孟雨、王诗雅、张新伟、聂军、谢备

目录

  • 1 初识MyBatis框架
    • 1.1 框架概述
    • 1.2 框架的优势
    • 1.3 当前主流框架
    • 1.4 传统JDBC的劣势
    • 1.5 MyBatis概述
    • 1.6 MyBatis环境搭建
    • 1.7 MyBatis入门程序
    • 1.8 MyBatis工作原理
    • 1.9 扩展阅读
    • 1.10 章节测试
  • 2 MyBatis的核心配置
    • 2.1 SqlSessionFactoryBuilder对象
    • 2.2 SqlSessionFactory对象
    • 2.3 SqlSession对象
    • 2.4 MyBatis配置文件的主要元素
    • 2.5 <properties>元素
    • 2.6 <settings>元素
    • 2.7 <typeAliases>元素
    • 2.8 <environments>元素
    • 2.9 <mappers>元素
    • 2.10 MyBatis映射文件中的常用元素
    • 2.11 <select>元素
    • 2.12 <insert>元素
    • 2.13 <update>元素
    • 2.14 <delete>元素
    • 2.15 <sql>元素
    • 2.16 <resultMap>元素
    • 2.17 案例:员工管理系统
    • 2.18 扩展阅读
    • 2.19 章节测试
  • 3 动态SQL
    • 3.1 动态SQL中的元素
    • 3.2 <if>元素
    • 3.3 <choose>、<when>、<otherwise>元素
    • 3.4 <where>元素
    • 3.5 <trim>元素
    • 3.6 更新操作
    • 3.7 <foreach>元素中的属性
    • 3.8 <foreach>元素迭代数组
    • 3.9 <foreach>元素迭代List
    • 3.10 <foreach>元素迭代Map
    • 3.11 案例:学生信息查询系统
    • 3.12 扩展阅读
    • 3.13 章节测试
  • 4 MyBatis的关联映射和缓存机制
    • 4.1 关联映射概述
    • 4.2 一对一查询
    • 4.3 一对多查询
    • 4.4 多对多查询
    • 4.5 一级缓存
    • 4.6 二级缓存
    • 4.7 案例:商品的类别
    • 4.8 扩展阅读
    • 4.9 章节测试
  • 5 MyBatis的注解开发
    • 5.1 @Select注解
    • 5.2 @Insert注解
    • 5.3 @Update注解
    • 5.4 @Delete注解
    • 5.5 @Param注解
    • 5.6 一对一查询
    • 5.7 一对多查询
    • 5.8 多对多查询
    • 5.9 案例:基于MyBatis注解的学生 管理程序
    • 5.10 扩展阅读
    • 5.11 章节测试
  • 6 初识Spring框架
    • 6.1 Spring概述
    • 6.2 Spring框架的优点
    • 6.3 Spring的体系结构
    • 6.4 Spring 5的新特性
    • 6.5 Spring的下载及目录结构
    • 6.6 Spring的入门程序
    • 6.7 控制反转的概念
    • 6.8 依赖注入的概念
    • 6.9 依赖注入的类型—构造方法注入
    • 6.10 依赖注入的类型—属性setter方法注入
    • 6.11 依赖注入的应用
    • 6.12 扩展阅读
    • 6.13 章节测试
  • 7 Spring中的Bean的管理
    • 7.1 BeanFactory接口
    • 7.2 ApplicationContext接口
    • 7.3 Bean的配置
    • 7.4 构造方法实例化
    • 7.5 静态工厂实例化
    • 7.6 实例工厂实例化
    • 7.7 singleton作用域
    • 7.8 prototype作用域
    • 7.9 基于XML的装配
    • 7.10 基于注解的装配
    • 7.11 自动装配
    • 7.12 Bean的生命周期
    • 7.13 扩展阅读
    • 7.14 章节测试
  • 8 Spring AOP
    • 8.1 Spring AOP概述
    • 8.2 Spring AOP术语
    • 8.3 JDK动态代理
    • 8.4 CGLib动态代理
    • 8.5 基于XML的AOP实现
    • 8.6 基于注解的AOP实现
    • 8.7 扩展阅读
    • 8.8 章节测试
  • 9 Spring的数据库编程
    • 9.1 JdbcTemplate概述
    • 9.2 Spring JDBC的配置
    • 9.3 excute()方法
    • 9.4 update()方法
    • 9.5 query()方法
    • 9.6 事务管理的核心接口
    • 9.7 事务管理的方式
    • 9.8 基于XML方式的声明式事务
    • 9.9 基于注解方式的声明式事务
    • 9.10 案例:实现用户登录
    • 9.11 扩展阅读
    • 9.12 章节测试
  • 10 初识Spring MVC框架
    • 10.1 Spring MVC概述
    • 10.2 Spring MVC特点
    • 10.3 Spring MVC入门程序
    • 10.4 Spring MVC工作原理
    • 10.5 扩展阅读
    • 10.6 章节测试
  • 11 Spring MVC的核心类和注解
    • 11.1 DispatcherServlet类
    • 11.2 @Controller注解
    • 11.3 @RequestMapping注解的使用
    • 11.4 @RequestMapping注解的属性
    • 11.5 请求映射方式
    • 11.6 扩展阅读
    • 11.7 章节测试
  • 12 Spring MVC数据绑定和相应
    • 12.1 数据绑定
    • 12.2 默认类型数据绑定
    • 12.3 简单数据类型绑定
    • 12.4 POJO绑定
    • 12.5 自定义类型转换器
    • 12.6 数组绑定
    • 12.7 集合绑定
    • 12.8 复杂POJO绑定—属性为对象类型的数据绑定
    • 12.9 复杂POJO绑定—属性为List类型的数据绑定
    • 12.10 复杂POJO绑定—属性为Map类型的数据绑定
    • 12.11 JSON数据绑定
    • 12.12 返回值为void类型的页面跳转
    • 12.13 返回值为String类型的页面跳转—不携带数据
    • 12.14 返回值为String类型的页面跳转—携带数据
    • 12.15 返回值为ModelAndView类型的页面跳转
    • 12.16 普通字符串的回写
    • 12.17 JSON数据的回写—对象数据转换成JSON数据后的回写
    • 12.18 JSON数据的回写—集合数据转换成JSON数据后的回写
    • 12.19 扩展阅读
    • 12.20 章节测试
  • 13 Spring MVC的高级功能
    • 13.1 简单异常处理器
    • 13.2 自定义异常处理器
    • 13.3 异常处理注解
    • 13.4 拦截器概述
    • 13.5 拦截器的配置
    • 13.6 拦截器的执行流程—单个拦截器
    • 13.7 拦截器的执行流程—多个拦截器
    • 13.8 案例:后台系统登录验证
    • 13.9 文件上传
    • 13.10 文件下载
    • 13.11 案例:文件上传和下载
    • 13.12 扩展阅读
    • 13.13 章节测试
  • 14 SSM框架整合
    • 14.1 常用方式整合思路
    • 14.2 项目基础结构搭建
    • 14.3 Spring和MyBatis整合
    • 14.4 Spring和Spring MVC整合
    • 14.5 纯注解方式整合思路
    • 14.6 纯注解SSM框架整合
    • 14.7 扩展阅读
    • 14.8 章节测试
  • 15 云借阅图书管理系统
    • 15.1 系统概述
    • 15.2 数据库设计
    • 15.3 系统环境搭建
    • 15.4 用户登录
    • 15.5 实现登录验证
    • 15.6 注销登录
    • 15.7 新书推荐
    • 15.8 图书借阅
    • 15.9 当前借阅
    • 15.10 借阅记录
    • 15.11 访问权限控制
    • 15.12 扩展阅读
    • 15.13 章节测试
项目基础结构搭建

★学习目标:

熟悉SSM框架整合的项目基础结构,能够在项目中搭建基础的SSM框架整合


★思考任务:

1、自述常用方式的整合思路?

★任务学习:


视频学习

★知识要点:

接下来 ,根据14.1.1中的整合思路搭建SSM架整合的项目基础结构 ,具体如下所示。

 

.

1.搭建数据库环境

 MySQL数据库中创建一个名称为ssm的数据库 ,在该数据库中创建一个名 称为tb_book的表 ,并在tb_book表中插入数据。创建数据库和表  以及往表中插入数据的。

SQL语句如下所示。

CREATE DATABASE ssm;

USE ssm;

CREATE TABLE `tb_book`  (

`id` int(11) ,

`name` varchar(32) ,

`press` varchar(32) ,

`author` varchar(32) );

INSERT INTO `tb_book` VALUES

(1, 'Java EE企业级应用开发教程', '人民邮电出版社', '黑马程序');

2.引入项目依赖:本案例中需要引入的相关依赖如下所示。 

(1)Spring相关依赖

        spring-context : Spring上下文;

        spring-tx : Spring事务管理;

        spring-jdbc : SpringJDBC;

        spring-test : Spring单元测试;

        spring-webmvc : SpringMVC核心。

(2)MyBatis相关依赖

        mybatis : MyBatis核心;

(3)MyBatis与Spring整合包

        mybatis-spring :MyBatis与Spring整合。

(4)数据源相关

        druid : 阿里提供的数据库连接池。

(5)单元测试相关的依赖

        junit : 单元测试,与spring-test放在一起做单元测试。    

(6)ServletAPI相关的依赖

        jsp-api : jsp页面使用request等对象;

        servlet-api : java文件使用request等对象。

(7)数据库相关的依赖

        mysql-connector-java : mysql的数据库驱动包。

3.创建实体类

创建名称为Book的实体类。

public class Book {

        private Integer id; //图书id

            private String name; //图书名称

            private String press; //出版社

            private String author; //作者// 

            省略getter/setter方法

}

4.

1)BookMapper的BookMapperfindBookById()方id

package com.itheima.dao;

import com.itheima.domain.Book;

public interface BookMapper {

     public Book findBookById(Integer id);

}

5.的类和接口

(2)创建BookMapper接口对应的映射文件BookMapper.xml

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.itheima.dao.BookMapper">

<!--根据id查询图书信息 -->

<select id="findBookById" parameterType="int"resultType="com.itheima.domain.Book">

select * from book where id = #{id}</select>

</mapper>

6.创

3BookService的口,在BookService接findBookById()方idBook信

package com.itheima.service;

import com.itheima.domain.Book;

public interface BookService {

    public Book findBookById(Integer id);

}

7.创

4BookService接BookServiceImplBookServiceImplBookServicefindBookById()方法。@Service

public class BookServiceImpl implements BookService {

@Autowired

private BookMapper bookMapper;

public Book findBookById(Integer id) {

    return bookMapper.findBookById(id);

}

}

8.创

5BookController的

BookControllerBookServicefindBookById()的方法。

@Controller

public class BookController {

        @Autowired

        private BookService bookService;

        @RequestMapping("/book")

        public ModelAndView findBookById(Integer id){

            Book book = bookService.findBookById(id);

            ModelAndView modelAndView = new ModelAndView();

            modelAndView.setViewName("book.jsp");

            modelAndView.addObject("book",book); 

            return modelAndView; 

}

}

9.创建三层架构对应模块的类和接口

(6)至此,项目基础结构已经搭建完成,项目基础结构如图所示。




★思政元素

在搭建SSM框架项目基础结构的过程中,思政元素主要包括以下几个方面:

  1. 规范性:在项目搭建的过程中,应当遵守相关的规范和标准,包括代码规范、项目组织规范等。这体现了遵循法律法规和道德伦理的原则。

  2. 团队合作:项目的搭建通常需要多人合作完成,所以在这个过程中,应注重团队合作和协调。团队成员之间应相互尊重、互助合作,体现了社会主义核心价值观中的集体主义精神。

  3. 正直诚信:在项目搭建的过程中,应保持正直诚信的态度,不得采用不正当手段或违反道德规范的行为。这符合社会主义核心价值观中的诚信和正直的要求。

  4. 服务意识:在项目的搭建过程中,要始终以用户需求为导向,注重用户体验和服务质量。这体现了社会主义核心价值观中的以人民为中心的思想。

  5. 创新思维:在项目搭建中,可以提倡创新思维和实践,鼓励团队成员提出新的想法和解决方案。这体现了社会主义核心价值观中的创新精神。

需要注意的是,这些思政元素并不是专门针对SSM框架项目的,而是贯穿于整个软件开发过程中的基本原则。在搭建项目基础结构时,我们应当将这些思政元素融入到实际的工作中,以确保项目的高质量和可持续发展。