worthless piece of sh*t? dumb b*tch? stupid idiot?

Today my boyfriend called me a worthless piece of sh*t, a dumb broad, a b*tch, said I couldn't do anything right, said I f*cked up everything always, called me by my real name when he knows I hate it because he always calls me nicknames (at least he use to) 
He told me I make his life hard and said I should just leave because I apparently can't under stand anything, he kept calling me an idiot and stupid. He told me I always make problems when he's the one who started everything. I don't know what to do..
I love him and I don't want to loose him I just want him to show me more respect and not verbally abuse me. I'm so sad and hurt.. I don't know what to do anymore.. we've been together for two years and counting.. and he just lost his best friend..