×
超值优惠券
¥50
100可用 有效期2天

全场图书通用(淘书团除外)

关闭
基于SSM框架的互联网应用开发技术

基于SSM框架的互联网应用开发技术

1星价 ¥96.6 (7.0折)
2星价¥96.6 定价¥138.0
暂无评论
图文详情
  • ISBN:9787030698162
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:320
  • 出版时间:2021-09-01
  • 条形码:9787030698162 ; 978-7-03-069816-2

内容简介

本书详细讲解了当前JavaEE开发流行的SSM框架,重点讲述Spring、MyBatis、SpringMVC三大框架的知识与原理以及实际应用,以及Spring+SpringMVC+MyBatis三大框架的整合应用本书也介绍了SpringBoot技术。全书共19章,~4章是MyBatis部分,第5~10章为Spring部分,1~14章为SpringMVC部分,5章为SSM整合部分,6~19章Spring为Boot部分。本书每章都配有案例项目,将理论知识融合到项目案例中,使读者能更加容易地理解SSM框架关键技术。本书可供计算机科学与技术、软件工程等相关专业的研究生、高年级本科生阅读,也可供软件开发工程技术人员参考。

目录

目录
前言
第1章 走进MyBatis 1
1.1 什么是MyBatis 1
1.2 传统JDBC编程的问题 2
1.3 MyBatis 4
1.4 MyBatis示例程序 6
1.4.1 需求描述 6
1.4.2 表设计和数据初始化 6
1.4.3 搭建开发环境 9
1.4.4 任务1:根据用户id查询用户 11
1.4.5 任务2:根据用户名模糊查询用户 15
1.4.6 任务3:添加用户 17
1.4.7 任务4:更新用户19
1.4.8 任务5:删除用户 21
1.5 MyBatis解决了JDBC编程的问题 23
第2章 DAO的开发 24
2.1 原生开发DAO 24
2.1.1 开发需求 24
2.1.2 创建DAO接口 24
2.1.3 创建DAO实现类 25
2.1.4 单元测试 26
2.2 Mapper接口开发DAO 28
2.2.1 Mapper接口开发DAO规范 28
2.2.2 定义映射文件 28
2.2.3 将映射文件加载到配置文件中 29
2.2.4 定义Mapper接口 29
2.2.5 单元测试 29
第3章 MyBatis配置详解 32
3.1 全局配置SqlMapConfig 32
3.1.1 properties(属性) 33
3.1.2 settings(全局配置) 33
3.1.3 typeAliases(类型别名) 34
3.1.4 typeHandlers(类型处理器) 36
3.1.5 mappers(映射处理器) 37
3.2 输入映射parameterType 38
3.2.1 简单类型输入映射 38
3.2.2 POJO类型输入映射 39
3.2.3 VO类型输入映射 40
3.2.4 HashMap类型输入映射 43
3.3 输出映射resultType 44
3.3.1 简单类型输出映射 44
3.3.2 POJO对象输出映射 45
3.3.3 POJO集合输出映射 46
3.3.4 HashMap类型输出映射 47
3.4 输出映射resultMap 48
3.4.1 resultMap的作用 48
3.4.2 定义resultMap 49
3.4.3 使用resultMap 49
3.5 动态SQL 50
3.5.1 where和if 50
3.5.2 foreach 53
3.5.3 SQL片段 55
第4章 关联查询与缓存 57
4.1 订单数据模型分析 57
4.1.1 一对一关联査询 58
4.1.2 一对多关联查询 64
4.1.3 多对多关联査询 67
4.1.4 关联查询腿 72
4.1.5 懒加载 72
4.2 缓存 76
4.2.1 为什么使用缓存 76
4.2.2 一级缓存 76
4.2.3 二级缓存 78
4.3 逆向工程 81
第5章 IOC与DI 86
5.1 硬编码创建对象的弊端 86
5.2 IOC和DI 87
第6章 Spring Bean管理 90
6.1 Spring简介 90
6.2 宠物店示例程序 92
6.2.1 下载Spring依赖的jar包 92
6.2.2 编写Spring的Hello World程序 94
6.2.3 宠物店程序剖析 98
6.3 创建Bean的方式 99
6.3.1 使用配置文件的Bean元素创建Bean 99
6.3.2 静态工厂注入Bean 99
6.3.3 实例工厂注入Bean 100
6.3.4 构造方法注入Bean 101
6.3.5 set方法注入Bean 102
6.4 Bean的作用域 103
6.4.1 scope属性 103
6.4.2 懒加载 105
6.5 Bean的生命周期 106
6.6 注入Bean的属性值 107
6.7 自动注入 111
6.7.1 自动注入 112
6.7.2 设置全局自动注入 113
6.8 加载多个Spring配置文件 113
第7章 Spring JDBC 115
7.1 Spring JDBC简介 115
7.2 Spring JDBC模块 116
7.3 JdbcTemplate类 117
7.3.1 execute()方法 117
7.3.2 update()方法 118
7.3.3 queryForObject()方法 118
7.3.4 queryForList()方法 119
7.4 Spring JDBC示例 119
7.4.1 架构设计 119
7.4.2 开发步骤 120
第8章 Spring优化配置 131
8.1 Annotation-config 131
8.1.1 @Resource 132
8.1.2 @Autowired 133
8.1.3 @Qualifier 133
8.1.4 **次重构 133
8.2 Component-scan 135
8.2.1 @Scope 136
8.2.2 @PostConstruct和@PreDestroy 136
8.2.3 第二次重构 137
8.3 Java-based 139
第9章 Spring测试 145
9.1 JUnit对Spring进行单元测试的问题 146
9.2 Spring Test 149
第10章 Spring AOP 154
10.1 体验AOP的神奇之旅 154
10.1.1 AspectJ表达式 161
10.1.2 Advice类型 161
10.2 代理(Proxy) 162
10.3 声明式事务 164
10.3.1 准备环境 164
10.3.2 测试1:不使用事务注册用户(一) 171
10.3.3 测试2:不使用事务注册用户(二) 172
10.3.4 测试3:在事务中注册用户(一) 172
10.3.5 测试4:在事务中注册用户(二) 173
10.3.6 Spring事务的提交行为 173
10.3.7 测试5:在事务中抛出Exception异常 174
10.3.8 不需要事务管理的方法 175
10.3.9 事务的传播行为 176
10.3.10 事务的隔离性 177
第11章 Spring MVC简介 178
11.1 Spring MVC介绍 178
11.2 Web编程的过程 178
11.3 Spring MVC架构 180
11.4 Spring MVC组件 181
11.5 Spring MVC入门实战 181
11.5.1 创建maven项目 181
11.5.2 配置pom.xml 182
11.5.3 pom文件中引入Spring依赖包 183
11.5.4 配置DispatcherServlet 184
11.5.5 创建Controller 185
11.5.6 创建视图188
11.5.7 启动服务器运行189
11.5.8 使用Tomcat maven plugin 189
第12章 Spring MVC控制器 193
12.1 DispatcherServlet 193
12.2 HandlerMapping与HandlerAdapter 195
12.2.1 HandlerMapping 195
12.2.2 HandlerAdapter 195
12.3 Controller 196
12.3.1 @Controller 196
12.3.2 @RequestMapping 196
12.3.3 RESTful风格的URL 198
12.3.4 静态资源访问 200
12.4 处理器方法 200
12.4.1 获取请求数据 201
12.4.2 参数绑定与类型转换 203
12.4.3 数据校验 208
12.4.4 @ModelAttribute 210
12.4.5 中文乱码处理 212
12.5 返回值处理器 213
12.5.1 返回值类型 213
12.5.2 @ResponseBody与@RestController 215
12,5.3 重定向与请求转发 217
12.5.4 RedirectAttributes 218
第13章 SpringMVC拦截器 220
13.1 Handlerlnterceptor接口 220
13.2 HandlerlnterceptorAdapter抽象类 221
13.3 自定义拦截器实现步骤 222
13.4 拦截器链 224
13.5 @ControllerAdvice与统一异常处理 227
第14章 视图解析器与标签库 230
14.1 视图解析器 230
14.2 mvc:view-controller 233
14.3 Spring MVC JSP标签库 234
第15章 SSM框架整合 248
15.1 准备数据库 248
15.2 创建Spring项目 249
15.3 配置依赖的jar包 251
15.4 配置数据库连接 253
15.5 配置MyBatis 255
15.6 启动Spring容器 256
15.7 编写代码 257
15.8 运行测试 260
第16章 Spring Boot快速入门 261
16.1 Spring Boot介绍 261
16.2 创建Spring Boot项目 262
16.2.1 使用start.spring.io创建项目 262
16.2.2 使用STS工具创建项目 264
16.3 Spring Boot之Hello World 265
16.4 Spring Boot应用启动 265
第17章 Spring Boot自动配置 268
17.1 Spring Boot启动 268
17.2 @SpringBootApplication 273
17.3 Web容器启动过程 276
17.4 Spring MVC启动过程 276
第18章 Spring Boot JSP视图 280
18.1 准备项目结构 280
18.2 Spring Boot配置视图 281
18.3 错误页面配置 283
第19章 Spring Boot数据访问 292
19.1 Spring Boot starter 292
19.2 spring-boot-starter-jdbc 293
19.2.1 pom.xml文件中加入依赖 294
19.2.2 配置 294
19.2.3 编写测试用例验证是否正确 295
19.2.4 使用Druid连接池 296
19.3 mybatis-spring-boot-starter 297
19.3.1 在pom中加入依赖 2
展开全部

节选

第1章 走进MyBatis 【本章内容】 1.MyBatis 简介 2.传统JDBC的问题 3.MyBatis示例程序 【能力目标】 1.能够搭建MyBatis运行环境 2.使用MyBatis添加数据 3.使用MyBatis修改数据 4.使用MyBatis查询数据 5.使用MyBatis删除数据 现在国内的软件公司在开发软件时都使用框架技术进行开发,因此框架技术是十分重要的。为更好地理解框架的概念,现在思考一个问题。 企业的HR —般让面试者按照企业的简历模板填写简历,这样做有哪些好处呢? 不用考虑布局、排版等问题,提高了简历制作效率;可专心将精力放在简历的内容上,使得简历质量更有保障;应聘者的简历结构统一,HR阅读简历会很方便,使用了简历模板,新手也可以做出很专业的简历。 如同制作简历一样,软件开发中的框架是一个应用程序的半成品,框架是成熟的、可复用的、不断升级的组件。框架已经帮我们实现了应用程序中的共性问题,我们只需要在框架上完成应用程序中的个性问题。使用框架,开发人员可以专心在业务逻辑的实现上,保证核心业务逻辑的开发质量。使用框架,使得程序开发结构统一、易于学习、易于维护。框架体现了前人的经验和智慧,可以帮助新手写出稳健、性能优良的高质量程序。 本书讲解时下流行的MyBatis框架、Spring框架、Spring MVC框架,这三个框架的整合用于开发Web应用程序,业界称这三个框架的组合为SSM框架。 1.1 什么是MyBatis MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJO (Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 MyBatis本是Apache的一个开源项目ffiatis,2010年这个项目由Apache Software Foundation迁移到了Google Code,并且改名为MyBatis,实质上MyBatis对iBatis进行一些改进。 MyBatis通过XML 或注解的方式将要执行的各种statement (statement、preparedStatemnt、CallableStatement)配置起来,并通过Java对象和statement中的SQL进行映射生成*终执行的SQL语句,*后由MyBatis框架执行SQL并将结果映射成PO(persisent object)并返回。本书的案例是基于MyBatis 3.4.5版本基础上讲解的。 MyBatis中文官网网址是,官网提供了大量的学习资源,如图1.1所示。 图1.1 MyBatis官网学习资源 1.2 传统JDBC编程的问题 既然MyBatis是持久层框架,而传统的持久层是由JDBC实现的,那么我们就来分析传统JDBC存在哪些问题。传统JDBC程序是指直接使用JDBC组件操作数据库的程序,下面的代码展示了在Java应用程序开发中,使用传统JDBC程序开发操作数据库的代码。 public static void main(String[] args){ Connection connection = null; PreparedStatement preparedStatement = null; ResultSet rs = null; try { //加载数据库驱动 Class . forName (”com.mysql. jdbc. Driver"); //创建数据库连接对象 Connection = DriverManager,getConnection(njdbc:mysql:// localhost:3306/dbname","root","root"); //定义sql语句 String sql ="select * from userlnfo where username =?*; //创建statement对象 preparedStatement = connection.prepareStatement(sql); //设置SQL语句参数值 preparedStatement. set String (l,"林冲"); //执行SQL语句并获取结果 rs =preparedStatement.executeQuery (); //解析查询结果集 while(rs.next 0){ System.out.println(rs.getString("idn); System.out.println(rs.getString("username"); } } catch (Exception e){ e.printStackTrace0; }finally{ //释放资源 if(rs!=null){ try { rs. close (); } catch (SQLException e){ e.printStackTrace0; } } if(preparedStatement!=null){ try { preparedStatement.close(); } catch (SQLException e){ e.printStackTrace0; } } if(connection!=null){ try { connection.close 0; } catch (SQLException e){ e. printStackTrace (); } } } } 传统的JDBC编程步骤如下: (1)加载数据库驱动; (2)创建数据库连接对象; (3)定义SQL语句; (4)创建statement 对象; (5)设置SQL语句参数值; (6)执行SQL语句并获取结果; (7)解析查询结果集; (8)释放资源。 通过传统JDBC程序分析,发现如下问题: (1)数据库连接对象的创建、释放频繁造成系统资源浪费,从而影响系统性能。 (2)SQL语句编写在Java代码中,这种硬编码造成代码不易维护,当SQL语句变动时需要修改Java源代码。 (3)使用PreparedStatement接口向占位符传参数存在硬编码。因为SQL语句的where条件中占位符的个数可能会变化,修改SQL还要修改Java源代码,系统不易维护。 (4)对结果集解析存在硬编码。SQL语句若发生变化会导致解析结果集的代码也要随之变化,系统不易维护。 1.3 MyBatis 架构 MyBatis是优秀的持久层框架,它能够解决JDBC编程中存在的问题。接下来先了解 MyBatis的架构,如图1.2所示。 图1.2是MyBatis的整体架构,从上至下依次的作用如下: (l)SqlMapConfig.xml是配置文件,此文件作为MyBatis的全局配置文件,配置了MyBatis 的运行环境信息。 图1.2 MyBatis 架构 (2)mapper.xml是映射文件,在映射文件中配置了操作数据库的SQL语句。映射文件需要在配置文件SqlMapConfig.xml中加载。 (3)通过MyBatis环境配置信息构造SqlSessionFactory对象,SqlSessionFactory是会话工厂对象,用于创建SqlSession对象。 (4)SqlSession是会话对象,会话对象用于执行SQL语句。 (5)MyBatis底层自定义了Executor执行器接口来操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。 (6)MappedStatement也是MyBatis的一个底层封装对象,它包装了 MyBatis配置信息及SQL映射信息等。mapper.xml文件中一个SQL语句对应一个Mapped Statement对象,SQL 语句的id就是Mapped Statement对象的id。 (7)输入参数映射。MappedStatement对象对SQL语句的输入参数进行映射,输入参数的类型包括HashMap、基本类型、POK)。Executor通过Mapped Statement在执行SQL语句前将输入的Java对象映射至SQL语句中。输入参数映射就是JDBC编程中对preparedStatement 设置参数。 (8)输出参数映射。MappedStatement对象对SQL语句的输出参数进行映射,输出参数的类型包括HashMap、基本类型、POJO。Executor通过Mapped Statement在执行SQL语句后将输出结果映射至Java对象中。输出结果映射过程相当于JDBC编程中对结果集的解析处理过程。 1.4 MyBatis示例程序 电子商务网站的功能包 1.4.1 需求描述 接下来以开发在线订购商品的电子商务网站为例讲解MyBatis。电子商务网站的功能包括用户管理、商品管理、订单管理。用户管理模块的具体业务包括: (1)根据用户id查询用户; (2)根据用户名模糊查询用户; (3)添加用户; (4)更新用户; (5)删除用户。 1.4.2 表设计和数据初始化 根据电子商务网站的需求设计数据库。在MySQL数据库中创建数据库命名为eshop,在eshop数据库中创建用户表命名为userlnfo,创建商品表命名为goods,创建订单表命名为orders,创建订单明细表命名为orderDetail。表结构设计如图1.3所示。 图1.3 电子商务网站表结构设计

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航