一、SpringBoot常见配置

(1)SpingBoot与MyBatis集成时跟踪SQL语句

log4j:
logger:
java:
sql:
ResultSet: TRACE

(2)日志跟踪

debug: true
logging:
config: classpath:log4j2/log4j2.xml license:
file-path: xxx
@Value("${license.file-path}")
private String licenseFilePath

(3)MyBatis集成:

#mybatis配置
mybatis:
#配置映射类所在包名
type-aliases-package: com.xx.it.model
(数据库实体对象所在路径,一般为@Data对象,非Mapper注释项所在路径)
#配置mapper.xml文件所在路径
mapper-location: classpath:com/xx/it/*.xml(非必须项,可以不配) #不需要再配置Spring任何文件
@SpringBootApplication
public class Application {
SpringApplication.run(Application.class,args);
}

  Mapper所在路径不需要配置,系统会自动扫描与Application同级及以下的所有目录,同时对应的Spring也不需要配置

二、常见错误

(1)SpringBoot与MyBatis集成

  A.ResultMap与ResultType导致的问题

<resultMap id="sample" type="com.xx.it.SampleVo">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="useYn" column="use_yn" />
</resultMap> <select id="selectSample" resultMap="sample">
select id,name,useYn from sample where id = #{id}
</select> <select id="getReply" parameterType="sampleVo" resultType="sample">
select id,name,useYn from sample where id = #{id}
</select>

 如上情况当ResultMap与ResultType混用时,会出现java.lang.ClassNotFoundException错误,此时对应的解决方案如下:

1、按照上述思路,统一换成ResultMap;

2、在定义resultMap的名字时,按照首字母小写的方式来命名。上例中为:sampVo;

MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap.

resultType是直接表示返回类型的(对应着我们的model对象中的实体),

resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时 存在。

在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。

①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。

②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用

参见:http://www.ibloger.net/article/2434.html

  注:select语句中不能同时使用resultType和resultMap

ResultMap:组装数据库中结果与实体对象的映射关系(将数据库中查询出来的结果映射给实体类)

column:表中字段名;property:实体类的属性名

ResultType:查询结果不需要映射时使用resultType

个人总结:表中定义create_time,类中createTime,返回值类型为resultMap,如果用resultType,那么createTime字段的值为NULL.

当使用ResultType进行输出映射时,只有查询出来的列名和pojo的属性名一致,该列才可以映射成功;

如果查询出来的列名和pojo中的属性名全部不一致,没有创建pojo对象;

只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象;

B.#与$区别

  ${name}原样替换,#{name}是带单引号,占位符

like '% %'在mybatis中应当写成like '%${name}%'而不是'%#{name}%'

参见:https://segmentfault.com/a/1190000004617028

Spring Boot常见配置及错误的更多相关文章

  1. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  2. Spring Boot 属性配置和使用(转)

    Spring Boot 属性配置和使用 Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot ...

  3. 转:spring boot log4j2配置(使用log4j2.yml文件)---YAML 语言教程

    转:spring boot log4j2配置(使用log4j2.yml文件) - CSDN博客http://blog.csdn.net/ClementAD/article/details/514988 ...

  4. spring boot 常见三十四问

    Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...

  5. Spring Boot 日志配置

    Spring Boot 日志配置 默认日志 Logback: 默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很 ...

  6. Spring boot 零配置开发微服务

    2018年12月29日星期六 体验Spring boot 零配置开发微服务 1.为什么要用Spring  boot? 1.1 简单方便.配置少.整合了大多数框架 1.2 适用于微服务搭建,搭建的微服务 ...

  7. Spring Boot自定义配置与加载

    Spring Boot自定义配置与加载 application.properties主要用来配置数据库连接.日志相关配置等.除了这些配置内容之外,还可以自定义一些配置项,如: my.config.ms ...

  8. Spring Boot Security配置教程

    1.简介 在本文中,我们将了解Spring Boot对spring Security的支持. 简而言之,我们将专注于默认Security配置以及如何在需要时禁用或自定义它. 2.默认Security设 ...

  9. Spring Boot + Mybatis 配置多数据源

    Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...

随机推荐

  1. VS2017 下载离线MSDN文档

    VS2017 下载离线MSDN文档 点开帮助窗口的时候发现没有添加和删除帮助内容选项.处理方法如下: 1.打开vs2017安装包,如果你找不到安装包,可在相应你下载vs2017的浏览器上找到下载内容, ...

  2. PostgreSQL 调用存储过程返回结果集

    创建返回结果集类型的存储过程: CREATE OR REPLACE FUNCTION public.f_get_member_info( id integer, productname charact ...

  3. css position相对定位与绝对定位彻底搞懂

    定位position position本身就有给...定位的意思 position属性的值: static ---默认值 relative ---相对定位 absolute ---绝对定位 fixed ...

  4. C# 简单学习正则表达式

    第一步先要引入有关正则式的命名空间: using System.Text.RegularExpressions;            第二步用指定的正则式构建一个正则表达式对象,下面的正则式是用来搜 ...

  5. Dotnet core结合jquery的前后端加密解密密码密文传输的实现

    在一个正常的项目中,登录注册的密码是密文传输到后台服务端的,也就是说,首先前端js对密码做处理,随后再传递到服务端,服务端解密再加密传出到数据库里面.Dotnet已经提供了RSA算法的加解密类库,我们 ...

  6. js和jquery获取当前元素的内容

    html代码 <div>测试文本</div>js:div.innerHTMLjQuery:div.html()

  7. FasterRCNN代码解读

    之前的文章简要介绍了Faster-RCNN等物体检测的算法,本文将从代码角度详细分析介绍Faster-RCNN的实现.本文使用的代码参考了chenyuntc的实现,代码的位置看这里.需要注意的是,本文 ...

  8. 洛谷.3369.[模板]普通平衡树(Splay)

    题目链接 第一次写(2017.11.7): #include<cstdio> #include<cctype> using namespace std; const int N ...

  9. JavaScript基础笔记(十三)测试和调试

    错误处理与测试 一.错误处理 一)try-catch语句 function atest() { try { //可能发生错误的代码 return 0; } catch (error) { //错误处理 ...

  10. pyhthon 利用爬虫结合阿里大于短信接口实现短信发送天气预报

    # -*- coding: utf-8 -*- ''''' SDK for alidayu requires: python3.x, requests @author: raptor.zh@gmail ...