zoukankan      html  css  js  c++  java
  • Mybatis配置——自动使用驼峰命名 属性映射字段(默认为false)

    开发一个新项目,用的springboot,相关配置不太熟悉,导致一些配置没配,到具体开发时问题就暴露出来了,记录第一个配置问题————Mybatis配置—自动使用驼峰命名 属性(userId)映射字段(user_id)。

    实体类:

    @Table(name = "bg_posting")
    public class BgPosting {
        /**
         * 帖子id
         */
        @Id
        @Column(name = "posting_id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long postingId;
    
        /**
         * 帖子标题
         */
        @Column(name = "posting_title")
        private String postingTitle;
    
        /**
         * 发帖人id
         */
        @Column(name = "user_id")
        private Long userId;
        
        ...
        
        }
    

    错误:实体类用了@Table和@Column等注解,以为在**Mapper.xml中做查询等操作时,会自动映射,例如:posting_id ——> postingId,然而测试结果告诉我,如果没有写手动映射,直接到实体类,那么所有驼峰命名的属性都为null,也就是说驼峰命名的没有自动映射成功,这就是配置问题了,在网上查了资料,这个驼峰自动映射(默认为false)需要手动配置。

    要在mybatis的配置文件中加上如下代码:

    @Bean
        public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) throws Exception {
            SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
            factory.setDataSource(dataSource);
            factory.setTypeAliasesPackage(MODEL_PACKAGE);
            
            ...
            
            org.apache.ibatis.session.Configuration configuration=new org.apache.ibatis.session.Configuration();
            configuration.setUseGeneratedKeys(true);//使用jdbc的getGeneratedKeys获取数据库自增主键值
            configuration.setUseColumnLabel(true);//使用列别名替换列名,如:select user as User
            configuration.setMapUnderscoreToCamelCase(true);//-自动使用驼峰命名属性映射字段,如userId    user_id
            factory.setConfiguration(configuration);
            return factory.getObject();
        }
    

    这样即使实体类不加@Column等注解,依然可以根据驼峰规则,映射成功

  • 相关阅读:
    android openGL ES2 一切从绘制纹理開始
    HTML5 界面元素 Canvas 參考手冊
    python进阶十_正則表達式(一)
    HDU 3016 Man Down(线段树)
    android 自己定义dialog并实现失去焦点(背景透明)的功能
    上海传智程序员携手设计狮美女雨中烧烤!!
    vim visual操作备忘
    MySQl Study学习之--MySQl二进制日志管理
    Android View measure (三) 经常用法
    Analyze提示:Value stored to "***"is never read
  • 原文地址:https://www.cnblogs.com/zys-blog/p/10494679.html
Copyright © 2011-2022 走看看