08 2020 档案

摘要:maven工程默认的jdk是5,每次新改动依赖或者新建maven工程时都需要改java编译器,但在pom配置里加入 <properties> <maven.compiler.source>1.11</maven.compiler.source> <maven.compiler.target>1.11 阅读全文
posted @ 2020-08-30 23:46 艾尔夏尔-Layton 阅读(249) 评论(0) 推荐(0) 编辑
摘要:这次我们来实现一对多查询的实现,要求在查询user时返回其附属的所有account。 我们来到IUserDao,方法还是IUserDao,加点注释 我们的实体类也要加入一对多的关系映射,也就是加入从表的集合,并且生成它的getset方法 因为不是所有人都有账户,我们的sql语句就要改动一下,同时我们 阅读全文
posted @ 2020-08-30 23:29 艾尔夏尔-Layton 阅读(299) 评论(0) 推荐(0) 编辑
摘要:前期工作 首先我们建立一张用户表,一张账户表,使用户表和账户表之间实现一对多的关系,用户表我们之前已经创好了是user,现在我们来创账户表,账户表的外键是用户表的id 然后我们把之前的动态sql项目拷贝一份,dao接口只留这些 把user实体类的成员名改成和表的列名一样,然后生成他们的get,set 阅读全文
posted @ 2020-08-30 16:49 艾尔夏尔-Layton 阅读(279) 评论(0) 推荐(0) 编辑
摘要:简述 sql语句是支持动态查询的,支持if,when等标签进行判断。 我们现在新建个工程用于动态sql语句的实现。 <if>标签 首先我们在dao接口新建个方法,这个方法用于根据传入的参数进行查询 然后我们在xml文档写我们的配置,在写sql语句的时候我们就要用到动态sql的标签<if>,if标签里 阅读全文
posted @ 2020-08-26 23:04 艾尔夏尔-Layton 阅读(113) 评论(0) 推荐(0) 编辑
摘要:MyBatis的事务处理是通过,SqlSession对象的commit和rollback方法实现事务的提交和回滚。 我们从sqlsession的commit一路点进去跟踪,找到的最后是调用connection的commit方法 在执行日志里我们看到执行前把事务自动提交设置为了false 其实我们在创 阅读全文
posted @ 2020-08-24 11:39 艾尔夏尔-Layton 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:什么是事务 事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行,在关系数据库中,一个事务可以是一条SQL语句、一组SQL 阅读全文
posted @ 2020-08-23 23:22 艾尔夏尔-Layton 阅读(98) 评论(0) 推荐(0) 编辑
摘要:之前我们讲过,在xml文档中的parameterType可以随便写,可以是int,INT,INTEGER等,那是因为这些名字都被注册了 在sqlmapconfig中,我们可以自己定义个别名 现在在dao接口的xml配置文件里可以直接写user这个别名了 拿查询所有测一下,完全没有问题 同时还有另一种 阅读全文
posted @ 2020-08-22 21:23 艾尔夏尔-Layton 阅读(831) 评论(0) 推荐(0) 编辑
摘要:之前说过我们实体类的属性名和数据库列名是一致的,那如果是不一致的呢 现在我们再把测试类中相关的代码改好 还有一个地方就是我们的xml配置,我们把成员变量名改了,就找不到keyProperty,还有OGNL表达式找不到相关成员变量 所以我们把相关的成员变量名改了 现在我们的更新,保存的操作都能正常执行 阅读全文
posted @ 2020-08-21 14:14 艾尔夏尔-Layton 阅读(690) 评论(0) 推荐(0) 编辑
摘要:在我们xml的配置中,parameterType用于表示参数的类型,这里可以传int,也可以传类,MyBatis用ognl表达式解析对象字段的值 OGNL表示式是阿帕奇开发出来的,全称叫Object Graphic Navigation Language——对象图导航语言。它通过对象的取值方法获取数 阅读全文
posted @ 2020-08-20 23:16 艾尔夏尔-Layton 阅读(3862) 评论(0) 推荐(0) 编辑
摘要:简述 当我们插入一条元组时,因为id是自增长的,所以我们无需指定id,那么怎么知道我刚插进去的元组的id是多少呢。 这是我们用到了这条sql语句——SELECT LAST_INSERT_ID();获得上次插入的id 我们运行一下 可以看到我们刚插入的元组的id 实现 我们在xml配置里干这件事 ke 阅读全文
posted @ 2020-08-19 15:24 艾尔夏尔-Layton 阅读(167) 评论(0) 推荐(0) 编辑
摘要:查询总记录条数 和前面的差不多,就是sql语句变了 这里的返回值类型是int,没有参数 写一下测试类 打印出来是6个,奈斯~ 其他的avg,min都是这样实现,这里就不敲了 阅读全文
posted @ 2020-08-19 15:03 艾尔夏尔-Layton 阅读(2174) 评论(0) 推荐(0) 编辑
摘要:特定查询 首先我们在dao接口加入我们的查询一个方法,根据用户id查询用户信息 然后我们加入xml的配置,注意参数类型还是int,返回类型是我们的User类 然后我们写我们的测试方法 运行一下,奈斯! 模糊查询 来写方法 来写xml,注意这里调用的地方是没有提供百分号的 所以在测试类那里把百分号加上 阅读全文
posted @ 2020-08-19 14:43 艾尔夏尔-Layton 阅读(163) 评论(0) 推荐(0) 编辑
摘要:简述 之前的学习中我们学会了简单的查询,这章内容我们开搞增删查改。 查询 首先我们把之前基本的基于xml配置的项目拷过来 然后我们写一个测试代码 执行没有任何问题 增加 我们在dao接口加入保存的方法 在IUserDao.xml里加上我们的配置,注意parameterType是参数类型,原本在jdb 阅读全文
posted @ 2020-08-18 17:12 艾尔夏尔-Layton 阅读(171) 评论(0) 推荐(0) 编辑
摘要:首先把SqlMapConfig.xml的配置改成注解形式 然后在IUserDao里加上我们的注解 然后我们新建一个注解 value就是配置sql语句的。 在我们的XMLConfigBuilder里,我们判断是xml配置还是注解配置的依据就是是否有resource属性,当我们在SqlMapConfig 阅读全文
posted @ 2020-08-14 23:52 艾尔夏尔-Layton 阅读(116) 评论(0) 推荐(0) 编辑
摘要:简述 在上两节的学习里,我们手撕代码硬刚底层,把mybatis的底层类简易地设计出来了,核心过程不外乎下图。 然后我们在此图的基础上,缺什么就设计什么,写出了如下的类和接口。 下面我们来一步一步分析MyBatis底层是怎么跑的。 配置文件的信息 首先来看我们的配置xml文档,SqlMapConfig 阅读全文
posted @ 2020-08-13 13:31 艾尔夏尔-Layton 阅读(281) 评论(0) 推荐(0) 编辑
摘要:前面说过我们用的是Proxy类的newProxyInstance方法创建代理对象,参数分别为类加载器,接口,如何代理。 代理谁就用谁的类加载器,代理谁就用谁的接口,如何代理我们新建一个MapperProxy类。 代理需要实现InvocationHandler接口,并且实现方法:invoke。 我们的 阅读全文
posted @ 2020-08-11 14:22 艾尔夏尔-Layton 阅读(156) 评论(0) 推荐(0) 编辑
摘要:Mybatis的底层 在自定义前,我们先来掌握一下MyBatis的底层流程。 首先我们分析一下这段代码: 这个方法是怎么运作的呢?创建代理对象用Proxy类的newProxyInstance方法即可创建,三个参数分别为:类加载器,代理对象要实现的接口字节码数组,如何代理 我们要在哪个参数做文章呢?明 阅读全文
posted @ 2020-08-09 21:09 艾尔夏尔-Layton 阅读(154) 评论(0) 推荐(0) 编辑
摘要:上图是我们的测试类,我们现在从这个类分析mybatis框架的设计模式。 首先是读取配置文件,那不外乎一个常见的问题——绝对路径和相对路径。用绝对路径的话你产品给到其他电脑,没你指定的盘怎么办;用相对路径的话,src/java/main/xxx.xml,如果是个web工程,一旦部署,src目录就没了( 阅读全文
posted @ 2020-08-07 00:43 艾尔夏尔-Layton 阅读(143) 评论(0) 推荐(0) 编辑
摘要:简述 mybatis框架可以通过xml文件的形式和注解的形式省去大量工作,这里我们使用注解的形式完成配置。 流程 新建一个项目,把使用xml的项目的配置文件全部拷过来,dao的xml配置可以删去。 然后在dao接口的方法上方写上注解,注解里是sql语句 然后在SqlMapConfig.xml里更改映 阅读全文
posted @ 2020-08-06 00:10 艾尔夏尔-Layton 阅读(244) 评论(0) 推荐(0) 编辑
摘要:使用框架的好处就是无需再写dao接口实现类,我们在test文件下面创造一个测试类 我们先来看看我们这个入门案例的流程 下面是测试类的源码 package com.itheima.test; import com.itheima.dao.IUserDao; import com.itheima.dom 阅读全文
posted @ 2020-08-05 22:58 艾尔夏尔-Layton 阅读(124) 评论(0) 推荐(0) 编辑
摘要:流程 首先前置工作是下载安装mysql,进idea连接mysql 打开IDE 新建项目选中maven 设置好项目名称后来到工作台 现在我们来到navicat新建一个数据库用于框架练习 我们新导入四个依赖,分别是mybatis框架,mysql配置文件,log4j日志,junit单元测试,前两者是必须的 阅读全文
posted @ 2020-08-05 00:26 艾尔夏尔-Layton 阅读(173) 评论(0) 推荐(0) 编辑
摘要:什么是框架 框架是系统的可重用设计,表现为一组抽象构建及构建实例间交互的方法。通俗来讲就是你软件的骨架,一栋楼的骨架,是你的软件的半成品,软件设计者根据自身的需要在框架上开发具体的业务需求。框架中封装了很多的细节,使开发者能使用极简的方式实现功能,提高效率。 三层架构 •表现层——适用于展示数据,例 阅读全文
posted @ 2020-08-02 15:03 艾尔夏尔-Layton 阅读(94) 评论(0) 推荐(0) 编辑
摘要:模式匹配问题 模式匹配问题是指,给出一个主串s和子串t,要求在s中寻找子串t,求出t出现的第一个位置,t又称为模式串。 BF算法 考虑最暴力的做法,我们设i为s的下标,j为t的下标。 从s[0]和t[0]开始匹配,若匹配成功则i++,j++匹配下一个。 若匹配不成功,即s[i] != t[j],则令 阅读全文
posted @ 2020-08-01 23:03 艾尔夏尔-Layton 阅读(199) 评论(0) 推荐(0) 编辑
摘要:简述 图灵,英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父,破解德国的著名密码系统Enigma。图灵对于人工智能的发展有诸多贡献,提出了一种用于判定机器是否具有智能的试验方法,即图灵试验——如果一个人使用任意一串问题去询问两个他不能看见的对象:一个是正常思维的人;一个是机器,如果经过若干询 阅读全文
posted @ 2020-08-01 21:02 艾尔夏尔-Layton 阅读(290) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示