第1章--JDBC JDBC基础 通过Java Database Connectivity可以实现Java程序对后端数据库的访问 一个完整的数据库部署架构,通常是由客户端和服务器端两部分组成 客户端封装数据库请求,并发送给服务器端,服务器端执行完毕后将结果返回给客户端 常见客户端工具: MySQL Workbench(图形化工具操作简单,但只能实现简单的查询) JDBC(驱动程序jar包) 命令行工具(直接敲入SQL语句进行查询) 市面上多种数据库不尽相同,学习成本高,数据库迁移的移植性 --…
第2章--数据库连接池 数据库连接池 一般而言,在实际开发中,往往不是直接使用JDBC访问后端数据库,而是使用数据库连接池的机制去管理数据库连接,来实现对后端数据库的访问. 建立Java应用程序到后端数据库的物理连接:conn = DriverManager.getConnection(...); 虽然这只是一个方法调用,但是在JDBC的驱动中,就已经完成了大量客户端与服务器端的交互 这里以MySQL数据库为例(MySQL客户端和MySQL服务器端的交互): 1. 客户端发送给服务器端TCP请求…
第3章--SQL注入与防范 SQL注入与防范 经常遇到的问题:数据安全问题,尤其是sql注入导致的数据库的安全漏洞 国内著名漏洞曝光平台:WooYun.org 数据库泄露的风险:用户信息.交易信息的泄露等 什么是SQL数据库注入? Web应用下,终端用户是无法直接访问数据库的,他们必须通过发送http请求到Java服务器,由Java服务器访问后端数据库.因此,恶意用户想要获取数据库中的数据,必须通过Java服务器来访问后端数据库而无法绕行.他们的唯一途径就是利用应用程序的漏洞,伪装自己的请求,欺…
第5章--MyBatis MyBatis入门 Abstract: 数据库框架的工作原理和使用方法(以MyBatis为例) 面向对象的世界与关系型数据库的鸿沟: 面向对象世界中的数据是对象: 关系型数据库中的数据是以行.列表示的二元表. 什么映射技术能实现对象和二元表之间的自动转换呢? --ORM (Object Relation Mapping) 持久化类与数据库表之间的映射关系:对持久化对象的操作自动转换成对关系数据库操作. 关系数据库的每一行映射为每一个对象:关系数据库的每一列映射为对象的一…
第4章--事务 事务原理与开发 事务Transaction: 什么是事务? 事务是并发控制的基本单位,指作为单个逻辑工作单元执行的一系列操作,且逻辑工作单元需满足ACID特性. i.e. 银行转账:开始交易:张三账户扣除100元:李四账户增加100元:结束交易. 事务的特性:ACID 原子性 Atomicity:整个交易必须作为一个整体来执行.(要么全部执行,要么全部不执行) 一致性 Consistency:整个交易总体资金不变 隔离性 Isolation: case1: 若张三给李四转账过程中…
期末考试 编程题 本编程题包含4个小题,覆盖知识点从基础的JDBC.连接池到MyBatis. 1(10分) 有一款在线教育产品“天天向上”主要实现了在手机上查看课程表的功能.该产品的后端系统有一张保存了所有客户课程信息的数据库表,表结构如下: 请使用JDBC编写一段程序,实现读取用户名为“ZhangSan”的同学的所有课程名称,输出到控制台终端. 答: 数据库: /usr/local/mysql/bin ./mysql -u root -p mysql> CREATE DATABASE fina…
第2章.IoC容器 IoC容器概述 abstract: 介绍IoC和bean的用处和使用 IoC容器处于整个Spring框架中比较核心的位置:Core Container: Beans, Core, Context, SpEL 为上层AOP/Aspects/Instrumentation/Messaging提供支持 IoC容器的用途: 创建对象的依赖,最后组装成所需的业务对象 容器通过业务对象和配置(application-context.xml; xxxController.java)-->生…
第1章.Spring概述 Spring概述 The Spring Framework is a lightweight solution and a potential one-stop-shop for building your enterprise-ready applications. 特点:轻量级.一站式.开发框架 历史: 2002 Rod Johnson, Apache 2.0 License 初始版, an idea of Spring came out due to the ba…
第3章.Servlet应用 转发与重定向 转发:浏览器发送资源请求到ServletA后,ServletA传递请求给ServletB,ServletB生成响应后返回给浏览器. 请求转发:forward:将当前的request和response对象交给指定的web组件处理 这个过程中浏览器只发了一次请求接收了一次响应(浏览器并不知道转发,地址栏url不变) 1. 获取转发对象RequestDispatcher--由Servlet容器创建,用于封装由路径所标志的服务器资源: 2. 然后调用转发对象中的…
第2章--Cookie与Session Cookie与Session 浏览器输入地址--HTTP请求--Servlet--HTTP响应--浏览器接收 会话(session):打开浏览器,打开一系列页面,关闭浏览器 使用场景: 网购网站的偏好记录 网站的自动登录 浏览记录,如欢迎标语“xxx再次回来” 原理:客户端/服务器端保存会话数据:Cookie(浏览器端)/Session(服务器端) Cookie: 为了辨别用于身份而储存在用户终端的key-value数据 工作流程: 浏览器发出HTTP请求…