
框架
Ally441
这个作者很懒,什么都没留下…
展开
-
MyBatis的注解开发
CRUD操作:@Insert,@Update,@Delete,@Select@Result:实现结果集封装@Results:可以与@Result一起使用,封装结果集@ResultMap:实现引用@Results定义的封装@One:实现一对一结果集封装 @Many:实现一对多结果集封装@SelectProvider:实现动态SQL映射@CacheNamespace:实现注解二级缓存的...原创 2020-04-20 22:37:38 · 215 阅读 · 0 评论 -
MyBatis的缓存
为什么要使用缓存?减少和数据的交互次数,提高执行效率适用于缓存的场景:经常查询并且不经常改变的;数据的正确与否对最终结果影响不大的不适应于缓存的场景:经常改变的数据;数据的正确与否对最终结果影响很大的。如:商品的库存,股市的牌价MyBatis缓存MyBatis的缓存分为一级缓存和二级缓存一级缓存(默认的是支持一级缓存):指的是MyBatis中SqlSession对象的缓存,当我们执...原创 2020-04-20 21:14:09 · 258 阅读 · 1 评论 -
MyBatis的延迟加载
延迟加载:在需要用到数据时才进行加载,不需要用到数据时就不加载数据,延迟加载也称为懒加载。立即加载:不管用不用,只要一调用方法,马上发送查询。在对应的四种表关系中,一对多,多对一,一对一,多对多。一对多,多对多:通常情况下采用延迟加载多对一,一对一:通常情况下采用立即加载延迟加载:好处:先从单表查询,需要时再从关联表进行关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要...原创 2020-04-20 20:37:44 · 175 阅读 · 0 评论 -
MyBatis多表查询
表之间的关系:一对多,多对一,多对多,一对一一对一:private class Account{ private Integer id; private Integer uid; private double money; private User user; /**setter方法**/ ........ /**getter方法**/}public interface A...原创 2020-04-20 13:41:15 · 189 阅读 · 0 评论 -
MyBatis的动态SQL
<!--<if>标签:它的test属性中写的是对象的属性名,如果是包装类的对象,要使用OGNL表达式的写法,同时要注意where 1=1的作用--><select id="findByUser" resultType="user" parameterType="user"> select * from user where 1=1 <if test...原创 2020-04-19 10:13:55 · 174 阅读 · 0 评论 -
MyBatis配置和使用
基于代理Dao实现CRUD操作使用要求:持久层接口和持久层接口的映射配置必须在相同包下持久层映射配置中mapper标签的namespace属性取值必须是持久层接口的全限定类名SQL语句的配置标签、、、的id属性必须和持久层接口的方法名相同interface UserDao{ User findById(Integer userId);}/**UserDao.xml res...原创 2020-04-18 15:07:48 · 269 阅读 · 0 评论 -
spring的DI(依赖注入)
依赖注入(Dependency Injection):在Spring创建这个对象的过程中,将这个对象所依赖的属性注入进去。(依赖关系的管理以后都交给spring来维护,在当前类需要用到其他类的对象,由spring为我们提供,我们只需要在配置文件中说明。依赖关系的维护,就称之为依赖注入)依赖注入的能注入的数据:基本类型和String 其他bean类型(在配置文件中或者注解配置过的bean)...原创 2023-05-11 10:26:13 · 124 阅读 · 0 评论 -
Spring Bean管理
在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。Bean是由Spring IoC容器实例化,组装和以其他方式管理的对象。创建Bean的三种方式:使用默认构造函数创建。(类中没有默认构造函数,则对象无法创建) 使用普通工厂中的方法创建对象。(使用某个类中的方法创建对象,并存入spring容器) 使用工厂中的静态方法创建对象。(使用某...原创 2020-03-17 00:12:52 · 221 阅读 · 0 评论 -
MyBatis主配置文件-MyBatis-Config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">propert...原创 2020-03-10 07:52:11 · 200 阅读 · 0 评论 -
Spring AOP(一) AOP概念
AOP(Aspect Oriented Programming) 面向切面编程是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP(Object Oriented Programming)的延续,是软件开发的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提...原创 2019-03-14 21:38:51 · 164 阅读 · 0 评论 -
Spring AOP(二) AOP的底层实现和代码演示
AOP的底层实现:通过二种动态代理实现的,一种是jdk动态代理,另一种是cglib的动态代理//先save方法添加权限验证//JDK动态代理public interface UserDao{ public void save(){ }}public class UserDaoImpl implements UserDao{}...原创 2019-03-14 23:05:03 · 196 阅读 · 0 评论 -
Spring AOP(三) AOP通知和切面类型
Spring AOP增强类型:Spring 按照通知Advice在目标类方法的连接点位置,可以分为5类:前置通知(org.springframework.aop.MethodBeforeAdvice):在目标方法执行前实施增强后置通知(org.springframework.aop.MethodAfterAdvice):在目标方法执行后实施增强环绕通知(org.applliance.in...原创 2019-03-16 22:59:49 · 1297 阅读 · 0 评论 -
Spring AOP(四)基于AspectJ的AOP开发
实现基于AspectJ的AOP开发方式:注解方式XML方式AspectJ是一个基于Java语言的AOP框架;Spring2.0以后新增了对AspectJ切点表达式支持@AspectJ是AspectJ1.5新增功能,通过JDK1.5注解技术,可以直接在Bean类中定义切面@AspectJ提供不同的通知类型@Before 前置通知,相当于BeforeAdvice@AfterRetu...原创 2019-03-18 18:02:47 · 197 阅读 · 0 评论 -
Spring 事务管理(一)事务原则和事务类型
事务是正确执行一系列操作或动作,使得数据库从一种状态转换成另一种状态,且保证操作全部成功或者全部失败。事务原则:事务必须服从ISO/IEC所制定的ACID原则ACID原则的具体内涵如下:原子性(Atomicity):即不可分割性,事务要么全部被执行,要么全部不被执行一致性(Consistency):事务的执行使得数据库从一种正确状态转换成另一种正确状态隔离性(Isolation):在事务...原创 2019-03-20 23:21:32 · 454 阅读 · 0 评论 -
SpringMVC入门
SpringMVC是目前最好实现MVC设计模式的框架;Spring框架的一个后续产品;Spring框架的一个子模块,二者可以很好的结合使用,不需要整合。MVC设计模式:Controller:负责接受并处理请求,响应客户端 Model:模型数据,业务逻辑 View:呈现模型,与用户进行交互SpringMVC核心组件:DispatcherServlet:前置控制器。是整个流程控制中心...原创 2019-05-01 19:14:59 · 176 阅读 · 0 评论