参考: https://segmentfault.com/a/1190000010240142
驼峰式命名开关,数据库列和字段名全一致。 开启 后不论多少下划线都可以 我这种方法不行
这种就是在mybatis-xml文件里面
Mybatis提供了一个配置项。开启开配置项后,在匹配时,能够根据数据库列名找到对应对应的驼峰式命名后的字段.
我试过这种方法不管用可能是我配置问题.
Select时指定AS。
当我们的数据库列名和对象字段之间不是驼峰式命名的关系,我们可以在Select时使用AS,使得列名和对象名匹配上。
映射文件中是本次会执行的sql,我们会查出id,city_id,city_name,city_en_name。 按照开启的驼峰式命名开关,我们会对应到对象的id,cityId,cityName,cityEnName字段。
这种太麻烦..每次添加字段都要配置.
resultMap 最稳健。
作为一名一线应用开发人员,“配置”一词,可能已经听得耳朵都长茧了。但是,一个程序或者说是一个库,具有可配置性,是非常必要的,否则就得以纯编程的方式使用它们。试想一下,如果你在使用数据库产品时,你还需要通过编程来使用,那将是多么地糟糕!
配置不仅仅是使用的人要用,这个库或者框架的开发者自己也需要用,否则,如何组织内部的各个构件,将会是一件硬编码的事情。总之,配置,就是要组织出一个完整的逻辑或形式系统,以达到使用者的目的。在框架内部来说,通过配置,还在看清楚整个架构。
通过MyBatis的配置,可以看出整个框架的顶级特性。为什么这么说呢,把这些代码列出来就一目了然了。
点击(此处)折叠或打开
- public class Configuration {
- protected Environment environment;
- protected boolean safeRowBoundsEnabled = true;
- protected boolean mapUnderscoreToCamelCase = false;
- protected boolean lazyLoadingEnabled = false;
- protected boolean aggressiveLazyLoading = true;
- protected boolean multipleResultSetsEnabled = true;
- protected boolean useGeneratedKeys = false;
- protected boolean useColumnLabel = true;
- protected boolean cacheEnabled = true;
- protected Integer defaultStatementTimeout;
- protected ExecutorType defaultExecutorType = ExecutorType.SIMPLE;
- protected AutoMappingBehavior autoMappingBehavior = AutoMappingBehavior.PARTIAL;
- protected Properties variables = new Properties();
- protected ObjectFactory objectFactory = new DefaultObjectFactory()