springboot2 mybatis的配置

#日志 让控制台打印sql语句
logging.level.com.allen.springbootmybatis.dao=debug

#通过包扫描自定义别名,相等于mybatis的<typeAliases>的子标签<package name=com.allen.springbootmybatis.bean>
#特别注意指定的包目录下,不能有重名的类,因为它是把类名首字母小写后变成别名即com.allen.springbootmybatis.bean.ScheduleBean别名是scheduleBean
#别名的好处,就是你在xml文件,不用写类的全限定名,只要写别名即可
mybatis.type-aliases-package=com.allen.springbootmybatis.bean

#指定Mapper文件路径与名称(含匹配),扫描多个路径,中间以,分开 。支持通配符,建议每个都要以classpath*:开头
mybatis.mapper-locations=classpath*:mappers/*Mapper.xml

#指示是否执行xml配置文件(非mapper xml文件)的存在检查,对应org.mybatis.spring.boot.autoconfigure.MybatisProperties的checkConfigLocation
#默认值是false
mybatis.check-config-location=false

#指定mybatis配置文件xml的位置(非mapper xml文件),默认null,对应MybatisProperties的configLocation
#mybatis.config-location=null

##指定sql执行器类型:mybatis.executor-type 只有3个值 batch、reuse、simple,默认simple
#mybatis.executor-type=batch

#懒初始化 , mybatis 会为每个mapper 生成一个bean , 那么对于这些bean是否需要延迟初始化. 延迟初始化会有多线程问题 , 慎用 , 默认的false就OK.
#true : 启用 , false : 禁用 , 默认false
#mybatis.lazy-initialization=false

#指定alias类的父类
#当没有指定父类时,那么 type-aliases-package下的所有类都会指定别名 .
#当指定父类后 , type-aliases-package 下的指定父类的子类 ,才会加载别名
#mybatis.type-aliases-super-type=java.lang.Object


#类型转换器的路径包名。加载类型转换器。javaType 与 JdbcType互转,java.lang.String这样写说明其值为字符型,以后都这样么写
#mybatis.type-handlers-package=java.lang.String

#mybatis 配置的扩展属性,配置在这里
#例子1:mybatis.configuration-properties.ext1=123
#例子2: mybatis.configuration-properties.ext2=abc
#mybatis.configuration-properties : java.util.Properties

#使用该配置可以让mybatis自动将SQL中查出来的带下划线的字段,转换为驼峰标志,再去匹配类中的属性。如数据库字段为user_name,转换为驼峰标志,再去匹配类中的属性userName。
#多数据源配置导致没有生效的坑,http://yayihouse.com/yayishuwu/chapter/2338
#mybatis.configuration.map-underscore-to-camel-case=true

#设置延迟加载的所有属性 是 全部加载 , 还是按需加载.
#true: 全部加载 , false , 按需加载, 默认false
#mybatis.configuration.aggressive-lazy-loading : java.lang.Boolean


#自动匹配属性字段的动作, 对应mybatis设置即<setting name="autoMappingBehavior" value="PARTIAL"/>,详情参考Allen基于mybatis的书。支持三种方式:
#NONE : 不自动匹配
#PARTIAL (默认) : 会自动匹配字段 , 但内嵌字段 / 多层级复杂字段属性不匹配
#FULL : 会自动匹配字段 , 内嵌字段 / 多层级复杂字段属性也会匹配 . 但性能不佳 , 从实用角度来说 . 不会有这么复杂的sql查询结果.
#mybatis.configuration.auto-mapping-behavior : org.apache.ibatis.session.AutoMappingBehavior

#没有匹配的属性字段时,要怎么处理的动作 , 有以下三种方式:
#NONE : 不处理 , 跳过.
#WARNING : 日志打出 警告信息 .
#FAILING : 抛出异常信息 , SqlSessionException
#mybatis.configuration.auto-mapping-unknown-column-behavior : org.apache.ibatis.session.AutoMappingUnknownColumnBehavior

#使映射器(全局的)启用或禁用缓存。 默认true即启用缓存,这里缓存就是一级缓存
#mybatis.configuration.cache-enabled=true

#所有缓存的namespace .
#这里配置没有效果 . 应该是已经废弃了
#mybatis.configuration.cache-names : java.util.Collection<java.lang.String>

#缓存方案 , 已提供如下缓存方案 . 缓存的装饰器 . 也可以自定义缓存,实现Cache接口 .
#BlockingCache
#FifoCache
#LoggingCache
#LruCache
#ScheduledCache
#SerializedCache
#SoftCache
#SynchronizedCache
#TransactionalCache
#WeakCache
#这里配置没有效果 , 需要在mapper.xml文件里配置 .
#mybatis.configuration.caches : java.util.Collection<org.apache.ibatis.cache.Cache>

#null , 空值时, 是否调用setter方法 , 默认false 不调用
#mybatis.configuration.call-setters-on-nulls : java.lang.Boolean

#指定配置工厂类。作用就是:创建加载反序列化未读属性的配置对象
#mybatis.configuration.configuration-factory=java.lang.Object

#用于指定只加载mapper.xml指定databaseId=""
#mybatis.configuration.database-id=java.lang.String

#网上找了一个教程:https://www.cnblogs.com/song27/p/10999837.html
# 指定enum类型的全局转换的类型转换器,eg:把数据库存的男,女的1,0转换Enum类的Male、Femal对象
#mybatis.configuration.default-enum-type-handler=org.apache.ibatis.type.ArrayTypeHandler

#指定默认的执行器 (SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 执行器可以重复执行语句和批量更新)
#mybatis.configuration.default-executor-type=batch

# 指定默认批处理大小
#mybatis.configuration.default-fetch-size=java.lang.Integer


#指定全局结果集类型,有4个值:default、forward_only(只转发)、scroll_insensitive(不区分大小写的滚动)、scroll_sensitive(区分大小写的滚动)
# 与mapper.xml的select标签的resultSetType=""作用一样
#mybatis.configuration.default-result-set-type=default


#指定全局的sql执行超时时间(单位s)  mapper.xml的timeout=""属性,指定单个sql的执行时间
#mybatis.configuration.default-statement-timeout=java.lang.Integer

#指定环境配置的类,对应mybatis配置<environment>标签
#mybatis.configuration.environment=org.apache.ibatis.mapping.Environment

#指定incompleteCacheRefs的值
#mybatis.configuration.incomplete-cache-refs=java.util.Collection<CacheRefResolver>
#指定incompleteMethods的值
#mybatis.configuration.incomplete-methods=java.util.Collection<MethodResolver>
#指定incompleteResultMaps的值
#mybatis.configuration.incomplete-result-maps=java.util.Collection<ResultMapResolver>
#指定incompleteStatements的值
#mybatis.configuration.incomplete-statements=java.util.Collection<XMLStatementBuilder>

#指定拦截器,比较 <plugin interceptor=/>
#mybatis.configuration.interceptors=java.util.List<org.apache.ibatis.plugin.InterceptorChain>

#当写入 null 值的字段时 , 部分数据库需要指定null的数据类型 . mysql不用设置 . oracle需要设置 。对应org.apache.ibatis.type.JdbcType的枚举值
#mybatis.configuration.jdbc-type-for-null : org.apache.ibatis.type.JdbcType

#指定生成主键的生成器名称
#mybatis.configuration.key-generator-names=java.util.Collection<String>
#指定生成主键的生成器类名
#mybatis.configuration.key-generators=java.util.Collection<KeyGenerator>


#懒加载属性的触发条件, 当执行指定方法时,触发延迟加载
#默认是: "equals", "clone", "hashCode", "toString"
#mybatis.configuration.lazy-load-trigger-methods : java.util.Set<java.lang.String>

#全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。Mybatis仅支持association关联对象和collection关联集合对象的延迟加载
# association指的就是一对一,collection指的就是一对多查询。true: 启用 , false : 禁用 , 默认禁用
#mybatis.configuration.lazy-loading-enabled: java.lang.Boolean

#本地缓存的有效范围, 支持 SESSION,STATEMENT org.apache.ibatis.session.LocalCacheScope的值
#SESSION : 一个sqlsession中有效;STATEMENT: 针对单独的sql有效. 可以在不同session中
#mybatis.configuration.local-cache-scope : org.apache.ibatis.session.LocalCacheScope


#,指定日志的实现类,实现org.apache.ibatis.logging.Log接口的类:eg:把mybatis sql debug日志打印控制台,以下2个方法都可以实现
#1. logging.level.yourdaoclasspackagename=debug
#2. mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#mybatis.configuration.log-impl=Class<? extends Log>

# 指定日志输出的前缀
#mybatis.configuration.log-prefix=String
# 指定MappedStatement的名字。字符串形式
#mybatis.configuration.mapped-statement-names=String
#指定MappedStatement,通过类名
#mybatis.configuration.mapped-statements=Collection<MappedStatement>

#是否允许单条sql 返回多个数据集  (取决于驱动的兼容性) default:true
#mybatis.configuration.multiple-result-sets-enabled=true

#指定ObjectFactory即对象工厂,用于结果集返回转换pojo,mybatis有默认的DefaultObjectFactory,对应<objectFactory/>标签
#mybatis.configuration.object-factory=org.apache.ibatis.reflection.factory.ObjectFactory

#指定mybatis的ObjectWrapperFactory
#mybatis.configuration.object-wrapper-factory=ObjectFactory

#指定ParameterMap
#mybatis.configuration.parameter-map-names=Collection<String>
#mybatis.configuration.parameter-maps=Collection<ParameterMap>

#指定代理工厂:mybatis 实现2个:CglibProxyFactory和JavassistProxyFactory(默认),具体参考Allen基于Mybatis的书
#mybatis.configuration.proxy-factory=org.apache.ibatis.executor.loader.ProxyFactory
#指定ReflectorFactory,默认DefaultReflectorFactory
#mybatis.configuration.reflector-factory=org.apache.ibatis.reflection.ReflectorFactory

#指定org.apache.ibatis.mapping.ResultMap的名字
#mybatis.configuration.result-map-names=Collection<String>
#指定org.apache.ibatis.mapping.ResultMap
#mybatis.configuration.result-maps=Collection<ResultMap>

###用mybatis的时候返回前端:[null] ,这就很奇怪了,因为正常来说应该返回[{“xxx1”:null,“xxx2”:null}]
#后面设置callSettersOnNulls为true, 这时候字段如果不全是空就返回回了[{“xxx1”:“aaa”,"xxx"2:null}]
#如果全是null,像这样[{“xxx1”:null,“xxx2”:null}],会返回 [null], 这时候在将returnInstanceForEmptyRow 设置为true就返回[{“xxx1”:null,“xxx2”:null}]
#mybatis.configuration.return-instance-for-empty-row=true


#允许在嵌套语句中使用分页(ResultHandler)。如果允许使用则设置为false。默认是true
mybatis.configuration.safe-result-handler-enabled=true

#允许在嵌套语句中使用分页(RowBounds)。如果允许使用则设置为false。
#mybatis.configuration.safe-row-bounds-enabled=true

# 配置sql片段  Map<String,XNode>
#mybatis.configuration.sql-fragments.

#允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的工程必须采用Java 8编译,并且加上-parameters选项。(从3.4.1开始)
#mybatis.configuration.use-actual-param-name=true
#使用列标签代替列名。不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。
#mybatis.configuration.use-column-label=true

#允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。
#mybatis.configuration.use-generated-keys=true
#设置key,value的变量,Map<String,String>
#mybatis.configuration.variables.key=value

#指定VFS的实现 , Class<? extends VFS> vfsImpl;提供3个值DefaultVFS、JBoss6VFS、SpringBootVFS
#mybatis.configuration.vfs-impl=org.mybatis.spring.boot.autoconfigure.SpringBootVFS

#指定动态sql生成的语言驱动类名
#mybatis.default-scripting-language-driver=org.apache.ibatis.scripting.xmltags.XMLLanguageDriver
#mybatis.default-scripting-language-driver=org.apache.ibatis.scripting.defaults.RawLanguageDriver

##Map<String,String>
#mybatis.scripting-language-driver.freemarker.freemarker-settings.
#mybatis.scripting-language-driver.freemarker.template-file.base-dir=
#mybatis.scripting-language-driver.freemarker.template-file.path-provider.cache-enabled=true
#mybatis.scripting-language-driver.freemarker.template-file.path-provider.includes-mapper-name-when-separate-directory=true
#mybatis.scripting-language-driver.freemarker.template-file.path-provider.includes-package-path=true
#mybatis.scripting-language-driver.freemarker.template-file.path-provider.prefix=
#
#mybatis.scripting-language-driver.freemarker.template-file.path-provider.separate-directory-per-mapper=
#mybatis.scripting-language-driver.thymeleaf.customizer=
#mybatis.scripting-language-driver.thymeleaf.dialect.like-additional-escape-target-chars=
#mybatis.scripting-language-driver.thymeleaf.dialect.like-escape-char=
#mybatis.scripting-language-driver.thymeleaf.dialect.like-escape-clause-format=
#mybatis.scripting-language-driver.thymeleaf.dialect.prefix=
#mybatis.scripting-language-driver.thymeleaf.template-file.base-dir=
#mybatis.scripting-language-driver.thymeleaf.template-file.cache-enabled=true
#mybatis.scripting-language-driver.thymeleaf.template-file.cache-ttl=
#mybatis.scripting-language-driver.thymeleaf.template-file.encoding=UTF-8
#mybatis.scripting-language-driver.thymeleaf.template-file.path-provider.cache-enabled=true
#mybatis.scripting-language-driver.thymeleaf.template-file.path-provider.includes-mapper-name-when-separate-directory=true
#mybatis.scripting-language-driver.thymeleaf.template-file.path-provider.includes-package-path=true
#mybatis.scripting-language-driver.thymeleaf.template-file.path-provider.prefix=
#mybatis.scripting-language-driver.thymeleaf.template-file.path-provider.separate-directory-per-mapper=true
#mybatis.scripting-language-driver.thymeleaf.template-file.patterns=
#mybatis.scripting-language-driver.thymeleaf.use2way=true
##Map<String,String>
#mybatis.scripting-language-driver.velocity.additional-context-attributes.
##Map<String,String>
#mybatis.scripting-language-driver.velocity.velocity-settings.

参考:

https://www.cnblogs.com/ElEGenT/p/12144011.html

https://www.cnblogs.com/huiy/p/9278394.html

https://www.cnblogs.com/yunqing/p/8065637.html

配置MyBatis配置类主要是通过在配置文件中进行相关的配置来实现。在Spring Boot中,可以通过在application.yml或application.properties文件中进行配置来实现。 下面是一个示例的配置类: ``` @Configuration @MapperScan("zchao.com.springboot.generator.mapper") public class MyBatisConfig { @Autowired private DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); // 设置MyBatis配置文件的位置 sessionFactory.setConfigLocation(new PathMatchingResourcePatternResolver().getResource("classpath:mybatis-config.xml")); // 设置Mapper文件的位置 sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); return sessionFactory.getObject(); } } ``` 在以上示例中,`@MapperScan`注解用于指定MyBatis的Mapper接口所在的包路径。`SqlSessionFactory` bean用于创建`SqlSession`实例,`SqlSessionFactoryBean`类用于配置SqlSessionFactory的相关属性,如数据源、MyBatis配置文件位置、Mapper文件的位置等。 需要注意的是,以上示例中的数据源配置可以根据实际情况进行修改,比如使用Druid连接池等。另外,需要将相关的依赖添加到pom.xml文件中,如`mybatis-spring-boot-starter`和`druid`等。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [springboot配置mybatis](https://blog.csdn.net/weixin_52831324/article/details/129212839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值