Spring Boot 整合 Mybatis 笔记(一):细说 Mybatis 在 springboot 中的基本常用配置

这里以配置的是application.yaml
一、 数据源
spring:
datasource:
    url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource 
属性说明
url指定JDBC URL.
username指定数据库名.
password指定数据库密码
driver-class-name指定driver的类名,默认从jdbc url中自动探测…
type指定数据源的类型.

注意:经常报错信息

1. com.mysql.cj.core.exceptions.InvalidConnectionAttributeException: The server time zone…
  产生这个问题的原因主要在于:MySQL JDBC驱动程序的5.1.33版本与UTC时区配合使用,必须在连接字符串中明确指定serverTimezone。
这种情况需将配置改成: ?serverTimezone=CTT&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

二、 mybaits别名配置

  在mapper.xml 中参数指定类型是需要输入全路径的,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发

	<select id="findUserByName" parameterType="java.lang.String" resultType="com.demo.pojo.User">
		select * from user where username like #{name}
	</select>

 如上就是没有别名的时候,需要把全路径写出,不然报找不到类的错误

	mybatis:
 		type-aliases-package: com.demo.pojo,java.lang

加上配置之后,只要parameterType、resultType为这个包下的实体类,就都可以直接用类名来代替全限定名,配置多个中间用逗号隔开就好。如下:

	<select id="findUserByName" parameterType="String" resultType="User">
		select * from user where username like #{name}
	</select>
三、 mybaits的mapper配置
mybatis:
	mapperLocations: classpath:mapper/*.xml   # mybatis: mapper.xml resource目录

这里是配置了mapper的资源路径。

四、mybatis的configuration
mybatis:
 configuration:
	cache-enabled: true  #全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。
	lazy-loading-enabled: true  #启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。

configuration管理MyBatis的配置,MyBatis的所有配置信息都存放的在configuration中。这些都是非常重要的属性,他会修改MyBatis在运行时的行为方式。如果不熟悉配置建议使用默认配置。

参数属性说明
aggressiveLazyLoading当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。
multipleResultSetsEnabled允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。
useColumnLabel使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。
useGeneratedKeys允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby)。
autoMappingBehavior指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。FULL会自动映射任意复杂的结果(嵌套的或其他情况)。
local-cache-scope设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session
jdbc-type-for-null设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型
call-setters-on-nulls如果数据为空的字段,则该字段省略不显示,可以通过添加配置文件,规定查询数据为空是则返回null。
map-underscore-to-camel-cas使用驼峰命名法转换字段。
四、 mybaits的基础配置

如果mybatis的配置都写在application 里面会显得很臃肿,比较混乱。所以可以通过指定文件路径来引用配置文件

	mybatis:
	 config-location: classpath:mybatis/mybatis-config.xml
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值