Spring5——事务操作
Spring5——事务操作一、事务概念
事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败。
**事务四个特性(ACID)**:
原子性。
一致性。
隔离性。
持久性。
二、模拟事务操作环境
创建service,搭建dao,完成对象创建和注入关系。
在dao创建两个方法:多钱和少钱的方法, 在service创建转账的方法。
三、Spring事务管理概念
事务添加到JavaEE三层结构里面Service层(业务逻辑层)。
在Spring进行事务管理操作有两种方式:
编程式事务管理。
声明式事务管理(推荐使用)。
声明式事务管理:
基于注解方式(推荐使用)。
基于xml配置文件方式。
在Spring进行声明式事务管理,底层使用AOP原理。
Spring事务管理API:提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类。
四、声明式事务管理——注解方式
在Spring配置文件配置事务管理器。
在Spring配置文件,开启事务注解,引入名称空间。
开启事务注解。
五、声明式事务管理参数配 ...
Spring5——JDBCTemplate
Spring5——JDBCTemplate一、JDBCTemplate概念
Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作。
引入相关jar包。
在Spring配置文件配置数据库连接池。
配置JDBCTemplate对象,注入DataSource。
创建service类,创建dao类,在dao注入JDBCTemplate对象
二、JDBCTemplate操作数据库——添加
在dao进行数据库添加操作,调用JDBCTemplate对象里面update方法实现添加操作。
三、JDBCTemplate操作数据库——修改和删除
使用JDBCTemplate模板所实现的 “增删改”都是调用了同一个update方法。
四、JDBCTemplate操作数据库——查询返回某个值
五、JDBCTemplate操作数据库——查询返回对象
六、JDBCTemplate操作数据库——查询返回集合
七、JDBCTemplate操作数据库——批量操作
Spring5——AOP
Spring5——AOP一、AOP基本概念
面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
通俗描述:不通过修改源代码方式,在主干功能里面添加新功能。
二、AOP底层原理
AOP底层使用动态代理。
动态代理分为两种情况:
情况一:有接口情况,使用JDK动态代理;创建接口实现类代理对象,增强类的方法。
情况二:没有接口情况,使用CGLIB动态代理;创建子类的代理对象,增强类的方法。
三、AOP——JDK动态代理
使用JDK动态代理,使用Proxy类里面的方法创建代理对象。
调用newProxyInstance方法,方法有三个参数:public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h):
第一参数:类加载器。
第二参数:增强方法所在的类,这个类实现的接口,支持多个接口。
第三参数:实现这个接口InvocationHand ...
Spring5——IOC容器
Spring5——IOC容器一、IOC容器基本概念
什么是IOC(控制反转)?
把对象创建和对象之间的调用过程,交给Spring进行管理。
使用IOC目的:为了降低耦合度。
IOC底层原理:xml解析、工厂模式、反射。
二、IOC接口
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。
**Spring提供的IOC容器实现的两种方式(两个接口)**:
BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员进行使用(加载配置文件时候不会创建对象,在获取对象时才会创建对象)。
ApplicationContext接口:BeanFactory接口的子接口,提供更多更强大的功能,提供给开发人员使用(加载配置文件时候就会把在配置文件对象进行创建)。
FileSystemXmlApplicationContext:代表从src下的类路径查找。
ClassPathXmlApplicationContext:代表从盘下的具体路径查找。
ConfigurableApplicationContext:代表包含相关的扩展功能。
三、IOC ...
JavaWeb——JSTL标签库
一、JSTL标签库1. 基础知识
JSTL标签库全称是指JSP Standard Tag Library JSP标准标签库。是一个不断完善的开放源代码的JSP标签库。 EL表达式主要是为了替换jsp中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个jsp页面变得更佳简洁。
JSTL由五个不同功能的标签库组成。
功能范围
URI
前缀
核心标签库–重点
http://java.sun.com/jsp/jstl/core
c
格式化
http://java.sun.com/jsp/jstl/fmt
fmt
函数
http://java.sun.com/jsp/jstl/functions
fn
数据库(不使用)
http://java.sun.com/jsp/jstl/sql
sql
XML(不使用)
http://java.sun.com/jsp/jstl/xml
x
2. JSTL标签库的使用步骤
先导入JSTL的jar包。
使用taglib指令引入标。
3. set标签
4. if标签
5. choose标签
6. forEac ...
JavaWeb——Listener监听器
一、Listener监听器1. 基本概念
Listener监听器它是JavaWeb的三大组件之一。JavaWeb的三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。
Listener它是JavaEE的规范,就是接口。
监听器的作用是,监听某种事物的变化。然后通过回调函数,反馈给客户(程序)做一些相应的处理。
2. 代码实现
ServletContextListener它可以监听ServletContext对象的创建和销毁。ServletContext对象在web工程启动的时候创建,在web工程停止的时候销毁。监听到创建和销毁之后都会分别调用ServletContextListener监听器的方法反馈。两种方法如下。
如何使用ServletContextListener监听器监听ServletContext对象。使用步骤如下:
编写一个类去实现ServletContextListener。
实现其两个回调方法。
到web.xml中去配置监听器。
监听器实现类如下。
web.xml中的配置如下。
JavaWeb——jQuery
一、jQuery1. jQuery介绍
jQuery,也就是JavaScript和查询,它就是辅助JavaScript开发的js类库。
它的核心思想是write less,do more(写得更少,做得更多),所以它实现了很多浏览器的兼容问题。
jQuery是免费开源的,jQuery的语法设计可以使开发更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。
jQuery对象默认命名以$符打头。使用jQuery之前需要引入jQuery库。
2. jQuery核心函数
$是jQuery的核心函数,能完成jQuery的很多功能。$()就是调用$这个函数。
传入参数为函数时:表示页面加载完成之后。相当于window.onload = function(){}。
传入参数为HTML字符串时:会对我们创建这个HTML标签对象。
传入参数为选择器字符串时:
$(“#id属性值”):id选择器,根据id查询标签对象。
$(“标签名”):标签名选择器,根据指定的标签名查询标签对象。
$(“.class属性值”):类型选择器,可以根据class ...
方格取数
方格取数一、思路
二、代码1234567891011121314151617181920212223242526272829303132#include <iostream>#include <algorithm>using namespace std;const int N = 15;int n;int w[N][N];int f[N * 2][N][N];int main() { scanf("%d", &n); int a, b, c; while (cin >> a >> b >> c, a || b || c) w[a][b] = c; for (int k = 2; k <= n + n; k++) for (int i1 = 1; i1 <= n; i1++) for (int i2 = 1; i2 <= n; i2++) { int j1 = k - i1, ...
Java虚拟机(JVM)整理
一、Java内存区域1. 说一下JVM的主要组成部分及其作用?
JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。
Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)来装载class文件到Runtime data area中的method area。
Execution engine(执行引擎):执行classes中的指令。
Native Interface(本地接口):与native libraries交互,是其它编程语言交互的接口。
Runtime data area(运行时数据区域):这就是我们常说的JVM的内存。
作用:首先通过编译器把Java代码转换成字节码,类加载器(ClassLoader)再把字节码加载到内存中,将其放在运行时数据区(Runtime data area)的方法区内,而字节码文件只是JVM的一套指令集规范,并不能直接交给底层 ...