mybatis支持属性使用驼峰的命名
2016-11-20 00:37
441 查看
在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-spring 中,则使用 SqlSessionFactoryBean 来替代。
该属性可以给包中的类注册别名,注册后可以直接使用类名(在mybatis的XXmapper.xml配置文件中直接使用类名),而不用使用全限定的类名(就是不用包含包名)。
该属性可以配置多个,可以用
http://blog.csdn.net/isea533/article/details/45640319
增加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集成方法:
增加style属性配置,用来配置对象名/字段和表名/字段之间的转换方式,可选值:
normal:使用实体类名/属性名作为表名/字段名
camelhump:这是默认值,驼峰转换为下划线形式
uppercase:转换为大写
lowercase:转换为小写
增加实体注解@NameStyle,该注解优先于全局配置style
https://www.oschina.net/news/65790/mybatis-mapper-3-2-0
参考:http://blog.chinaunix.net/uid-26244834-id-3268354.html
需要开启一个配置:
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代码
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="mapperLocations" value="classpath:sqlMapper/*" />
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
mybatis-config.xml:
Xml代码
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
数据库字段:
is_man
bean:
private Integer isMan;
mapper配置不需要写字段与属性的配置,会自动映射。
http://flysnowxf.iteye.com/blog/1678780
3.3.8
该元素至少要配置一个,可以配置多个。
该元素用来配置要通过内省的表。只有配置的才会生成实体类和其他文件。
该元素有一个必选属性:
例如要生成全部的表,可以按如下配置:
该元素包含多个可选属性:
该元素包含多个可用的
除了
http://blog.csdn.net/isea533/article/details/42102297
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集成方法:
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.isea533.mybatis.mapper"/> <property name="properties"> <value> mappers=tk.mybatis.mapper.common.Mapper </value> </property> </bean>
增加style属性配置,用来配置对象名/字段和表名/字段之间的转换方式,可选值:
normal:使用实体类名/属性名作为表名/字段名
camelhump:这是默认值,驼峰转换为下划线形式
uppercase:转换为大写
lowercase:转换为小写
增加实体注解@NameStyle,该注解优先于全局配置style
@Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory"); mapperScannerConfigurer.setBasePackage("com.domain.mapper"); Properties properties1 = new Properties(); 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); return mapperScannerConfigurer; }
https://www.oschina.net/news/65790/mybatis-mapper-3-2-0
参考:http://blog.chinaunix.net/uid-26244834-id-3268354.html
需要开启一个配置:
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代码
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="mapperLocations" value="classpath:sqlMapper/*" />
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
mybatis-config.xml:
Xml代码
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
数据库字段:
is_man
bean:
private Integer isMan;
mapper配置不需要写字段与属性的配置,会自动映射。
http://flysnowxf.iteye.com/blog/1678780
3.3.8
<table>元素
该元素至少要配置一个,可以配置多个。
该元素用来配置要通过内省的表。只有配置的才会生成实体类和其他文件。
该元素有一个必选属性:
tableName:指定要生成的表名,可以使用SQL通配符匹配多个表。
例如要生成全部的表,可以按如下配置:
<table tableName="%" />
该元素包含多个可选属性:
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:和
<context>的
defaultModelType含义一样,这里可以针对表进行配置,这里的配置会覆盖
<context>的
defaultModelType配置。
escapeWildcards:这个属性表示当查询列,是否对schema和表名中的SQL通配符 ('_' and '%') 进行转义。 对于某些驱动当schema或表名中包含SQL通配符时(例如,一个表名是MY_TABLE,有一些驱动需要将下划线进行转义)是必须的。默认值是
false。
delimitIdentifiers:是否给标识符增加**分隔符**。默认
false。当
catalog,
schema或
tableName中包含空白时,默认为
true。
delimitAllColumns:是否对所有列添加**分隔符**。默认
false。
该元素包含多个可用的
<property>子元素,可选属性为:
constructorBased:和
<javaModelGenerator>中的属性含义一样。
ignoreQualifiersAtRuntime:生成的SQL中的表名将不会包含
schema和
catalog前缀。
immutable:和
<javaModelGenerator>中的属性含义一样。
modelOnly:此属性用于配置是否为表只生成实体类。如果设置为
true就不会有Mapper接口。如果配置了
<sqlMapGenerator>,并且
modelOnly为
true,那么XML映射文件中只有实体对象的映射元素(
<resultMap>)。如果为
true还会覆盖属性中的
enableXXX方法,将不会生成任何CRUD方法。
rootClass:和
<javaModelGenerator>中的属性含义一样。
rootInterface:和
<javaClientGenerator>中的属性含义一样。
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。
除了
<property>子元素外,
<table>还包含以下子元素:
<generatedKey>(0个或1个)
<columnRenamingRule>(0个或1个)
<columnOverride>(0个或多个)
<ignoreColumn>(0个或多个)
http://blog.csdn.net/isea533/article/details/42102297
相关文章推荐
- mybatis支持属性使用驼峰的命名
- mybatis数据库字段带下划线,映射支持java类属性驼峰命名
- mybatis数据库字段带下划线,映射支持java类属性驼峰命名
- mybatis数据库字段带下划线,映射支持java类属性驼峰命名
- springmvc mybatis 配置一对多的关系使用 <association> 及实体类写法2Spring MVC 会按请求参数名和 POJO 属性名进行自动匹配自动为该对象填充属性值。支持
- Schema的命名空间支持---6.2.3: 为属性使用命名空间限定
- 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或ALTER AUTHORIZATION语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象
- sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 ALTER AUTHORIZATION 语句将数据库所
- 设置ibatis中命名空间属性为true,才能使用!
- sql2000备份的数据库还原到sql2005后,选择“数据库关系图”提示:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或 Alter AUTHORIZATION 语句将数据库
- ie8以下版本(包括ie8)的浏览器不支持html5标签属性解决方案(Modernizr 2.6.2插件的使用)
- 使用jQuery解决IE不支持的option disable属性【转】
- 使用PageMethods老是出现"PageMethods未定义"或"对象不支持此属性或方法"的解决方法
- [原创]Spring Boot + Mybatis 简易使用指南(二)多参数方法支持 与 Joda DateTime类型支持
- [Java][MyBatis]mapperLocations属性通配符的使用
- 关于使用jquery时,ie8下提示对象不支持的属性或方法的解决办法
- Schema的命名空间支持---6.2.1: 在Schema中使用命名空间
- 使用jQuery解决IE不支持的option disable属性
- 使用C#导出MSSQL表数据Insert语句,支持所有MSSQL列属性
- 关于 CSS 浮动属性的行为、使用和支持的概览