首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

MyBatis常见面试题总结

作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将POJO映射成数据库中记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。...对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。 解决:Mbatis自动将SQL执行结果射到java对象。...当实体属性名和表中字段名不一样 ,怎么办 第1种: 通过在查询sql语句中定义字段别名,让字段别名和实体属性名一致。...–- 用result属性来映射主键字段,property为实体类属性名,column为数据表中属性 -–> <result property = “orderno” column =”order_no...,如封装成一个,要写包名加名,基本数据类型则可以省略 一对1、一对多时,若有表字段相同必须写别名,不然查询结果无法正常映射,出现某属性为空或者返回结果与想象中不同,而这往往是没有报错

1.9K20

Java学习笔记-全栈-web开发-15-MyBatis

4.2.2 resultMap 如果查询出来列名和属性名不一致(即数据库字段与model字段不一致),通过定义一个resultMap将列名和pojo属性名之间作一个映射关系。...6.3 多对多 需求:查询用户信息及用户购买商品信息,要求将关联信息映射到pojopojo属性中 ?...6.4 总结 一对一:模型里面写模型(association) 一对多:模型里面写集合(collection) resultType:将查询结果按照sql列名pojo属性名一致性映射到pojo中。...resultMap:使用association和collection完成一对一和一对多高级映射(对结果有特殊映射要求)。 association:将关联查询信息映射到一个pojo对象中。...cache-ref,其他命名空间缓存配置引用 parameterMap,已废弃,老式参数映射 #和$区别: #通过占位符形式与sql拼接,能防止sql注入 用在原生sql语句不允许使用占位符时候

1.4K20

mybatis详解(全)「建议收藏」

bean,在没有注解情况下,会使用bean首字母小写限定名来作为它别名。...> resultMap(映射实体) 数据库字段名和实体类属性不相同时,无法映射到值,输出为Null。...这是因为mybatis会根据这些从数据库中查询列名,将列名转化为小写(数据库不区分大小写)去对应实体查询相应列名set方法设值,由于找不到setUserName(),所以会返回Null值。...要明确与Java对象对应列不是数据库中表列名,而是查询结果列名 解决方案有两种: 1)为列名指定别名,别名和Java实体属性名一致 2)使用结果集映射ResultMap [推荐] resultMap...作用是建立sql查询结果字段实体属性映射关系信息,将查询结果集转换为java对象,方便进一步操作,即结果集中列与Java对象中属性对应起来并值填充进去 resultMap 属性全内容如下:

1.4K30

小书MybatisPlus第7篇-代码生成器原理精讲及使用方法

模板引擎输出结果在项目中是输出给浏览器进行页面渲染,但是对于代码生成器而言,模板引擎输出结果是保存到磁盘文件。 ? 二、如何编写模板文件 要编写模板文件,首先我们要知道正常代码待如何书写。...从数据库中来,比如:实体名称、实体字段名称、实体字段类型等信息。类似于逆向工程,通过数据库表名、字段名、字段类型等信息生成实体信息。...column_name作为表字段可以生成实体成员变量参数名称(通常是驼峰标识规则) data_type,is_nullable,character_maximum_length可用于生成校验规则。...                .setNaming(NamingStrategy.underline_to_camel)//表名映射到实体命名策略(下划线到驼峰)                 ...//.setSuperEntityColumns("id");//写于父公共字段                 //.setSuperControllerClass("自定义继承Controller

1.6K30

Java EE之SSM框架整合开发 -- (7) MyBatis映射器

本章主要内容:核心配置文件、SQL映射文件、级联查询。 前言 1.MyBatis实现查询时,返回结果集有几种常见存储方式?请举例说明。 答:可以使用Map存储,也可以使用POJO存储。 元素中,通常使用以下属性: property:指定映射到实体对象属性。 column:指定表中对应字段(即查询返回列名)。...javaType:指定映射到实体对象属性类型。 select:指定引入嵌套查询子SQL语句,该属性用于关联映射中嵌套查询。...它返回类型为 com.po.Idcard 这个POJO,映射到 com.po.Person 这个POJO card 属性(读者可以看看Person定义)。...resultMap>元素,用来解析数据库返回数据,并赋值给POJO

2.4K21

Mybatis常见面试题(10个必备面试题)

面试题五:Mybatis是如何进行分页?分页插件原理是什么? 面试题六:Mybatis一级、二级缓存? 面试题七:Mybatis是如何将sql执行结果封装为目标对象并返回?都有哪些映射形式?...面试题九:使用MyBatismapper接口调用时有哪些要求? 面试题十:笔试手写题 模糊查询like语句该怎么写? 当实体属性名和表中字段名不一样 ,怎么办 ?...(2)作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。...面试题七:Mybatis是如何将sql执行结果封装为目标对象并返回?都有哪些映射形式? 第一种是使用标签,逐一定义数据库列名和对象属性名之间映射关系。...第一种:通过在查询sql语句中定义字段别名,让字段别名和实体属性名一致。

2.5K21

大佬都在用数据库设计规范!你不点进来看看嘛?

建表规约 表达是与否概念字段,必须使用is_xxx命名,数据类型是unsigned tinyint(1-是,0-否) 任何字段如果是非负数,必须是unsigned POJO任何布尔型变量,都不要加...因此,数据库名,表名,字段名,都不允许出现任何大写字母 表名不使用复数名词 表名应该仅仅表示表里面的实体内容,不应该表示实体数量 对于DAO名也是单数形式,符合表达习惯 禁止使用MySQL官方保留字命名...增减字段容易与resultMap配置不一致 无用字段增加网络消耗,尤其是text类型字段 POJO布尔属性不能加is, 而数据库字段必须加is_, 要求在resultMap中进行字段与属性之间映射...定义POJO以及数据库字段定义规定,在中增加映射,是必须 在MyBatis Generator生成代码中,需要进行对于修改 不要使用resultClass当返回参数,即使所有类属性名与数据库字段一一对应...,也需要定义,每一个表一定有一个POJO对应 配置映射关系,使字段与DAO解耦,方面维护 Sql.xml配置参数使用 #{ } 或者 #param#.

44120

Mybatis-06 动态Sql

ofType & javaType javaType用来指定实体中属性 ofTyoe用来指定映射到List或者集合中pojo类型,泛型中约束类型 **注意点:**注意一对多和多对一中,属性名和字段问题...settings> 在数据库字段命名规范中常常用下划线 “_” 对单词进行连接,如:"create_time",而开发中实体属性通常会采用驼峰命名命名为 createTime 。...一次查询结果,给他暂存在一个可以直接取到地方——内存:缓存 那么我们再次查询时候就可以不用走数据库了 缓存【Cache】?...缓存会保存列表或对象(无论查询方法返回哪种) 1024 个引用。缓存会被视为读/写缓存,这意味着获取到对象并不是共享,可以安全地被调用者修改,而不干扰其他调用者或线程所做潜在修改。...Cause:java.io.NotSerializableException: pojo.user,这个错误只需要在实体继承Serializable,即:class user implements Serializable

39420

揭秘Bean Searcher与MyBatis Plus之争:你会选择哪个?

,这个实体命名并不是 Order, 而是 OrderVO。...这里只是一个建议命名,因为它是本质上就是一个 VO(View Object),作用只是一个视图实体,所以建议将它和普通单表实体放在不同 package 下(这只是一个规范)。...从本例可以看出,Bean Searcher 检索结果是 VO 对象,而非普通单表实体(DTO),这 省去了 DTO 向 VO 转换过程,它可以直接返回给前端。...如果想做 数据权限,根据不同用户返回不同数据:可在 参数过滤器 里为权限字段统一注入条件(前提是 实体中得有一个数据权限字段,可以在基中定义)。 6)效率虽有提高,但性能如何呢?...代码写起来比用传统 ORM 要简洁多,只需一个实体和 Controller 里几行代码,Service 和 Dao 什么全都消失了,而且它返回结果就是 VO, 也 不需要再做进一步转换 了

28230

快速学习-MyBatis映射文件

by 排序字段 desc/asc limit x, x 4.5 select查询几种情况 查询单行数据返回单个对象 public Employee getEmployeeById(Integer...id ); 查询多行数据返回对象集合 public List getAllEmps(); 查询单行数据返回Map集合 public Map getEmployeeByIdReturnMap...唯一要求是列名和javaBean属性名一致 如果autoMappingBehavior设置为null则会取消自动映射 数据库字段命名规范,POJO属性符合驼峰命名法,如A_COLUMNaColumn...实际开发中,对于每个实体都应该有具体增删改查方法,也就是DAO层, 因此对于查询员工信息并且将对应部门信息也查询出来需求,就可以通过分步方式完成查询。...实际开发中,对于每个实体都应该有具体增删改查方法,也就是DAO层, 因此 对于查询部门信息并且将对应所有的员工信息也查询出来需求,就可以通过分步方式完成查询

65820

一起来研究MyBatis项目基础构建及架构?

使Map接口和POJO射到数据库字段和记录。 下面我们通过一个简单项目搭建来带你认识一下MyBatis使用和一些核心组件讲解。 MyBatis 项目怎么构建?...,它可以让我们编写Mapper接口和XML文件,从而把参数和返回结果射到对应字段中。...就是映射到Mapper接口命名空间 标签用于编写查询语句,查询完成之后需要把结果射到对象或者map集合等,需要用到resultType属性指定对应结果集。...上述采用了和标签写法,为了方便射到实体,需要修改的话统一修改即可,降低耦合性。...接收开发人员提供Statement Id 和参数.并返回操作结果 Executor: 执行器,是MyBatis调度核心,负责SQL语句生成以及查询缓存维护 StatementHandler: 封装了

51130

Spring Boot入门系列(十九)集成mybatis

前面介绍了Spring Boot 整合mybatis 使用注解方式实现数据库操作,介绍了如何自动生成注解版mapper 和pojo。...1、@Select 注解 @Select,主要在查询时候使用,查询注解,一般简单查询可以使用这个注解。...,查询返回结果与期望数据格式不一致时,可以将将数据库中查询数值自动转化为具体属性或类型,,修饰返回结果集。...比如查询对象返回值属性名和字段名不一致,或者对象属性中使用了枚举等。如果实体类属性和数据库属性名保持一致,就不需要这个属性来修饰。...字段实体中定义 companyId 属性名称不一致,需要Result 转换。

1K42

后端技术:MyBatis 知识点整理,值得收藏!

#{}和${}区别是什么? 当实体属性名和表中字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? Mapper 接口工作原理是什么?...Mapper 接口里方法,参数不同时,方法能重载吗? Mybatis 是如何进行分页?分页插件原理是什么? Mybatis是如何将sql执行结果封装为目标对象并返回?...MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数 据库中记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。...第 1 种:通过在查询 sql 语句中定义字段别名,让字段别名和实体 属性名一致 <select id=”selectorder” parametertype=”int” resultetype...Mybatis是如何将sql执行结果封装为目标对象并返回?都有哪些映射形式? 第一种是使用标签,逐一定义数据库列名和对象属性名之间映射关系。

1.1K10

2022年Java秋招面试,程序员求职必看Dubbo面试题

2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。...图片6、默认使用什么序列化框架,你知道还有哪些?图片7、当实体属性名和表中字段名不一样 ,怎么办 ?...第 1 种: 通过在查询 sql 语句中定义字段别名,让字段别名和实体属性名一致。...–用 result 属性来映射主键字段,property 为实体类属性名,column为数据表中属性–><result property = “orderno” column =”order_no”...图片图片10、Mybatis是如何进行分页?分页插件原理是什么?图片11、Mybatis是如何将sql执行结果封装为目标对象并返回?都有哪些映射形式?

69300

2019-04-01 POJO PO BO DO DTO VO区别分别代表什么含义

POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString简单,包括DO/DTO/BO/VO等。...Query:数据查询对象,各层接收上层查询请求。 注意超过2个参数查询封装,禁止使用Map来传输。 领域模型命名规约: 数据对象:xxxDO,xxx即为数据表名。...数据传输对象:xxxDTO,xxx为业务领域相关名称。 展示对象:xxxVO,xxx一般为网页名称。 POJO是DO/DTO/BO/VO统称,禁止命名成xxxPOJO。...,需要在PO中增加属性,但增加属性却不是表中应有的字段,使PO含义发生了变化 如设计活动,活动实体是一张表,活动页面样式、活动优惠等等又是一张表,在将数据返给前端时,前端不需要知道后端是几张表实现...,只需要知道解析这个对象中相关属性即可;此时需要BO对象来中转,BO对象对应多个PO对象 有这种疑问通常是BO与PO对象属性完全没有区别,此时需要考虑程序业务逻辑,是否需要将查询结果全部返回给调用方

2.1K20

Spring认证中国教育管理中心-Spring Data R2DBC框架教程二

使用保存操作简单情况是保存一个 POJO。在这种情况下,表名由名称(完全限定)确定。您还可以使用特定集合名称调用保存操作。您可以使用映射元数据来覆盖存储对象集合。...因此,对于自动生成,Id属性或字段类型必须是Long, 或Integer。 以下示例显示了如何插入一行并检索其内容: 示例 55....考虑以下简单查询: Flux people = template.select(Person.class) .all(); Person与select(…)方法一起使用将表格结果射到...这种使用行方式期望查询准确返回单个结果。 如果查询产生多个结果,则Mono发出 a IncorrectResultSizeDataAccessException。...Mono如果查询没有返回结果,则返回完成而不发出对象。 one(): 只消耗一行,返回一个Mono. Mono如果查询没有返回结果,则返回完成而不发出对象。

1.3K10
领券