boyfriend only wants sex on his terms

Every time I try to initiate sex with my boyfriend, he tells me no because he doesn't feel like it. Yes, fair enough. But we only have sex when he feels like it and even if I don't feel like it I do it for him, because a relationship is about compromise. I understand that he isn't going to want it every time I ask for it, but quite literally for 1 and a half years every time I have asked for it I've been declined. It really hurts my confidence and I'm left for days of desire of having sex. I have spoken to him & told him exactly what I've just written about never doing it when I want, that's ok, but you've shot me down every single time. It's always on your terms. He gets mad and goes to bed. That's it. Never a compromise, nothing. I never thought this would effect me this much until it started happening. Any advice ladies, thanks