07 2019 档案
摘要:IoC的概念 控制反转(Inversion of Control)英文缩写IoC, 即就是把创建对象的权利交给框架,是框架的重要特征。 包括:依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup) 作用:降低程序间的耦合关系 IoC前戏(会用)
阅读全文
摘要:首先我们先了解一下什么是程序的耦合,耦合指的是程序间的依赖关系。那么解耦的意思就是要降低程序间的依赖关系。在我们实际开发中:应该做到, 编译期不依赖,运行时才依赖 。 好了上面废话那么多,我们先来看一段程序。 可以看到,此时业务层的代码调用了持久层的实体类,如果我们此时没有持久层实现类,那么编译不能
阅读全文
摘要:title: 源值1.5已过时,将在未来所有发行版中删除 今天在运行maven工程时,IDEA报了一个错误,查了网上的解决方案,博主 "mapc我" 给出的解决方案是三步,但是通过本人的实践后,发现只需两步即可。 第一步:修改settings.xml 第二步:修改IDEA中module的Langua
阅读全文
摘要:Spring是什么 Spring 是分层的 Java SE/EE 应用 full stack (全栈)轻量级开源框架,以 IoC( Inverse Of Control:反转控制)和 AOP( Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Sprin
阅读全文
摘要:本文非原创,参考链接 http://www.cnblogs.com/smyhvae/p/3929585.html == 基本数据类型:比较的是值 引用数据类型:比较的是堆内存地址,他们在内存中的存放地址 注意:如果是同一个new出来的对象(在堆内存中是同一个区域),比较的结果为true,否则为fal
阅读全文
摘要:异常 在java中用类的形式对不正常情况进行了描述和封装对象。描述不正常的情况的类,就称为异常类。以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性。其实异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述。不同的问题用不同的类进行具体的
阅读全文
摘要:1. 在SqlMapconfig.xml中开启二级缓存支持 Mybatis默认开启了二级缓存,可以不用配置。 Mybatis官网: 2. 在持久层接口中使用注解配置二级缓存 3. 编写测试类 开启二级缓存后,数据库只进行了一次查询。
阅读全文
摘要:需求:使用注解方式实现,查询用户信息时,也要查询对应的账户列表。 一个用户具有多个账户信息,所以形成了用户(User)与账户(Account)之间的一对多关系。 1. User实体类中加入 2. 编写用户的持久层接口并使用注解配置 3. 编写账户的持久层接口并使用注解配置 4. 编写测试方法
阅读全文
摘要:复杂关系映射的注解说明 实体类属性和数据库表中列名不一致的时候,使用 注解。 举例: 下面详细介绍一下 注解的参数: 基于注解开发一对一的查询配置 1. 添加Account实体类 2. 编写Account账户的持久层接口并使用注解配置 3. 测试一对一关联及延迟加载
阅读全文
摘要:问题: 在一对多中,当我们有一个用户,它有100个账户。 在查询用户时,用户下的账户信息是,什么时候用,什么时候再查询。 在查询账户时,账户的所属用户信息应该是随着账户查询时再查询出来。 什么是延迟加载 延迟加载 在真正使用数据时才发起查询,不用的时候不查询。按需加载(懒加载) 立即加载 不管用不用
阅读全文
摘要:创建步骤: 1. 创建maven工程,什么都不选就ok,并导入坐标; 2. 编写User实体类,java目录下创建com.ben.domain包,创建User实体类 3. 使用注解方式编写持久层接口 4. 在resources文件夹中,创建Mybatis的主配置文件SqlMapConfig.xml;
阅读全文
摘要:Mybatis的缓存 缓存基本概念 缓存是存在于内存中的临时数据 为什么用缓存?减少和数据库的交互次数,提高执行效率。 什么地方用缓存? | 条件 | 情况 | | | | | 适用于缓存 | 经常查询并且不经常改变的,数据的正确与否对最终结果影响不大的 | | 不适用于缓存 | 经常改变的数据,数
阅读全文
摘要:多对多 需求: 用户和角色 一个用户可以有多个角色 一个角色可以赋予多个用户 分析: 1. User表和Role表具有多对多关系,需要使用中间表,中间表中包含各自的主键,在中间表中是外键; 2. 建立两个实体类:用户实体类中包含对角色的集合引用,角色实体类中包含对用户的集合引用; 3. 建立
阅读全文
摘要:一对多 需求: 查询所有用户信息及用户关联的账户信息。 分析: 用户信息和他的账户信息为一对多关系,并且查询过程中如果用户没有账户信息,此时也要将用户信息查询出来,我们想到了左外连接查询比较合适。 步骤: 1. 编写SQL语句; 查询到用户信息与其对应账户信息,如图所示。 2. User类中加入 ;
阅读全文
摘要:多表操作 举例说明 多对一: 用户和订单是一对多,一个用户可以下多个订单; 订单和用户是多对一,多个订单属于同一个用户。 一对一: 人和身份证号。一个人只能有一个身份证号,一个身份证号也只能被一个人所有。 多对多: 老师和学生之间。一个学生可以被多个老师教过,一个老师可以交多个学生。 开始之前 1.
阅读全文
摘要:(会用) if标签 ``标签的 test 属性中写的是对象的属性名, 映射配置文件 持久层接口 测试文件 where标签 为了简化上面 where 1=1 的条件拼装,我们可以采用``标签来简化开发。 作用 1. 自动向sql语句中添加where关键字 2. 去掉第一个条件的and关键字 映射配置文
阅读全文
摘要:Mybatis的连接池及事务 (了解,会用) Mybatis连接池 配置的位置 主配置文件SQLMapConfig.xml中的dataSource标签,type属性就是表示采用何种连接池方式。 type的取值 POOLED: 采用传统的javax.sql.DataSource规范中的连接池,myba
阅读全文
摘要:输入映射papameterType 传递简单类型 基本类型和String我们可以直接写类型名称,也可以使用包名.类名的方式。例如:java.lang.String 传递pojo对象 Mybatis使用ognl表达式解析对象字段的值、 {}或${}括号中的值为pojo属性名称。 OGNL表达式:Obj
阅读全文
摘要:配置的内容和顺序 properties(属性) property settings(全局配置参数) setting typeAliases(类型别名) typeAliase package typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) env
阅读全文
摘要:Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。 目录结构: XML方式 创建步骤: 1. 创建maven工程,什么都不选就ok,并导入坐标; 2. 编写User实体类和
阅读全文
摘要:基于原始dao实现CRUD 需要程序员编写Dao接口和Dao实现类,即就是UserDao接口和UserDaoImpl实现类 原始Dao开发中存在以下问题: Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 调用sqlS
阅读全文
摘要:Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。 2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对
阅读全文
摘要:1. 利用navicat,导入mybatis.sql,创建两个数据表order表和user表。 sql SET FOREIGN_KEY_CHECKS=0; Table structure for DROP TABLE IF EXISTS ; CREATE TABLE ( int(11) NOT NU
阅读全文
摘要:title:关于递归你知道多少? 英文:recursion。简单理解是自己调用自己。 小试牛刀 递归的两个小案例,打印问题和阶乘问题。下面画图分析一下打印问题的案例。 画图分析: 重要规则 1. 当执行一个方法,会产生一个独立的栈空间; 2. 方法的局部变量是独立的,比如test(n),n是独立的;
阅读全文
摘要:集合遍历操作的三种方式 1. Iterator迭代器方式 2. 增强for循环 3. 普通for循环 代码如下: java public static void test3(){ ArrayList list = new ArrayList(); list.add(123); list.add("A
阅读全文
摘要:写在前面:焦虑的本质是想得太多而做得太少。 强烈推荐“费曼学习法”,什么?你不知道费曼是谁?哈哈哈,赶紧Google一下吧。 简单来说,就是学习某一个东西,将这个东西讲给别人听,用最简单的语言,让一个外行也能轻松听懂。这样才能算是掌握了这门知识。 写博客就是将自己所学的知识转化为让别人能看懂,学到知
阅读全文