I would choose David purely on the basis that pretty much every boy that I know of who has been born in the past few years has James as a middle name. I like the name James but it is very much a filler middle name these days
Did you take your husband's name when you married? Assuming that you're giving the child your husband's surname, he already has your husband's family name. So he should get a middle name from your side of the family. Middle names are less important than surnames so it's still not completely fair but it's better than nothing.