前言:在写java api的时候会因业务复杂情况遇到各种棘手问题。比如说基于己有数据库开发移动端应用的时候,hibernate这种映射框架用着就不爽了,于是我切换到了myatis上,因为它灵活度够高 。这次要讲的主题是当数据库设计人员坑B的将java关键字设置为字段名的时候,现在的你是不是万脸懵逼状态。心里一万只草泥马在奔腾,这谁TM设计的数据库,出来我保证不打死它。
这应该是我2017年的第一篇博客了,不要误会我在偷懒。相反,我一直在充电,写文章的时间就少了。所以就采取了偷懒的办法,直接把网上搜到的链接贴在发的帖子下面,算作一个系列。比如最近研究的android,android环境搭建 ,这篇文章下面有N多干货可以学习。 并且现在习惯将东西放在 OneNote 笔记本上,有图为证。好了,不扯了正题开始。
一、案例
某XX将数据库数据库字段名定义为 class
, 无解!
二、处理办法
我们知道数据库的字段是大小写不敏感的,java的属性是大小写敏感的。因此,在@monsterLin
鸡治的告诉我定义一个不是关键字的cLass
属性接收,经过测试,竟然没问题。。。。
于是,我将实体类义为以下所示。
启动服务,查看结果。。
小小的激动了一把,但这终究是个取巧的办法。其实在这之前我也查了许多资料。有提到@JsonProperty(value = "xxx")
和@JSONField(name = "xxx")
,但是测试都没有成功。按理推测,无论是在hibernate中还是mybatis中都应该有一个注解可以定义为如下这种。
格式
@我需要的注解(value = “数据库字段(java关键字)”) private String 任意属性名;
举例
@XXX(value = “class”) private String activityGoal;
学海无涯,需要我们不断的探索。越往深学,越觉得自己懂的少。感叹时间不够用,2016就这么过去了。2017,又要获得些什么。我想好好静下心下看一下《think in java》,想好好读读《Java设计模式》,想好好学日语早日过N1。时间那么少,想做的事情却太多。与君共勉,2017,一起加油!