这里以配置的是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