摘要: 12.Spring声明式事务管理 使用 MyBatis-Spring 的其中一个主要原因是它允许 MyBatis 参与到 Spring 的事务管理中。 而不是给 MyBatis 创建一个新的专用事务管理器,MyBatis-Spring 借助了 Spring 中的 DataSourceTransact 阅读全文
posted @ 2020-07-16 21:53 xuan_study 阅读(189) 评论(0) 推荐(0)
摘要: 11.Spring整合Mybatis 11.1 搭建基础环境(跟着官网走) 第一步:导入相关依赖 <dependencies> <!--junit单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> 阅读全文
posted @ 2020-07-16 21:52 xuan_study 阅读(317) 评论(0) 推荐(0)
摘要: 10.AOP 什么是AOP? AOP(Aspect Oriented Programming)为面向切面编程 通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP是OOP的延续,是软件开发中的一个热点,也是Spring]框架中的一个重要内容,是函数式编程的一种衍生范型。 利用A 阅读全文
posted @ 2020-07-16 21:51 xuan_study 阅读(152) 评论(0) 推荐(0)
摘要: 9.基于Java的容器配置 这里先直接上代码例子,后面会进行总结 第一步:编写实体类 public class User implements Serializable { ​ @Value("xuan") private String name; @Value("22") private Inte 阅读全文
posted @ 2020-07-16 21:49 xuan_study 阅读(167) 评论(0) 推荐(0)
摘要: 8.Spring注解开发 使用注解开发前提 需要导入Spring的aop包 需要在配置文件开启注解支持,并且指定要扫描的包 <context:annotation-config/> <context:component-scan base-package="com.xuan.pojo"/> Spri 阅读全文
posted @ 2020-07-16 21:48 xuan_study 阅读(104) 评论(0) 推荐(0)
摘要: 7.Spring中Bean的自动装配 自动装配是Spring满足bean依赖的一种方式! Spring会在上下文中自动寻找,并自动给bean装配属性! 在Spring中有三种装配的方式 在xml中显示的配置 在java中显示配置 隐式的自动装配bean【重要】 7.1 测试自动装配 搭建环境 第一步 阅读全文
posted @ 2020-07-16 21:47 xuan_study 阅读(394) 评论(0) 推荐(0)
摘要: 6.依赖注入(Dependency Injection) 依赖:bean对象的创建依赖容器 注入:bean对象所有属性,由容器注入 6.1 构造函数注入 参考第四点创建对象的方式 构造函数注入分为 无参构造注入 有参构造注入 6.2 基于Setter的依赖注入(重点) 其实我们在一开始了解IOC思想 阅读全文
posted @ 2020-07-16 21:46 xuan_study 阅读(266) 评论(0) 推荐(0)
摘要: 5.Spring核心配置文件的相关配置 5.1 bean 其实bean也是我们最熟悉的,每注册一个bean就是给spring的IOC容器中添加一个对象,在spring初始化的时候就已经帮我们创建好了,我们需要用的时候直接调用就行了。 几个重要的属性介绍: id:bean的唯一标识符,也即是对象的变量 阅读全文
posted @ 2020-07-16 21:45 xuan_study 阅读(477) 评论(0) 推荐(0)
摘要: 4.IOC创建对象方式 4.1 使用无参构造创建对象(默认) 测试方式(通过给实体类设置有参构造) public User(String name, Integer age) { this.name = name; this.age = age; } 执行测试方法 public class Test 阅读全文
posted @ 2020-07-16 21:43 xuan_study 阅读(203) 评论(0) 推荐(0)
摘要: 3.Spring入门程序 第一步:编写实体类 package com.xuan.pojo; ​ import java.io.Serializable; ​ /** * xuan * 2020/7/15 * 1870136088@qq.com **/ public class User implem 阅读全文
posted @ 2020-07-16 21:42 xuan_study 阅读(132) 评论(0) 推荐(0)
摘要: 2.SpringIOC思想 2.1 聊聊我们传统的service、dao层 第一步:我们试着写一个简单的例子 dao层我们写接口和实现类 public interface UserDao { ​ void getName(); } public class UserDaoImpl implement 阅读全文
posted @ 2020-07-16 21:41 xuan_study 阅读(88) 评论(0) 推荐(0)
摘要: 1.Spring简介 1.1 什么是Spring spring核心:Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。 Spring框架是由于软件开发的复杂性而创建的。 Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。 然而,Spring的用途不 阅读全文
posted @ 2020-07-16 21:40 xuan_study 阅读(167) 评论(0) 推荐(0)
摘要: 13.光脚造飞机自定义MyBatis 首先Mybatis最重要的几个类和接口 class Resources(加载配置文件的类) class SqlSessionFactoryBuilder(创建SqlSessionFactory工厂类) interface SqlSessionFactory(创建 阅读全文
posted @ 2020-07-16 21:36 xuan_study 阅读(182) 评论(0) 推荐(0)
摘要: 12.MyBatis缓存 什么是缓存?为什么要缓存?哪些数据能缓存? 存在内存中的临时数据 缓存是一般的ORM 框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力。 经常查询又不经常改变的数据适合缓存 Mybatis一级缓存: 默认情况下是开启的;(SqlSession级别的缓存) 本地缓 阅读全文
posted @ 2020-07-16 21:34 xuan_study 阅读(160) 评论(0) 推荐(0)
摘要: 11.动态sql 什么是动态sql? 动态 SQL 是 MyBatis 的强大特性之一。 在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大的基于 OGNL 的表达式,MyBatis 3 替换了之前的大部分元素,大大精简了元素种类,现在要学习的元素种类比原来的一半还要少。 if 阅读全文
posted @ 2020-07-16 21:33 xuan_study 阅读(312) 评论(0) 推荐(0)
摘要: 方法一: 结果嵌套处理 子查询的由于比较繁琐就不写了 具体可以看上面的多对一 实现过程基本差不多 这里的关键就是配置文件的编写collection标签的使用 第一步:实体类的编写 @Data @AllArgsConstructor @NoArgsConstructor public class St 阅读全文
posted @ 2020-07-16 21:32 xuan_study 阅读(114) 评论(0) 推荐(0)
摘要: 9.1 多对一需求代码编写 需求:查询所有学生信息,以及对应的老师信息 方法一:按照查询嵌套处理(子查询) sql语句:select s.id,s.name,t.id from student s where t.id=(select id from teacher ) 第一步:编写mapper接口 阅读全文
posted @ 2020-07-16 21:31 xuan_study 阅读(181) 评论(0) 推荐(0)
摘要: 多对一 什么是多对一? 举一个学生和老师的例子,一个老师可以教多个学生,同时多个学生可以被一个老师教 对于学生而言,多个学生关联一个老师 对于老师而言是一个集合(集合里面包含多个学生) association–:一个复杂类型的关联;许多结果将包装成这种类型 嵌套结果映射 – 关联可以是 `resul 阅读全文
posted @ 2020-07-16 21:30 xuan_study 阅读(285) 评论(0) 推荐(0)
摘要: 8.1简单测试注解开发 第一步:编写接口(加上sql语句) //查询全部方法 @Select("select * from user") List<User> findAll() throws Exception; 第二步:配置mybatis-config.xml中mapper映射(映射到接口所在类 阅读全文
posted @ 2020-07-16 21:28 xuan_study 阅读(110) 评论(0) 推荐(0)
摘要: 为什么要分页? 因为如果数据过多不分页的话必然会增大服务器内存的负载,降低了系统的运行速度。 mybatis几种分页方式: 7.1 SQL分页 第一步:编写接口和基本的配置文件 //mybatis接口 List<User> findByLimit(Map<String,Object> map)thr 阅读全文
posted @ 2020-07-16 21:27 xuan_study 阅读(116) 评论(0) 推荐(0)
摘要: 6.1日志工厂 Mybatis 通过使用内置的日志工厂提供日志功能。内置日志工厂将会把日志工作委托给下面的实现之一: SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging MyBatis 内置日志工厂会基于运行时检测信息选择日志委托实现。 它会 阅读全文
posted @ 2020-07-16 21:26 xuan_study 阅读(198) 评论(0) 推荐(0)
摘要: ResultMap结果映射(用于解决属性名和字段名不一致的问题) resultMap 元素是 MyBatis 中最重要最强大的元素。 ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。 第一种解决方法:起别名(as) 前者是数据库字段后者是 阅读全文
posted @ 2020-07-16 21:25 xuan_study 阅读(603) 评论(0) 推荐(0)
摘要: 4.1 核心配置文件 mybati-config.xml MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下: configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) ty 阅读全文
posted @ 2020-07-16 21:24 xuan_study 阅读(267) 评论(0) 推荐(0)
摘要: 何为CRUD? 我们通常称为增删改查 增加(Create)、读取(Retrieve)、更新(Update)和删除(Delete) 3.1 Select语句 第一步:编写接口 //查询方法 List<User> fingAll() throws Exception; ​ User findById(I 阅读全文
posted @ 2020-07-16 21:23 xuan_study 阅读(133) 评论(0) 推荐(0)
摘要: 2.3MyBatis三巨头介绍作用域(Scope)和生命周期 为什么要理解生命周期? 理解我们之前讨论过的不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题。 对象生命周期和依赖注入框架 依赖注入框架可以创建线程安全的、基于事务的 SqlSession 和映射器,并将它们直 阅读全文
posted @ 2020-07-16 21:22 xuan_study 阅读(184) 评论(0) 推荐(0)
摘要: 2.1Mybatis入门步骤方法一 搭建环境 >导入依赖 >编写代码 >测试 2.1.1创建数据库 第一步:由于是持久层做数据交互的所以需要用到数据库 创建数据库 CREATE TABLE `user` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, 阅读全文
posted @ 2020-07-16 21:20 xuan_study 阅读(168) 评论(0) 推荐(0)
摘要: 1.1 是什么MyBatis? 答:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。 MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO( 阅读全文
posted @ 2020-07-16 21:18 xuan_study 阅读(100) 评论(0) 推荐(0)