You will likely never see me say this again, but get Black Ops 2 over BF3. I actually thought BF3 had a great campaign, but like Drew said, it's short and once you beat it, you will probably only replay it once or twice or maybe never. And then beyond that, BF3 doesn't offer much if you're a singleplayer kind of guy.
Now, BO2 might be terrible, I don't know as I don't have it. But from what I've seen, the campaign is probably decent and it looks like the Strike Missions (or whatever they're called) might offer some replay ability. And then once you've done that, you have Nazi Zombies that you can play solo and combat training, as well.
So all-in-all, if you don't play multiplayer, then BO2 actually offers a lot more (woah, did I just say that about a CoD game!?!?). Although, ChikinOnAChain, who posts here sometimes, only plays SP and he seemed to like it, so who knows. I mean, the SP IS very good, just short and there's less of it than BO2. The only thing is, you might play the SP of BF3 and like it enough to just TRY the MP and then get hooked and wonder why you never played it before...