<configuration> <!-- 全局参数 --> <settings> <!-- 使用驼峰命名法转换字段。 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>当然前题是先要加载这个配置文件,如用spring xml是这么加载
<bean id="mybatisSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath*:sql/**/*.xml"/> <property name="configLocation" value="classpath:/conf/mybatis-config.xml"></property> </bean>2.springboot的application.properties的配置方法
@Bean @ConfigurationProperties(prefix="mybatis.configuration") public org.apache.ibatis.session.Configuration mybatisConfig() { return new org.apache.ibatis.session.Configuration(); } @Bean public SqlSessionFactory sqlSessionFactory(org.apache.ibatis.session.Configuration config) throws Exception { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dynamicDataSource()); //此处设置为了解决找不到mapper文件的问题 sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/**/*.xml")); sqlSessionFactoryBean.setConfiguration(config); return sqlSessionFactoryBean.getObject(); } @Bean public SqlSessionTemplate sqlSessionTemplate(org.apache.ibatis.session.Configuration config) throws Exception { return new SqlSessionTemplate(sqlSessionFactory(config)); }
再把整个流程整理一下:
所以其实不是转换下划线,而是去掉下划线,再取驼峰的变量。不过最后的效果与转换的一样。
MetaClass mc=MetaClass.forClass(InfoEntry.class,new DefaultReflectorFactory()); // MetaClass mc=MetaClass.forClass(Map.class,new DefaultReflectorFactory()); System.out.println(mc.findProperty("create_time",true)); System.out.println(mc.findProperty("CREATE_TIME",true));注意这里MetaClass.forClass的参数变成Map将不可用。DefaultReflectorFactory是mybatis的类。
Map<String,Object> map=new HashMap<>(); map.put("create_time",new Date()); map.put("CREATE_TIME",new Date()); MetaObject mo=MetaObject.forObject(map, new DefaultObjectFactory(),new MybatisMapWrapperFactory(),new DefaultReflectorFactory()); System.out.println(Arrays.stream(mo.getGetterNames()).collect(Collectors.joining(","))); System.out.println(mo.findProperty("create_time",true)); System.out.println(mo.findProperty("CREATE_TIME",true));
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.1.0</version> </dependency>
软件下载 - 联系邮箱 - 关注微博
Copyright © 2010-2024 匠艺软件 蜀ICP备19010796号