Cause I'm not familiar with CDMA, so I don't know the goodness and weakness.
Well, that does give you a research direction, doesn't it?
About OFDM, from my point of view, OFDM due to long symbol which can deal with multipath effect to avoid inter-symbol interference.
Yes, that together with the cyclic prefix allow for point-wise de-multiplication with the channel, indeed!
Howerver OFDM is sensitive to frequency shifting caused by doppler effect.
No. On the contrary, most practical OFDM receivers are relatively robust against a single doppler offset, which happens e.g. when the transmitter and all reflectors travel at the same relative speed to the receiver. Frequency synchronization is something you need to do anyways!
Even if you have a Doppler spread, i.e. different relative velocities, that usually leads to a "smearing" in spectrum, meaning that the resulting cross-carrier interference is dominantly local.
CDMA is way worse in that: a small frequency offset that goes uncorrected quickly decorrelates a whole DSSS sequence, and the system stops working, which you can, lest you use specifically designed sequences, only counter with correlator banks and rake receivers (the same effort would also work for OFDM and make OFDM even better). In a multipath doppler-spread scenario, you get a global SNR degradation, which is worse than a local one.
Is OFDM meet the requirement of mobility transmission?
Um. You do realize practically all 4G and 5G communications are OFDM, right?
Regarding to OFDM is approprate with MIMO, I have no idea about this.
Then do some basic research. It is! Its subcarrier approach is the only practical way (together with the same approach in FBMC/GFDM/OTFS) I've yet encountered to do MIMO with frequency-selective channels.
From the point of view of spectrum efficiency, I think CDMA is better than OFDM.
"I think" is not good enough here: if CDMA was much better than OFDM in that term, wouldn't all mobile networks prefer to use CDMA? After all, spectrum licenses literally cost billions of € for the mobile network operators.
So, no, that's wrong, in general: when talking about spectral efficiency of a system, you need to incorporate the whole system into that consideration: not only preambles/cyclic prefixes, but also things like energy spent on re-estimation of a channel, E_b/N_0 losses due to imperfect equalization, synchronization overhead, minimum viable cell size...
Therefor, I still confuced about why 4G use OFDM not CDMA as like 3G.
You say yourself that you haven't looked into CDMA intensely yet, so this is not surprising!