mybatis支持属性使用驼峰的命名

在基本的 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集成方法:
<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代码  

  1. public class Configuration {  
  2.   
  3.   protected Environment environment;  
  4.   
  5.   protected boolean safeRowBoundsEnabled = true;  
  6.   protected boolean mapUnderscoreToCamelCase = false;  
  7.   protected boolean lazyLoadingEnabled = false;  

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

使用: 
spring配置: 
    

Xml代码  

  1. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  2.           <property name="mapperLocations" value="classpath:sqlMapper/*" />  
  3.           <property name="dataSource" ref="dataSource" />  
  4.           <property name="configLocation" value="classpath:mybatis-config.xml"></property>  
  5.      </bean>  

mybatis-config.xml: 

Xml代码  

  1. <configuration>  
  2.      <settings>  
  3.           <setting name="mapUnderscoreToCamelCase" value="true" />  
  4.      </settings>  
  5. </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,schematableName中包含空白时,默认为true
  • delimitAllColumns:是否对所有列添加**分隔符**。默认false

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

  • constructorBased:和<javaModelGenerator>中的属性含义一样。
  • ignoreQualifiersAtRuntime:生成的SQL中的表名将不会包含schemacatalog前缀。
  • immutable:和<javaModelGenerator>中的属性含义一样。
  • modelOnly:此属性用于配置是否为表只生成实体类。如果设置为true就不会有Mapper接口。如果配置了<sqlMapGenerator>,并且modelOnlytrue,那么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>还包含以下子元素:

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

 

时间: 2024-12-30 23:44:26

mybatis支持属性使用驼峰的命名的相关文章

对象不支持属性或方法

问题描述 对象不支持属性或方法 对象不支持"ok ToLaunchComposition"属性或方法,怎么解决 解决方案 如果代码以前正常过,检查下是不是有组件没有注册,或者浏览器的设定.如果你的代码根本没工作过,首先检查有没有创建这样的对象,有没有这个属性或者方法.

求助,asp.net中,js调com组件出现不支持属性或方法

问题描述 现在需要在js中调用C#的dll,查询网上的资料后说需要编写com组件,于是先写了个简单的com组件做测试,但是asp.net中的js调用时一直报错"对象不支持属性或方法"代码是这样的接口:[ComVisible(true)][Guid("2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F76")]publicinterfaceIHello{stringShowHello();}接口的实现[ComVisible(true)][Guid(&

【AngularJS】—— 10 指令的复用

首先看一下一个小例子,通过自定义指令,捕获鼠标事件,并触发控制器中的方法. 单个控制器的标签指令 依然是先创建一个模块 var myAppModule = angular.module("myApp",[]); 在模块的基础上,创建控制器和指令 myAppModule.controller("myAppCtrl",["$scope",function($scope){ $scope.count = 0; $scope.loadData = fun

mybatis +sqlserver-mybatis 的sql中用驼峰方式起了个别名,输出后变成了小写

问题描述 mybatis 的sql中用驼峰方式起了个别名,输出后变成了小写 如题,这是mybatis的bug吗还是要在配置文件中设置?感谢 解决方案 任何数据库sql语句中都是不分大小写的. 解决方案二: 你的输出是哪里的输出 .? 解决方案三: 数据库sql语句大小写不区分,在Mybatis里面写的sql,定义的别名一样的 解决方案四: 数据库可以用下划线命名法来区分关键词 解决方案五: sql中是不区分大小写的 解决方案六: sql的关键字是不区分大小写的,所以可以按个人习惯选择使用大小写.

uploadify 编辑器上传 报对象不支持此属性和方法 求大神赐教

问题描述 js代码如下:<LINKhref="js/uploadify/uploadify.css"type="text/css"rel="stylesheet"><scripttype="text/javascript"src="<%=basePath%>js/uploadify/jquery-1.4.2.min.js"></script><scrip

Mybatis基础

Mybatis MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录. 基于配置文件配置 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessio

MyBatis 入门到精通(三) 高级结果映射

MyBatis的创建基于这样一个思想:数据库并不是您想怎样就怎样的.虽然我们希望所有的数据库遵守第三范式或BCNF(修正的第三范式),但它们不是.如果有一个数据库能够完美映射到所有应用程序,也将是非常棒的,但也没有.结果集映射就是MyBatis为解决这些问题而提供的解决方案.例如,我们如何映射下面这条语句? [html] view plaincopy <select id="selectBlog_by_id" parameterType="int" resul

Visual Studio 2010自动执行属性

详解Visual Studio 2010中自动执行属性 在Visual Studio 2010中,有不少特性能帮助大家更好,更快的完成开发工作.本文将介绍的是自动执行属性. 自动执行的属性能够让你迅速指定一个类的属性,不用写"Get"和"Set"这个属性的代码.当你为自动执行的属性写代码的时候,Visual Basic编译器自动创建一个私有字段存储这个属性的变量,此外还创建相关的"Get"和"Set"步骤. 采用自动执行的属性

十三 The Display Property,display属性

操作HTML元素的诀窍在于明白它们工作的方法在于没有特定的形式.一些由标签组成的大部分页面可以设定任何样式.浏览器默认的样式里的大部分html元素由字体样式.margin,padding组成,本质上是显示类型. display属性基本上分为inline,block,和none. inline就像它的本意--显示为inline的元素为行.strong,anchor锚和em强调元素默认是行. block元素前后换行.标题和段落元素是块元素. none,意思不显示元素,在可用性上可以实现漂亮的效果,交