spring/mybatis 使用细节整理---持续更新 有更新!

  |   0 评论   |   618 浏览

    1. 使用的过程中是否遇到了,某些字段,比如create_time/update_time在 mysql 中设置了默认值,但是在代码里写入的时候,并不想在每次新增写入数据的时候都手动给 bean 中相应的字段设置值,需要给 mybatis 配置一下,在 mybatis 的 config.properties 中,可以增加配置

      gmt.create=create_time
      gmt.update=update_time
      

      这样在 mybatis generator 的时候,会在 xml 的 mapper 中自动给对应的字段加上 now() 的默认值。
      这种方法现在只是用在了自动生成 mybatis 相应代码的配置中哈,其他场景暂未测试。

    2. spring @Autowired 不支持声明为静态变量。静态变量/类变量不是对象的属性,而是一个类的属性,spring则是基于对象层面上的依赖注入。

      静态变量/类变量扩大了静态方法的使用范围.静态方法在spring是不推荐使用的.依赖注入的主要目的,是让容器去产生一个对象的实例,然后在整个生命周期中使用他们,同时也让testing工作更加容易。

    3. 指定 spring java compile 的版本,不然经常会出现
      5fe7d2dbd9df41d7b87232d9a99b3d6f-image.png

      这类问题,然后得手动到项目的 project setting 中去调整版本,如下:
      9294006bf018404baaba399eda3ecb30-image.png

      那问题来了,每次修改 pom 之后,sync 完就又都回去了。。所以还是最好在 pom.xml 中进行配置 build 的版本号

      <build>
      	<plugins>
      		<plugin>
      			<groupId>org.apache.maven.plugins</groupId>
      			<artifactId>maven-compiler-plugin</artifactId>
      			<configuration>
      				<source>1.7</source>
      				<target>1.7</target>
      			</configuration>
      		</plugin>
      	</plugins>
      </build>
      
    4. mysql run

      select * from goods where contains(title, ‘make’)

      Geometry byte string must be little endian.
      这里说下更改和读取数据的字节顺序:Endian.BIG_ENDIANEndian.LITTLE_ENDIAN。这个涉及到不同 cpu 派系在存储数据时的方式,BIG_ENDIAN是低地址存放最有效字节,而LITTLE_ENDIAN是低地址存放最有效字节。举例如下:

      d0b9510b6849413d9485bc8ce1e3b261-image.png

      这个对于不同语言不同 cpu 之间进行数据存取的时候,可能会出现地址解析错误的问题。然而,现在了解了这个之后,找了一些资料也没找到是什么原因导致的,怎么解决也还不知道。后续解决了更新吧。

    5. jackson 中下划线的 json string 转成 驼峰命名的实体类时,通过设置如下属性:

      mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
      

      可以进行转换。

    评论

    发表评论

    validate