博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot常见配置及错误
阅读量:6346 次
发布时间:2019-06-22

本文共 1944 字,大约阅读时间需要 6 分钟。

一、SpringBoot常见配置

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

log4j:  logger:    java:      sql:        ResultSet: TRACE

(2)日志跟踪

debug: truelogging:   config: classpath:log4j2/log4j2.xmllicense:  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与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不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用

  参见:

  注: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}%'

参见:

转载地址:http://yncla.baihongyu.com/

你可能感兴趣的文章
思维导图五个关键秘诀
查看>>
Ubuntu里设置python默认版本为python3(转载)
查看>>
快排+折半查找
查看>>
c# GC 新典型
查看>>
ssh bash 通配符
查看>>
seajs在jquery多个版本下引用jquery的插件的方案
查看>>
关于网络上java,php和.net的“口角之争“的一点想法 !
查看>>
python 第二周(第十三天) 我的python成长记 一个月搞定python数据挖掘!(21) -正则表达式re...
查看>>
[POI2011]SEJ-Strongbox
查看>>
20文件
查看>>
Android开发Intent应用概述
查看>>
【Go】并发编程
查看>>
VMware虚拟化NSX-Manager命令行更改admin用户密码
查看>>
悦纳自己
查看>>
python字符串函数
查看>>
ORM框架Hibernate (四)MyEclipse Hibernate Tool 逆向生成实体类
查看>>
js中substr与substring的区别
查看>>
去掉iphone连接电脑时会出现的弹出窗口
查看>>
【python】-- web开发之HTML
查看>>
vs2015 去除 git 源代码 绑定
查看>>