mybatis 总结

属性配置

1. mybatis.configuration.mapUnderscoreToCamelCase=true

mapUnderscoreToCamelCase用于映射表中的字段与model中成员的映射关系

映射关系为:表中字段去掉"_",并转为驼峰

比如:

//映射转换方式
role_id => roleId

如果配置为false,则只有一模一样的字段才可以映射到

2. mybatis.mapper-locations

用于设置mapper.xml的映射目录

比如

mybatis.mapper-locations=classpath:/mybatis/mapper/*.xml

这个路径必须写正确,之前写错误有报错以下错误,且还是在运行期发生与数据库访问时报错,无法再编译期检查出来,要格外小心

2019-08-28 13:52:33.769 ERROR 26395 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.grady.mybatisdemo.mapper.UserMapper.findAllUser] with root cause

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.grady.mybatisdemo.mapper.UserMapper.findAllUser
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.2.jar:3.5.2]
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) ~[mybatis-3.5.2.jar:3.5.2]
at org.apache.ibatis.binding.MapperProxy.lambda$cachedMapperMethod$0(MapperProxy.java:61) ~[mybatis-3.5.2.jar:3.5.2]
at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_191]
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:61) ~[mybatis-3.5.2.jar:3.5.2]

3. 一定要加上@MapperScan("com.grady.mybatisdemo.mapper")注解

mapperScan中需填入mapper.java所在的包的路径,方便mybatis生成增强对象

经测试@mapperScan可以加载使用@Bean @Configuration @Component @Service 注解的类上,也是可以生效的

但建议还是加载Application的类上,这样更加一目了然

4. mybatis.typeAliasesPackage=com.grady.mybatisdemo.model

mybatis.typeAliasesPackage用于指定包的别名映射关系,之后在xml中就直接使用类名就可以了

比如:

  <select id="findAllUser" resultType="User">
SELECT
*
FROM
user
</select>
PS:这个属性虽好,但建议谨慎使用,因为它固定了model类生成的目录,而大型项目往往进行模块划分,不能保证所有的model在同一个目录下,而且还需要去属性文件中去寻找目录的位置,相对会有些繁琐(==IDE也不能通过左击直接进入model类中)

5. 开启Mybatis SQL 日志

logging.level.com.grady.mybatisdemo.mapper=DEBUG

Springboot mybatis总结的更多相关文章

  1. 第五章 springboot + mybatis(转载)

    本编博客转发自:http://www.cnblogs.com/java-zhao/p/5350021.html springboot集成了springJDBC与JPA,但是没有集成mybatis,所以 ...

  2. 第九章 springboot + mybatis + 多数据源 (AOP实现)

    在第八章 springboot + mybatis + 多数据源代码的基础上,做两点修改 1.ShopDao package com.xxx.firstboot.dao; import org.spr ...

  3. 第五章 springboot + mybatis

    springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成.集成方式相当简单. 1.项目结构 2.pom.xml <!-- 与数 ...

  4. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...

  5. Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦

    个人博客 对于技术人员来说,拥有自己的个人博客应该是一件令人向往的事情,可以记录和分享自己的观点,想到这件事就觉得有意思,但是刚开始写博客的时候脑海中是没有搭建个人博客这一想法的,因为刚起步的时候连我 ...

  6. springboot mybatis 事务管理

    本文主要讲述springboot提供的声明式的事务管理机制. 一.一些概念 声明式的事务管理是基于AOP的,在springboot中可以通过@Transactional注解的方式获得支持,这种方式的优 ...

  7. SpringBoot+Mybatis+Freemark 最简单的例子

    springboot-sample 实现最简单的 SpringBoot + Mybatis + Freemarker 网页增删改查功能,适合新接触 Java 和 SpringBoot 的同学参考 代码 ...

  8. springboot + mybatis 前后端分离项目的搭建 适合在学习中的大学生

    人生如戏,戏子多半掉泪! 我是一名大四学生,刚进入一家软件件公司实习,虽说在大学中做过好多个实训项目,都是自己完成,没有组员的配合.但是在这一个月的实习中,我从以前别人教走到了现在的自学,成长很多. ...

  9. springboot+mybatis+redis实现分布式缓存

    大家都知道springboot项目都是微服务部署,A服务和B服务分开部署,那么它们如何更新或者获取共有模块的缓存数据,或者给A服务做分布式集群负载,如何确保A服务的所有集群都能同步公共模块的缓存数据, ...

  10. Java逆向工程SpringBoot + Mybatis Generator + MySQL

    Java逆向工程SpringBoot+ Mybatis Generator + MySQL Meven pop.xml文件添加引用: <dependency> <groupId> ...

随机推荐

  1. 一文理解OpenStack网络

    摘要:如果你能理解OpenStack的网络,那么对于其他云平台的网络,应该也可以通过分析后理解掌握了. 本文分享自华为云社区<<跟唐老师学习云网络> - OpenStack网络实现& ...

  2. TopoLVM: 基于LVM的Kubernetes本地持久化方案,容量感知,动态创建PV,轻松使用本地磁盘

    正文 研发测试场景下,一般追求的是一键快速起环境,横向动态复制,一人一套,随起随用,用完即走.作为使用方,其不用关心实际的物理资源是怎样的,环境起在哪里,只要声明自己的使用需求即可.但作为方案构建者以 ...

  3. JS 会有变量提升和函数提升

    JavaScript变量函数声明提升(Hoisting)是在 Javascript 中执行上下文工作方式的一种认识(也可以说是一种预编译),从字面意义上看,"变量提升"意味着变量和 ...

  4. Java变量和Scanner类

    1.变量的分类1)按数据类型分类   详细说明: 1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)   ① byte范围:-128 ~ ...

  5. skip-host-cache skip-name-resolve

    在mysql 的data 文件夹下 生成了一个.err的文件,打开发展,经常有人访问这个,服务器部署在腾讯云上. 2017-05-23 0:49:04 2996 [Warning] IP addres ...

  6. 【有用的SQL】查Greenplum的数据字典

    Greenplum 查询哪个表的分布键 ( Greenplum ) SELECT att.nspname AS 模式名 , att.relname AS 表名 , table_comment AS 表 ...

  7. SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-中

    事务模式 概述 在当前的技术发展阶段,不存一个分布式事务处理机制可以完美满足所有场景的需求.一致性.可靠性.易用性.性能等诸多方面的系统设计约束,需要用不同的事务处理机制去满足. 目前使用的流行度情况 ...

  8. jdbc 08: statement应用场景

    jdbc连接mysql,statement的应用场景 package com.examples.jdbc.o8_statement应用场景; import java.sql.*; import jav ...

  9. AtCoder Beginner Contest 261E // 按位思考 + dp

    题目链接:E - Many Operations (atcoder.jp) 题意: 给定一个数x,以及n个操作(ti,ai): 当 t = 1 时,将 x & a 当 t = 2 时,将 x ...

  10. Clickhouse 实现 MaterializedPostgreSQL

    Clickhouse 实现 MaterializedPostgreSQL 开发环境:macOS 12.4 + docker 一.环境搭建 docker-compose.yml services: po ...