mybatis支持驼峰自动转换sql吗_mybatis支持属性使用驼峰的命名

本文介绍了MyBatis如何支持驼峰命名转换,包括在MyBatis配置中设置`mapUnderscoreToCamelCase`属性,以及在mybatis-spring中通过`MapperScannerConfigurer`的`style`属性配置转换方式。此外,还提到了MyBatis Generator(MBG)对驼峰命名的支持,允许在生成的实体类和Mapper接口中自动映射数据库字段。
摘要由CSDN通过智能技术生成

在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-spring 中,则使用 SqlSessionFactoryBean 来替代。

typeAliasesPackage属性

该属性可以给包中的类注册别名,注册后可以直接使用类名(在mybatis的XXmapper.xml配置文件中直接使用类名),而不用使用全限定的类名(就是不用包含包名)。

该属性可以配置多个,可以用,;\t\n进行分割。但是不支持Ant风格的路径。

http://blog.csdn.net/isea533/article/details/45640319

最新版本3.2.0 - 2015-09-02

移除MapperInterceptor拦截器,以后不能在通过拦截器配置

增加mybatis-spring特殊支持,主要是根据mybatis-spring项目增加了下面两个类:

tk.mybatis.spring.mapper.MapperScannerConfigurer

tk.mybatis.spring.mapper.MapperFactoryBean

这两个类和MyBatis提供的区别是增加了MapperHelper属性,通过在MapperScannerConfigurer中使用properties属性注入配置

这两个类,在全名上和MyBatis的区别是org.mybatis.xxx改为了tk.mybatis.xxx,名字相近,更方便修改配置

和Spring集成方法:

mappers=tk.mybatis.mapper.common.Mapper

增加style属性配置,用来配置对象名/字段和表名/字段之间的转换方式,可选值:

normal:使用实体类名/属性名作为表名/字段名

camelhump:这是默认值,驼峰转换为下划线形式

uppercase:转换为大写

lowercase:转换为小写

增加实体注解@NameStyle,该注解优先于全局配置style

@BeanpublicMapperScannerConfigurer mapperScannerConfigurer() {

MapperScannerConfigurer mapperScannerConfigurer= newMapperScannerConfigurer();

mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");

mapperScannerConfigurer.setBasePackage("com.domain.mapper");

Properties properties1= newProperties();

properties1.setProperty("mappers", "com.feizhou.safety.web.util.MyMapper");

properties1.setProperty("notEmpty", "false");

properties1.setProperty("IDENTITY", "MYSQL");

properties1.setProperty("style", "normal");

Properties properties=properties1;

mapperScannerConfigurer.setProperties(properties);returnmapperScannerConfigurer;

}

https://www.oschina.net/news/65790/mybatis-mapper-3-2-0

Java代码  

public class Configuration {

protected Environment environment;

protected boolean safeRowBoundsEnabled = true;

protected boolean mapUnderscoreToCamelCase = false;

protected boolean lazyLoadingEnabled = false;

mapUnderscoreToCamelCase:是否启用下划线与驼峰式命名规则的映射(如first_name => firstName)

使用:

spring配置:

Xml代码  

mybatis-config.xml:

Xml代码  

数据库字段:

is_man

bean:

private Integer isMan;

mapper配置不需要写字段与属性的配置,会自动映射。

http://flysnowxf.iteye.com/blog/1678780

3.3.8 

该元素至少要配置一个,可以配置多个。

该元素用来配置要通过内省的表。只有配置的才会生成实体类和其他文件。

该元素有一个必选属性:

tableName:指定要生成的表名,可以使用SQL通配符匹配多个表。

例如要生成全部的表,可以按如下配置:

该元素包含多个可选属性:

schema:数据库的schema,可以使用SQL通配符匹配。如果设置了该值,生成SQL的表名会变成如schema.tableName的形式。

catalog:数据库的catalog,如果设置了该值,生成SQL的表名会变成如catalog.tableName的形式。

alias:如果指定,这个值会用在生成的select查询SQL的表的别名和列名上。 列名会被别名为 alias_actualColumnName(别名_实际列名) 这种模式。

domainObjectName:生成对象的基本名称。如果没有指定,MBG会自动根据表名来生成名称。

enableXXX:XXX代表多种SQL方法,该属性用来指定是否生成对应的XXX语句。

selectByPrimaryKeyQueryId:DBA跟踪工具会用到,具体请看详细文档。

selectByExampleQueryId:DBA跟踪工具会用到,具体请看详细文档。

modelType:和的defaultModelType含义一样,这里可以针对表进行配置,这里的配置会覆盖的defaultModelType配置。

escapeWildcards:这个属性表示当查询列,是否对schema和表名中的SQL通配符 ('_' and '%') 进行转义。 对于某些驱动当schema或表名中包含SQL通配符时(例如,一个表名是MY_TABLE,有一些驱动需要将下划线进行转义)是必须的。默认值是false。

delimitIdentifiers:是否给标识符增加**分隔符**。默认false。当catalog,schema或tableName中包含空白时,默认为true。

delimitAllColumns:是否对所有列添加**分隔符**。默认false。

该元素包含多个可用的子元素,可选属性为:

constructorBased:和中的属性含义一样。

ignoreQualifiersAtRuntime:生成的SQL中的表名将不会包含schema和catalog前缀。

immutable:和中的属性含义一样。

modelOnly:此属性用于配置是否为表只生成实体类。如果设置为true就不会有Mapper接口。如果配置了,并且modelOnly为true,那么XML映射文件中只有实体对象的映射元素()。如果为true还会覆盖属性中的enableXXX方法,将不会生成任何CRUD方法。

rootClass:和中的属性含义一样。

rootInterface:和中的属性含义一样。

runtimeCatalog:运行时的catalog,当生成表和运行环境的表的catalog不一样的时候可以使用该属性进行配置。

runtimeSchema:运行时的schema,当生成表和运行环境的表的schema不一样的时候可以使用该属性进行配置。

runtimeTableName:运行时的tableName,当生成表和运行环境的表的tableName不一样的时候可以使用该属性进行配置。

selectAllOrderByClause:该属性值会追加到selectAll方法后的SQL中,会直接跟order by拼接后添加到SQL末尾。

useActualColumnNames:如果设置为true,那么MBG会使用从数据库元数据获取的列名作为生成的实体对象的属性。 如果为false(默认值),MGB将会尝试将返回的名称转换为驼峰形式。 在这两种情况下,可以通过 元素显示指定,在这种情况下将会忽略这个(useActualColumnNames)属性。

useColumnIndexes:如果是true,MBG生成resultMaps的时候会使用列的索引,而不是结果中列名的顺序。

useCompoundPropertyNames:如果是true,那么MBG生成属性名的时候会将列名和列备注接起来. 这对于那些通过第四代语言自动生成列(例如:FLD22237),但是备注包含有用信息(例如:"customer id")的数据库来说很有用. 在这种情况下,MBG会生成属性名FLD2237_CustomerId。

除了子元素外,

http://blog.csdn.net/isea533/article/details/42102297

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值