-
Spring笔记(六) Spring整合Junit
测试类中的问题和解决思路在测试类中,每个测试方法都有以下两行代码:ApplicationContext ac = new ClassPathXmlApplicationContext(“bean.xml”);IAccountService as = ac.getBean(“accountService”,IAccountService.class);这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。解决思路分析针对上述问题,我们需要的是程序能自动帮我们创建...…
-
Spring笔记(五) Spring注解补充
经过前一篇的案例,我们发现不管是xml还是注解方式,都还会有Spring的配置文件bean.xml,该文件可以通过本节讲解的注解进行去除。现在bean.xml中还有两部分内容,一是要告知Spring要扫描的包,二是要配置runner和DataSource注解@Configuration作用:用于指定当前类是一个 spring 配置类(相当于Spring配置文件bean.xml), 当创建容器时会从该类上加 载注解。 获取容器时需要使用AnnotationApplicationConte...…
-
Spring笔记(四) 使用spring的IOC实现账户的CRUD
使用 spring 的 IOC 实现对象的管理使用 dbutils作为持久层解决方案使用 c3p0 数据源XML方式引入依赖Spring,dbutils,Mysql,C3P0,Junit<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactI...…
-
Spring笔记(三) Spring 基于注解的IOC配置
注解配置和 xml 配置要实现的功能都是一样,都是要降低程序间的耦合。只是配置的形式不一样 。准备工作 引入依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.8.RELEASE</version></de...…
-
Spring笔记(二) Spring 依赖注入
依赖注入的概念依赖注入DI(Dependency Injection )它是 spring 框架核心 ioc 的具体实现 。我们的程序在编写时, 通过控制反转, 把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。 例如:我们的业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系, 在使用 spring 之后, 就让 spring 来维护了。简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。依赖注入的...…
-
Spring笔记(一) Spring IOC
Spring概述什么是SpringSpring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IOC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。Spring...…
-
Mybatis笔记(十一) Mybatis注解开发
mybatis 的常用注解说明@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可以与@Result 一起使用,封装多个结果集@ResultMap:实现引用@Results 定义的封装@One:实现一对一结果集封装@Many:实现一对多结果集封装@SelectProvider: 实现动态 SQL 映射@CacheNamespace:实现注解二级缓存的使用使用 Mybatis 注解实现基本 CRUD...…
-
Mybatis笔记(十) Mybatis 缓存
缓存 什么是缓存 存在于内存中的临时数据 为什么使用缓存 减少和数据库的交互次数,提高执行效率 适用于缓存的情况:经常查询且不经常改变的,数据正确与否对最终结果影响不大的。 不适用于缓存的情况:经常改变的数据,数据的正确性对最终结果影响很大的。比如商品的库存,银行的汇率,股市的牌价 Mybatis的缓存像大多数的持久化框架一样, Mybatis 也提供了缓存策略,通过缓存策略来减少数据库的查询次数, 从而提高性能。Mybatis 中...…
-
Mybatis笔记(九) Mybatis延迟加载策略
什么是延时加载延迟加载:就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载.好处: 先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。延时加载需求:查询账户(Account)信息并且关联查询用户(User)信息。如果先查询账户(Account)信息即可满足要求,...…
-
Mybatis笔记(八) Mybatis中的多表查询
表之间的关系 一对多:用户和订单的关系 多对一:订单和用户的关系 一对一:人和身份证号的关系 多对多:老师和学生的关系特例:如果拿出每一个订单他都只能属于一个用户,所以Mybatis把多对一看成一对一Mybatis 多表查询本次案例主要以最为简单的用户和账户的模型来分析 Mybatis 多表关系。用户为 User 表,账户为 Account表。一个用户(User)可以有多个账户(Account)。具体关系如下:步骤: 建立两张表,用户表和账户表,让用户表和账户表有一对多的关系需要...…
-
Mybatis笔记(七) Mybatis动态SQL语句
if标签我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询。比如在 id 如果不为空时可以根据 id 查询,如果 username 不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。 持久层 Dao 接口 /*** 根据用户信息,查询用户列表* @param user* @return*/List<User> findByUser(User user); 持久层 Dao 映射配置 <selec...…
-
Mybatis笔记(六) Mybatis连接池与事务
连接池在实际开发中都会使用连接池,因为他可以减少我们获取连接所消耗的时间。连接池就是用于存储连接的一个容器,这个容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到同一个连接,该集合还必须实现队列的特点:先进先出。Mybatis中的连接池Mybatis连接池的分类可以看出 Mybatis 将它自己的数据源分为三类: UNPOOLED :不使用连接池的数据源 POOLED: 使用连接池的数据源 JNDI :使用 JNDI 实现的数据源具体结构如下:相应地, MyBatis...…
-
Mybatis笔记(五) Mybatis主配置文件SqlMapConfig.xml
SqlMapConfig.xml 中配置的内容和顺序properties(属性)在使用 properties 标签配置时,我们可以采用两种方式指定属性配置。第一种:<configuration> <!--配置属性--> <properties> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" ...…
-
Mybatis笔记(四) Mybatis参数配置及输出结果封装
Mybatis参数深入:parameterType 配置参数 使用标签的 parameterType 属性来设定。该属性的取值可以是基本类型,引用类型(例如:String 类型),还可以是实体类类型(POJO 类)。同时也可以使用实体类的包装类 基 本 类 型 和 String 我 们 可 以 直 接 写 类 型 名 称 , 也 可 以 使 用 包 名 . 类 名 的 方 式 , 例 如 :java.lang.String 实体类类型,目前我们只能使用全限定类名。究其原因,是 myb...…
-
Mybatis笔记(三) Mybatis基于代理DAO的CRUD
引入依赖、实体类、建表、Mybatis主配置文件都和上篇示例一致,所需变化的只有DAO接口和映射配置文件。保存用户 持久层接口中增加/*** 保存用户* @param user* @return 影响数据库记录的行数*/int saveUser(User user); 映射配置文件中增加<!-- 保存用户--><insert id="saveUser" parameterType="com.mg.entity.User"> insert into user...…
-
Mybatis笔记(二) Mybatis入门案例
Mybatis简介Mybatis是一个持久层框架,java语言编写的,他封装了jdbc操作的很多细节,是开发者只需要关注sql语句本身而无需关注注册驱动、创建连接等复杂过程,他使用了ORM思想实现了结果集的封装。ORM:Object Relationl Mapping对象关系映射。简单的说就是把数据库表和实体类及属性对应起来,让我们操作实体类就实现操作数据库表Mybatis入门(xml方式) 引入依赖(Mybatis,Mysql) <dependencies> ...…
-
Mybatis笔记(一) 基础知识回顾
什么是框架简单概括:框架是软件开发中的一套解决方案,不同的框架解决不同的问题。封装了很多细节,使开发者使用极简的方式就能实现功能,大大提高开发效率。软件开发中的三层架构表现层:用于展示数据业务层:用于处理数据持久层:和数据库进行交互持久层的技术解决方案 JDBC技术:Connection,PreparedStatement,ResultSet spring的JdbcTemplate:spring对JDBC的简单封装 Apache的DButils:和spring的JdbcTemplat...…
-
layUI穿梭框 transfer
transfer 组件可以进行数据的交互筛选,如:上代码:HTML:<body> <div class="layui-form layuimini-form"> <div class="layui-form-item"> <label class="layui-form-label required">选择人员</label> <div class="layui-input-blo...…