Spring5之事务的操作
一、事务的操作(事务的概念)1、事务 事务是数据库操作的基本单元,逻辑上的一组操作,要么都成功,如果一个失败所有的操作都失败 典型场景:银行转账 lucy 转账 100 元 给 mary lucy 少 100 , mary 多 100 2、事物四个特征(ACID) 原子性 一致性 隔离性 持久性 二、事务操作(搭建事务操作环境) 1、创建数据库表,添加记录 2、创建 service, 搭建 dao, 完成对象的创建和注入关系 service 注入 dao, 在 dao 注入 Jdbctemplate, 在 JdbcTemplate 注入 DataSource 123456789101112@Servicepublic class UserService { //注入 dao @Autowired private UserDao userDao;}@Repositorypublic class UserDaoImpl implements UserDao { @Autowiredprivate JdbcTemplate jdbcTemplat ...
Spring5之JdbcTemplate
一、JdbcTemplate(概念和准备)1、JdbcTemplate Spring 框架对 jdbc 进行封装, 使用 JdbcTemPlate 方便实现对数据库操作 2、过程准备 引入相关 jar 包 在 spring 配置文件配置数据库连接池 1234567<!--数据库连接池--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql:///user_db"/> <property name="username" value="root"/> <property name="password" value="6090" ...
Java之IO流
一、File 类的使用1、File 类的理解 ① File 类的一个对象,代表一个文件或文件目录(俗称:文件夹) ② File 类声明的砸 Java.io 包下 ③ File 类中涉及关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并涉及到写入的读取文件内容的操作。如果需要读取或写入的 ”终点“。 2、File 的实例化常用的构造器 123File(String filePath)File(String parenPath, String childPath)File(File parenFile, String childPath) 路径的分类 12相对路径:相对某个路径,指明的路径绝对路径:包含盘符在内的文件或文件目录的路径 路径分隔符 12windows 和 DOC 系统的默认使用“\”来表示UNIX 和 URL 使用“/” 来表示 二、流的分类1、流的分类 操作数据的单位:字节流、字符流 数据的流向:输入流、输出流 流的角色:节点流、处理流 图示: 2、流的体系结构 说明: 红框对应的是 IO 流中的 4 个抽象基类。 3、输入、输出的标准 ...
Spring5之AOP
一、AOP(概念)(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 (2)通俗的描述:不通修改源代码方式,在主功能里面添加新功能 (3)使用登录例子说明 AOP 图示: 二、AOP (底层原理)1、AOP 底层使用动态代理(1)有两种情况动态代理 第一种 有接口情况,使用 JDK 动态代理 创建接口实现类代理对象,增强类的方法 第二种没有接口情况,使用 CGLIB 动态代理 创建子类代理对象,增强类的方法 三、AOP(JDK 动态代理)1、使用 JDK 动态代理,使用 Proxy 类里面的方法创建代理对象 (1)调用 newProxyInstance 方法 方法有三个参数: 第一参数:类加载器 第二参数:增强方法所在的类,这个类实现的接口,支持多个接口 第三参数,实现这个接口 InvocationHandler, 创建代理对象,写增强的部分 2、编写 JDK 动态代理代码(1)创建接口,定义方法 1234public interface UserDao ...
Java集合之Collections工具类
一、Collections 工具类作用:操作 colleaction 和 Map 的工具类 二、常用方法 方法 描述 reverse(List) 反转 List 中元素的顺序 shuffle(List) 对 List 集合元素进行随机排序 sort(List) 根据元素的自然顺序对指定 List 集合元素升序排序 sort(List,Comparator) 根据指定的 Comparator 产生的顺序对 List 集合元素进行排序 swap(List,int, int) 将指定 list 集合中的 i 处元素和 j 处元素进行交换 Object max(Collection) 根据元素的自然顺序,返回给定集合中的最大元素 Object max(Collection,Comparator) 根据 Comparator 指定的顺序,返回给定集合中的最大元素 Object min(Collection) 根据元素的自然顺序,返回给定集合中的最小元素 Object min(Collection,Comparator) 根据 Comparator 指定的 ...
java之泛型
一、泛型概念所谓泛型,就是允许自定义类,接口通过一个标识类中的某个属性的类型或者是某个方法的返回值及参数类型。 这个类型参数将在使用时.(例如,继承或实现这个接口,用这个类型声明变量、创建对象时确定(即传入实际类型参数,也称类型实参))。 二、泛型的引用背景 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在 JDK1.5 之前只能把元素类型设计为 object,JDK1.5 之后使用泛型类解决。因为这个时候除了元素的类型不确定,其他的部分是确定的,例如关于这个这个元素如何保存的,如何管理等使确定的,因此此时把元素的类型设计成一个参数,这个类型参数叫做泛型。Collection,List 这个就是类型参数,即泛型。 三、泛型在集合中的使用1、没有使用泛型之前图示: 1234567891011121314151617 @Test public void test1(){ ArrayList list = new ArrayList(); //需求:存放学生的成绩 list.add(78); ...
Spring5之IOC
Spring5 介绍 Spring 是轻量级的开源的 JavaEE 框架 Spring 可以解决企业应用开发的复杂性 Spring 有两个核心部分:IOC 和 Aop (1) IOC : 控制反转,把创建对象过程给 Spring 进行管理 (2) Aop: 面向切面,不修改源代码进行功能增强 Spring 特点 (1)方便解耦,简化开发 (2)Aop 编程支持 (3)方便程序测试 (4) 方便和其他框架进行整合 (5)方便进行事务操作 (6)降低 API 开发难度 Spring5 入门案例 使用 idea 创建一个普通的 java 工程 导入 Spring5 相关的 jar 包(先去 Spring 官网下载) 创建普通类,在这个类创建普通方法 12345public class User{ public void add(){ System.out.println("add...."); }} 创建 Spring 配置文件,在配置文件配置创建的对象(bean1.xml) ...
Java常用类
今天的努力只为更好的明天。 String 类一、概述String: String 声明为 fianl 的,不可被继承。 String 实现了 Serializable 接口,表示字符串是支持序列化的。实现了 Comparable 接口,表示 String 可以进行比较大小。 String 内部定义的 fianl char[ ] value 用于储存字符串数据。 通过字面量的方式(区别new给一个字符串赋值,此时得到字符串声明在字符串常量池中)。 字符串常量池是不会存储相同的内容(使用 String 类的equals()**比较,返回true**)的字符串的。 二、String 的不可变性 说明:① 当对字符串重新赋值,需要重写指定内存中区域赋值,不能使用原有的 value 进行赋值② 当对现有的字符串进行操作时,也需要重新指定内存区域的赋值,不能使用原有的 value 进行赋值。③ 当调用 String 的 replace()方式修改指定字符串时,也需要重新指定区域赋值,不能使用原有的 value 进行赋值。 12345678910111213141516@Test ...
Java集合之Map
一、常用实现类结构 Map:双列数据:存储 key-value 键值对的数据 HashMap: 在作为 Map 的主要实现类:线程不安全,效率高;存储 null 的 key 和 value LinkedMap:保证在遍历 map 元素时,可以照添加的顺序实现遍历。 原因:在原来的 HashMap 底层结构基础上,添加了一对指针,指向前一个和后一个元素。对于频繁的遍历操作,此类执行的效率高于 HashMap。 TreeMap: 保证照添加的 key-value 对进行排序,实现排序遍历。此时考虑 key 的自然排序或定制排序,底层使用红黑树 Hashtable:作为古老实现类,线程是安全的,效率低;不能存储 null 的 key 和 value properties:常用类处理配置文件。key 和 value 都是 String 类型 HashMap 的底层: 数组 + 链表 (JDK 7.0 及之前) 数组 + 链表 + 红黑树 (JDK 8.0) 二、存储结构的理解 Map 中 key:无序的、不可重复的,使用 Set 存储的 key —》 key 所在的类要重 ...
java集合之List、Set
Collection 子接口:List 接口一、存储的数据特点 有序的、可重复的数据 二、常用的方法 方法 描述 add(Object) 增加 remove(int index)/ remove(Object obj) 删除 set(int index , object ele) 修改 get(int index) 查找 add(int index, Object ele) 插入 size() 长度 ① Itertor 迭代器 ②foreach ③ for 遍历 三、常用的实现类 Collection 接口:单例集合,用来存储一个一个对象 List 接口;存储有序的,可重复的数据。 ArrayList: 作为 List 接口的主要的实现类:线程不安全,效率高:底层使用 Objecet[] elementDate 存储 LinkedList: 对于频繁的插入、删除操作,使用此类效率比 ArraList 高:底层使用双向链表存储。 Vector: 作为 List 接口的古老实现类:线程安全,效率低:底层使用 object[] elementDate ...