SQL 的英文全称叫做 Structured Query Language,它是建立在关系型数据库基础上的一种语言,能在各个数据表之间进行连接查询(Query)。我们可以把关系模型理解成一个二维表格模型,这个二维表格是由行(row)和列(column)组成的。每一个行(row)就是一条数据,每一列(column)就是数据在某一维度的属性。SQL 实际上...

在MyBatis中,注解的目的是为了取代XML文件的配置项,而@Options注解的作用是设置如下几项:1、useCache,是否使用缓存,默认是true2、fetchSize,获取记录数的限度,默认是-1,没有条数限制3、timeout,设置超时时间,默认是-1,没有时间限制4、useGeneratedKeys,是否自动生成注解,默认是false。5...

bit类型的值是一个二进制位,更多介绍请移步:MySQL中的bit类型数据库的bit类型是通过BooleanTypeHandler来处理的,如下所示:register(JdbcType.BIT, new BooleanTypeHandler());而在BooleanTypeHandler中,是通过Java的Boolean类型数据对数据库的bit类型的列...

returnInstanceForEmptyRow属性是MyBatis 3.4.2版本新增的属性。在此之前,当返回行的所有列都是空时,MyBatis默认返回 null。当开启returnInstanceForEmptyRow设置时,MyBatis会返回一个空实例,类似这样的形式:[{"xxx1":null,"xxx2&qu...

BindingException 异常是 MyBatis 框架中自定义的异常,顾名思义指的是绑定出现问题。在 MyBatis 框架中,有很多情况下会出现绑定问题。本文主要给大家介绍一下参数绑定异常的情况,如下所示:<insert id="insertUser" parameterType="User">...

MyBatis 的核心组件主要有四个:(1)SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成 SqlSessionFactory,采用的是分步构建的 Builder 模式。(2)SqlSessionFactory(工厂接口):依靠它来生成 SqlSession,使用的是工厂模式。(3)SqlSession(会话):...

MyBatis 通过使用内置的日志工厂提供日志功能。需要注意的是,内置日志工厂并不具体实现日志功能,而是把日志工作委托给第三方:SLF4JApache Commons LoggingLog4j 2Log4j (Mybatis 3.5.9 起废弃)JDK loggingMyBatis 内置的日志工厂会使用第一个查找得到的工具(按上文列举的顺序查找)。如果...

typeHandler 的作用无论是 MyBatis 在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器被用来将获取的值以合适的方式转换成 Java 类型。typeHandler 的源码分析TypeHandler 接口主要有四个方法,如下:public void setParameter(PreparedStatement ps, in...

keyProperty 作用useGeneratedKeys = true 表示使用数据库的自增主键,而数据库的自增主键如何跟实体类的属性进行绑定呢?是通过 keyProperty 属性实现的。keyProperty 使用介绍在mybatis的配置文件中,keyProperty 和 useGeneratedKeys 往往搭配使用。useGenerate...

resultMap 元素是 MyBatis 中最重要最强大的元素,它可以让我们从JDBC ResultSets 数据提取代码中解放出来。我们的程序更可能会使用 JavaBean 或 POJO(Plain Old Java Objects,普通老式 Java 对象)作为领域模型。请看下面这个 JavaBean:public class User { ...

MyBatis事务管理的两种策略MyBatis的事务管理分为两种形式:(1)使用JDBC的事务管理机制。这种机制就是利用java.sql.Connection对象完成对事务的提交和撤销。(2)使用MANAGED的事务管理机制。此时,MyBatis自身不会去实现事务管理,而是让程序的Web容器或者Spring容器来实现对事务的管理。Mybatis事务管理...

if else 语句是我们在编写程序中常用的判断语句,用来判断是否满足条件从而执行不同的执行语句。但是,在 mybaits 中,只有 if 标签,并没有 else 标签,可以使用 chose when otherwise 代替。下面就是MyBatis中的if....else...的表示方法:<choose> <when tes...

1、Maven goal介绍Maven对构建(build)的过程进行了抽象和定义,这个过程被称为:生命周期(lifecycle)。生命周期(lifecycle)由多个阶段(phase)组成,每个阶段(phase)会挂接一个或多个目标(goal)。goal是Maven里定义任务的最小单元,goal分为两类:一类是绑定phase的,就是执行到某个phase...

本站自上线以来,帮助了无数的IT从业者,同时收获了很多的感谢和支持,但是发展过程中,也走了很多的弯路,站长深感无奈。靠着站长收徒带来的营收,支撑着网站走到了今天,所以站长十分感谢那些曾经付出真金白银的徒弟们!自2023年7月20日开始,站长决定启动:面试指导。同时,站长收徒这项传统项目正式成为历史,后续会提供学习指导(并且新增面试指导),但是不再招收新徒。

1、DOM4J的诞生背景很多人傻傻分不清DOM4J和JDOM,尤其是它们的名字更让人懵懂。其实,DOM4J与JDOM是同宗同源,而且JDOM是先祖,占据先天优势,所以起了一个好听好写的名字,叫“JDOM”。而DOM4J则是JDOM的后代分支,所以只能起了一个数学和字符夹杂的名字,叫“DOM4J”。JDOM比DOM更好用,因为它是Java原生的,前文中已...

提示:本文修订于2023年7月13日1、JDOM诞生原因因为DOM与平台和语言无关,是官方W3C 标准,并不能更好的发挥Java语言的自身特点,所以诞生了JDOM,它的目的是成为 Java 特定文档模型。2、JDOM发展历程由于是第一个 Java 特定模型,JDOM 一直得到大力推广和促进。后来,从JDOM分支延伸出来DOM4J,当然,这是后话,后面还...

提示:本文修订于2023年7月13日虽然在面试过程中,很少有考官提问Java DOM相关内容,但是掌握Java DOM操作却是很有必要,尤其是当你想做自己软件作品的时候,利用Xml实现配置信息是必不可少的环节。本文记录了我在做个人作品(分布式消息中间件)过程中的若干Java DOM经验总结,以备后续复习使用。Java DOM API给我的总体感觉是:入...

1、数组的简介数组是最基本的数据结构,它是相同数据类型的元素的集合。组成数组的各个变量称为数组的分量,也称为数组的元素,数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。2、J...

有的时候,下载了某个软件包,当解压它的时候,往往需要输入解压密码:iagreetotheeulaeula的英文全称是:End User Licence Agreement,中文含义是:最终用户许可协议。最终用户许可协议,指的是一家公司的软件与软件的使用者所达成的协议,此协议一般在软件安装时出现。最终用户许可协议的主要目的是规定用户不可以盗版软件。盗版软...

状态机,英文表示是:State Machine ,不是指一台实际机器,而是指一个数学模型,仅仅是一组约束和规范,是不同状态进行相互转换的约束和规范。状态机的数学模型包括四大部分:状态,事件,动作,转换。其中,事件来源于外界,而状态、动作和转换则与自身相关。例如,对于一扇门而言,它的状态有open和close两种。当人进门的时候,推门就是外界作用给门的一...